Changes between Version 1 and Version 2 of CSSContainment


Ignore:
Timestamp:
Mar 29, 2021 6:49:20 AM (3 years ago)
Author:
rwlbuis@webkit.org
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • CSSContainment

    v1 v2  
    2424Layout containment limits the scope of layout, it makes the contained element opaque for layout purposes; nothing outside can affect its internal layout, and vice versa.
    2525
    26 The central method to check whether layout containment should apply to the element will be called 'shouldApplyLayoutContainment'. It will check the conditions from the spec [3], i.e. it generates a principal box, is not an internal table box (other than table-cell), not an internal ruby box and not a non-atomic inline-levelbox.
     26The central method to check whether layout containment should apply to the element will be called `shouldApplyLayoutContainment`. It will check the conditions from the spec [3], i.e. it generates a principal box, is not an internal table box (other than table-cell), not an internal ruby box and not a non-atomic inline-levelbox.
    2727
    2828Following the layout containment box algorithm [4]:
    29 - The layout containment box establishes an independent formatting context. To implement this, RenderBox::createsNewFormattingContext will have to be adapted.
     29- The layout containment box establishes an independent formatting context. To implement this, `RenderBox::createsNewFormattingContext` will have to be adapted.
    3030
    31 - If the computed value of the overflow property is either visible or clip or a combination thereof, any overflow must be treated as ink overflow. Adjust LayoutBox::LayoutOverflowRectForPropagation to not add visual overflow if shouldApplyLayoutContainment is true, since in that case it will be treated as ink overflow.
     31- If the computed value of the overflow property is either visible or clip or a combination thereof, any overflow must be treated as ink overflow. Adjust `LayoutBox::LayoutOverflowRectForPropagation` to not add visual overflow if `shouldApplyLayoutContainment` is true, since in that case it will be treated as ink overflow.
    3232
    33 - The layout containment box establishes an absolute positioning containing block and a fixed positioning containing block. This needs changes in RenderElement::canContainFixedPositionObjects and RenderElement::canContainAbsolutelyPositionedObjects.
     33- The layout containment box establishes an absolute positioning containing block and a fixed positioning containing block. This needs changes in `RenderElement::canContainFixedPositionObjects` and `RenderElement::canContainAbsolutelyPositionedObjects`.
    3434
    35 - The layout containment box creates a stacking context. This requires an additional check in RenderLayer::shouldBeCSSStackingContext.
     35- The layout containment box creates a stacking context. This requires an additional check in `RenderLayer::shouldBeCSSStackingContext`.
    3636
    37 - For the purpose of the vertical-align property, or any other property whose effects need to relate the position of the layout containment box's baseline to something other than its descendants, the containment box is treated as having no baseline. The cooperating methods baselinePosition, firstLineBaseline and inlineBlockBaseline will need to be adapted for various kind of renderers to support this.
     37- For the purpose of the vertical-align property, or any other property whose effects need to relate the position of the layout containment box's baseline to something other than its descendants, the containment box is treated as having no baseline. The cooperating methods `baselinePosition`, `firstLineBaseline` and `inlineBlockBaseline` will need to be adapted for various kind of renderers to support this.
    3838
    39 Layout contained elements act as relayout boundaries, so objectIsRelayoutBoundary should be changed in order
    40 for RenderObject::markContainingBlocksForLayout to avoid marking the contained element ancestors.
     39Layout contained elements act as relayout boundaries, so `objectIsRelayoutBoundary` should be changed in order
     40for `RenderObject::markContainingBlocksForLayout` to avoid marking the contained element ancestors.
    4141
    4242[1] https://www.w3.org/TR/css-contain-1/ [[br]]