CSS 2.1 Conformance Test Suite

Visual formatting model details (77 tests)

Test Refs Flags Info
+ 10 Visual formatting model details
+ 10.1 Definition of "containing block"
+ 10.2 Content width: the 'width' property
+ 10.3 Calculating widths and margins
inline-flexbox-wrap-vertically-width-calculation Script CSS Flexbox: Inline flexbox width calculation with flex-direction: column and flex-wrap
  • This test checks that width is correctly computed for flexbox with flex-direction: column and flex-wrap.
+ 10.3.1 Inline, non-replaced elements
inline-negative-margin-001 Script Check inline negative margin should not cause the line to wrap
inline-negative-margin-minmax-crash-001 Script Check inline negative margin with fit-content should not cause hang
+ 10.3.2 Inline, replaced elements
svg-in-iframe-auto Script SVG sizing: <iframe>
svg-in-iframe-fixed Script SVG sizing: <iframe>
svg-in-iframe-percentage Script SVG sizing: <iframe>
svg-in-img-auto Script SVG sizing: <img>
svg-in-img-fixed Script SVG sizing: <img>
svg-in-img-percentage Script SVG sizing: <img>
svg-in-object-auto Script SVG sizing: <object>
svg-in-object-fixed Script SVG sizing: <object>
svg-in-object-percentage Script SVG sizing: <object>
svg-inline Script SVG sizing: inline
+ 10.3.3 Block-level, non-replaced elements in normal flow
+ 10.3.4 Block-level, replaced elements in normal flow
+ 10.3.5 Floating, non-replaced elements
shrink-wrap Script shrink-wrap button
+ 10.3.6 Floating, replaced elements
+ 10.3.7 Absolutely positioned, non-replaced elements
abspos-inline-008 = Absolutely positioned descendant under relative positioned inline with negative offset
htb-ltr-ltr =
  • This test checks the static position of an out of flow absolute positioned element, under various conditions.
htb-ltr-rtl.tentative =
  • This test checks the static position of an out of flow absolute positioned element, under various conditions.
htb-rtl-ltr.tentative =
  • This test checks the static position of an out of flow absolute positioned element, under various conditions.
htb-rtl-rtl =
  • This test checks the static position of an out of flow absolute positioned element, under various conditions.
hypothetical-box-scroll-parent =
hypothetical-box-scroll-viewport =
inline-level-absolute-in-block-level-context-001 =
  • Tests the static position of inline-level absolute-positioned elements, with combinations of float, direction, and text-align.
inline-level-absolute-in-block-level-context-002 =
  • Tests the static position of inline-level absolute-positioned elements, with combinations of float, direction, and text-align.
inline-level-absolute-in-block-level-context-003 =
  • Tests the static position of inline-level absolute-positioned elements, with combinations of float, direction, and text-align.
inline-level-absolute-in-block-level-context-004 =
  • Tests the static position of inline-level absolute-positioned elements, with combinations of float, direction, and text-align.
inline-level-absolute-in-block-level-context-005 =
  • Tests the static position of inline-level absolute-positioned elements, with combinations of float, direction, and text-align.
inline-level-absolute-in-block-level-context-006 =
  • Tests the static position of inline-level absolute-positioned elements, with combinations of float, direction, and text-align.
inline-level-absolute-in-block-level-context-007 =
  • Tests the static position of inline-level absolute-positioned elements, with combinations of float, direction, and text-align.
inline-level-absolute-in-block-level-context-008 =
  • Tests the static position of inline-level absolute-positioned elements, with combinations of float, direction, and text-align.
inline-level-absolute-in-block-level-context-009 =
  • Tests the static position of inline-level absolute-positioned elements, with combinations of float, direction, and text-align.
inline-level-absolute-in-block-level-context-010 =
  • Tests the static position of inline-level absolute-positioned elements, with combinations of float, direction, and text-align.
inline-level-absolute-in-block-level-context-011 =
  • Tests the static position of inline-level absolute-positioned elements, with combinations of float, direction, and text-align.
inline-level-absolute-in-block-level-context-012 =
  • Tests the static position of inline-level absolute-positioned elements, with combinations of float, direction, and text-align.
left-offset-position-fixed-001 = left:auto offset of position:fixed box in a position:relative containing block
  • The 'left' box offset property, for fixed positioning, when set to 'auto' specifies the offset of the box from its 'static-position containing block'. Here, in this test, the 'static-position containing block' is #shifted-column and the containing block for #red is established by the viewport.
right-offset-position-fixed-001 = right:auto offset of position:fixed box in an RTL position:relative containing block
  • The 'right' box offset property, for fixed positioning, when set to 'auto' specifies the offset of the box from its 'static-position containing block'. Here, in this test, the 'static-position containing block' is #shifted-column and the containing block for #red is established by the viewport.
vlr-ltr-ltr =
  • This test checks the static position of an out of flow absolute positioned element, under various conditions.
vlr-ltr-rtl.tentative =
  • This test checks the static position of an out of flow absolute positioned element, under various conditions.
vlr-rtl-ltr.tentative =
  • This test checks the static position of an out of flow absolute positioned element, under various conditions.
vlr-rtl-rtl =
  • This test checks the static position of an out of flow absolute positioned element, under various conditions.
vrl-ltr-ltr =
  • This test checks the static position of an out of flow absolute positioned element, under various conditions.
vrl-ltr-rtl.tentative =
  • This test checks the static position of an out of flow absolute positioned element, under various conditions.
vrl-rtl-ltr.tentative =
  • This test checks the static position of an out of flow absolute positioned element, under various conditions.
vrl-rtl-rtl =
  • This test checks the static position of an out of flow absolute positioned element, under various conditions.
abspos-block-level-001 = Static positions of block-level absolutely positioned objects
inline-static-position-001 Script Static positions and line wrapping
+ 10.3.8 Absolutely positioned, replaced elements
abspos Script abspos button with auto width, non-auto left/right
+ 10.3.9 'Inline-block', non-replaced elements in normal flow
+ 10.3.10 'Inline-block', replaced elements in normal flow
+ 10.4 Minimum and maximum widths: 'min-width' and 'max-width'
box-sizing-min-max-sizes-001 Script CSS Flexbox: minimum / maximum sizes with box-sizing: border-box
  • This test checks that a minimum and maximum sizes are correctly computed for flexbox children.
button-min-width Script min-width: Should apply to buttons
flex-minimum-width-flex-items-014 Script CSS Flexbox: Proper min-width intrinsic size with display: flex
  • This test checks that min-width intrinsic size still applies if a fixed width is set.
position-absolute-replaced-minmax Script CSS Position: absolute position, replaced elements, and minmax
  • Min/max width and height interact properly with abspos replaced elements
+ 10.5 Content height: the 'height' property
calc-zero-percent-height = 0% in calc() should be preserved
+ 10.6 Calculating heights and margins
+ 10.6.1 Inline, non-replaced elements
+ 10.6.2 Inline replaced elements, block-level replaced elements in normal flow, 'inline-block' replaced elements in normal flow and floating replaced elements
svg-in-iframe-auto Script SVG sizing: <iframe>
svg-in-iframe-fixed Script SVG sizing: <iframe>
svg-in-iframe-percentage Script SVG sizing: <iframe>
svg-in-img-auto Script SVG sizing: <img>
svg-in-img-fixed Script SVG sizing: <img>
svg-in-img-percentage Script SVG sizing: <img>
svg-in-object-auto Script SVG sizing: <object>
svg-in-object-fixed Script SVG sizing: <object>
svg-in-object-percentage Script SVG sizing: <object>
svg-inline Script SVG sizing: inline
+ 10.6.3 Block-level non-replaced elements in normal flow when 'overflow' computes to 'visible'
+ 10.6.4 Absolutely positioned, non-replaced elements
hypothetical-box-dynamic = Layout is correctly updated when the hypothetical display of an element changes, even though the final computed display doesn't
+ 10.6.5 Absolutely positioned, replaced elements
+ 10.6.6 Complicated cases
+ 10.6.7 'Auto' heights for block formatting context roots
+ 10.7 Minimum and maximum heights: 'min-height' and 'max-height'
+ 10.8 Line height calculations: the 'line-height' and 'vertical-align' properties
content-height-001 = CSS2 inline level box content height test
  • The height of the content area of an inline-level box does not depend on the value of the line-height property
content-height-002 = CSS2 inline level box content height test
  • The height of the content area of an inline-level box does not depend on the value of the line-height property, even when fallback fonts are used
content-height-003 = CSS2 inline level box content height test
  • The height of the content area of an inline-level box does not depend on the value of the line-height property, even when fallback fonts are used at the exclusion of the first available font
content-height-004 = CSS2 inline level box content height test
  • The height of the content area of an inline-level does not depend on fallback fonts regardless of whether they are used on not.
content-height-005 CSS2 inline level box content height test
  • The height of the content area of an inline-level depends on the primary font
line-height-201 = explicit sizing
  • non-normal values of line-height result in the height of the inline-level box to be exactly the specified dimention, even when fallback fonts with metrics different from the first available font one are used.
line-height-202 = baseline position when explicit sizing
  • The position of the baseline in an inline-level box whose height is determined by a non-normal value of line-height does not depend on fonts other than the first available font
line-height-203 baseline position with explicit sizing
  • The position of the baseline in an inline-level box whose height is determined by a non-normal value of line-height does depend on the first available font.
line-height-204 = baseline position, normal sizing vs explicit sizing
  • The position of the baseline in an inline-level box whose line-height is normal and the position of the baseline in an inline-level box whose line-height is set to a non normal value resulting in the same height are the same, assuming only the first available font is used.
line-height-205 = normal sizing
  • The height of an inline-level box whose line-height is normal and uses both the first available font and fallback fonts is the same as the union of baseline-aligned adjacent inline-level boxes, each using the various fonts as their primary one.
line-height-206 normal sizing with fallback fonts
  • The height of an inline-level box whose line-height is normal and which only uses glyphs from the fallback font must still take the strut from the first available font into account.
+ 10.8.1 Leading and half-leading
line-height-interpolation Script line-height interpolation
  • line-height supports animation by computation
baseline-block-with-overflow-001 = Baseline of blocks with `overflow: hidden`
baseline-table AhemScript TABLE baseline
baseline-td AhemScript TD baseline
contain-layout-button-001 = Layout containment on button
  • Layout containment does apply to buttons, thus their baseline is their margin-bottom edge.
vertical-align-composition Script vertical-align composition
  • vertical-align supports animation
vertical-align-computed Script CSS Inline Layout: getComputedStyle().verticalAlign
  • vertical-align computed value is as specified, with lengths made absolute.
vertical-align-interpolation Script vertical-align interpolation
  • vertical-align supports animation
vertical-align-invalid Script CSS Inline Layout: parsing vertical-align with valid values
  • vertical-align only supports the spec grammar.
vertical-align-negative-leading-001 = top and bottom do not affect the line height
vertical-align-nested-top-001 =
vertical-align-top-bottom-001 Script
vertical-align-top-bottom-padding =
vertical-align-valid Script CSS Inline Layout: parsing vertical-align with valid values
  • vertical-align supports the CSS 2 grammar 'baseline | sub | super | top | text-top | middle | bottom | text-bottom | <percentage> | <length>'.