Struct layout_2020::flexbox::FlexContainer
source · 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
pub fn construct<'dom>( context: &LayoutContext<'_>, info: &NodeAndStyleInfo<impl NodeExt<'dom>>, contents: NonReplacedContents, propagated_text_decoration_line: TextDecorationLine, ) -> Self
source§impl FlexContainer
impl FlexContainer
pub fn inline_content_sizes( &self, layout_context: &LayoutContext<'_>, constraint_space: &ConstraintSpace, ) -> InlineContentSizesResult
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<'_>,
containing_block_for_container: &ContainingBlock<'_>,
) -> IndependentLayout
pub(crate) fn layout( &self, layout_context: &LayoutContext<'_>, positioning_context: &mut PositioningContext, containing_block: &ContainingBlock<'_>, containing_block_for_container: &ContainingBlock<'_>, ) -> IndependentLayout
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.)
fn available_cross_space_for_flex_items( &self, containing_block_for_container: &ContainingBlock<'_>, ) -> (Au, Option<Au>, bool)
source§impl FlexContainer
impl FlexContainer
pub(crate) fn new( style: &ServoArc<ComputedValues>, children: Vec<ArcRefCell<FlexLevelBox>>, ) -> Self
Trait Implementations§
source§impl Debug for FlexContainer
impl Debug for FlexContainer
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> 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