pub(crate) struct FlexContainer {
children: Vec<ArcRefCell<FlexLevelBox>>,
style: Arc<ComputedValues>,
config: FlexContainerConfig,
}
Fields§
§children: Vec<ArcRefCell<FlexLevelBox>>
§style: Arc<ComputedValues>
§config: FlexContainerConfig
The configuration of this FlexContainer
.
Implementations§
Source§impl FlexContainer
impl FlexContainer
fn cross_content_sizes( &self, layout_context: &LayoutContext<'_>, containing_block_for_children: &IndefiniteContainingBlock, ) -> InlineContentSizesResult
fn main_content_sizes<'a>( &self, layout_context: &LayoutContext<'_>, containing_block_for_children: &IndefiniteContainingBlock, flex_context_getter: impl Fn() -> &'a FlexContext<'a>, ) -> InlineContentSizesResult
Sourcepub(crate) fn layout(
&self,
layout_context: &LayoutContext<'_>,
positioning_context: &mut PositioningContext,
containing_block: &ContainingBlock<'_>,
lazy_block_size: &LazySize<'_>,
) -> CacheableLayoutResult
pub(crate) fn layout( &self, layout_context: &LayoutContext<'_>, positioning_context: &mut PositioningContext, containing_block: &ContainingBlock<'_>, lazy_block_size: &LazySize<'_>, ) -> CacheableLayoutResult
Sourcefn create_absolutely_positioned_flex_child_fragment(
&self,
absolutely_positioned_box: ArcRefCell<AbsolutelyPositionedBox>,
containing_block: &ContainingBlock<'_>,
container_size: FlexRelativeVec2<Au>,
positioning_context: &mut PositioningContext,
) -> Fragment
fn create_absolutely_positioned_flex_child_fragment( &self, absolutely_positioned_box: ArcRefCell<AbsolutelyPositionedBox>, containing_block: &ContainingBlock<'_>, container_size: FlexRelativeVec2<Au>, positioning_context: &mut PositioningContext, ) -> Fragment
Create a absolutely positioned flex child fragment, using the rules the specification dictates. This should take into account the alignment and justification values of the container and the child to position it within a “inset-modified containing block,” which may be either the “static-position rectangle” that’s calculated below or a modified version of the absolute’s containing block adjusted by the insets specified in the item’s style.
From https://drafts.csswg.org/css-flexbox/#abspos-items:
The cross-axis edges of the static-position rectangle of an absolutely-positioned child of a flex container are the content edges of the flex container The main-axis edges of the static-position rectangle are where the margin edges of the child would be positioned if it were the sole flex item in the flex container, assuming both the child and the flex container were fixed-size boxes of their used size. (For this purpose, auto margins are treated as zero.)
pub(crate) fn layout_style(&self) -> LayoutStyle<'_>
Source§impl FlexContainer
impl FlexContainer
pub fn construct( context: &LayoutContext<'_>, info: &NodeAndStyleInfo<'_>, contents: NonReplacedContents, propagated_data: PropagatedBoxTreeData, ) -> Self
pub(crate) fn repair_style(&mut self, new_style: &ServoArc<ComputedValues>)
Trait Implementations§
Source§impl ComputeInlineContentSizes for FlexContainer
impl ComputeInlineContentSizes for FlexContainer
fn compute_inline_content_sizes( &self, layout_context: &LayoutContext<'_>, constraint_space: &ConstraintSpace, ) -> InlineContentSizesResult
Source§fn compute_inline_content_sizes_with_fixup(
&self,
layout_context: &LayoutContext<'_>,
constraint_space: &ConstraintSpace,
) -> InlineContentSizesResult
fn compute_inline_content_sizes_with_fixup( &self, layout_context: &LayoutContext<'_>, constraint_space: &ConstraintSpace, ) -> InlineContentSizesResult
Self::compute_inline_content_sizes()
, but adjusted
to floor the max-content size by the min-content size.
This is being discussed in https://github.com/w3c/csswg-drafts/issues/12076.Source§impl Debug for FlexContainer
impl Debug for FlexContainer
Source§impl MallocSizeOf for FlexContainer
impl MallocSizeOf for FlexContainer
Source§fn size_of(&self, ops: &mut MallocSizeOfOps) -> usize
fn size_of(&self, ops: &mut MallocSizeOfOps) -> usize
Auto Trait Implementations§
impl Freeze for FlexContainer
impl !RefUnwindSafe for FlexContainer
impl Send for FlexContainer
impl Sync for FlexContainer
impl Unpin for FlexContainer
impl !UnwindSafe for FlexContainer
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> Filterable for T
impl<T> Filterable for T
Source§fn filterable(
self,
filter_name: &'static str,
) -> RequestFilterDataProvider<T, fn(DataRequest<'_>) -> bool>
fn filterable( self, filter_name: &'static str, ) -> RequestFilterDataProvider<T, fn(DataRequest<'_>) -> bool>
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more