Source code

Revision control

Copy as Markdown

Other Tools

# Test Suite for CSS 2.1, 8.3.1 Collapsing margins - See Bug 477462
# and its Errata, Last revised: $Date: 2013-09-09 17:40:16 $
# The structure of this manifest is intended to resemble the structure of
# the prose that defines collapsing margins. As a result, there are several
# sections where inline-block-, block-, and other- series are combined.
# E.g. the first section is about horizontal margins and includes both
# inline- and block series.
# "Horizontal margins never collapse."
# Horizontal margins of inline boxes do not collapse.
# The norefs for these tests depict margins that incorrectly collapsed.
== inline-horizontal-1.html inline-horizontal-1-ref.html
!= inline-horizontal-1.html inline-horizontal-1-noref.html
== inline-horizontal-2.html inline-horizontal-2-ref.html
!= inline-horizontal-2.html inline-horizontal-2-noref.html
== inline-horizontal-1-dyn.html inline-horizontal-1-ref.html
!= inline-horizontal-1-dyn.html inline-horizontal-1-noref.html
== inline-horizontal-2-dyn.html inline-horizontal-2-ref.html
!= inline-horizontal-2-dyn.html inline-horizontal-2-noref.html
# Horizontal margins of block boxes do not collapse.
# These block boxes are actually floats - in CSS 2.1 there is no other
# method to create horizontally adjacent block boxes.
== block-horizontal-1.html block-horizontal-1-ref.html
!= block-horizontal-1.html block-horizontal-1-noref.html
== block-horizontal-2.html block-horizontal-2-ref.html
!= block-horizontal-2.html block-horizontal-2-noref.html
== block-horizontal-3.html block-horizontal-3-ref.html
!= block-horizontal-3.html block-horizontal-3-noref.html
== block-horizontal-4.html block-horizontal-4-ref.html
!= block-horizontal-4.html block-horizontal-4-noref.html
== block-horizontal-1-dyn.html block-horizontal-1-ref.html
!= block-horizontal-1-dyn.html block-horizontal-1-noref.html
== block-horizontal-2-dyn.html block-horizontal-2-ref.html
!= block-horizontal-2-dyn.html block-horizontal-2-noref.html
== block-horizontal-3-dyn.html block-horizontal-3-ref.html
!= block-horizontal-3-dyn.html block-horizontal-3-noref.html
== block-horizontal-4-dyn.html block-horizontal-4-ref.html
!= block-horizontal-4-dyn.html block-horizontal-4-noref.html
# Horizontal margins of inline-block boxes do not collapse.
== inline-block-horizontal-1.html inline-block-horizontal-1-ref.html
!= inline-block-horizontal-1.html inline-block-horizontal-1-noref.html
== inline-block-horizontal-2.html inline-block-horizontal-2-ref.html
!= inline-block-horizontal-2.html inline-block-horizontal-2-noref.html
== inline-block-horizontal-1-dyn.html inline-block-horizontal-1-ref.html
!= inline-block-horizontal-1-dyn.html inline-block-horizontal-1-noref.html
== inline-block-horizontal-2-dyn.html inline-block-horizontal-2-ref.html
!= inline-block-horizontal-2-dyn.html inline-block-horizontal-2-noref.html
# Horizontal margins of inline-tables do not collapse.
== inline-table-horizontal-1.html inline-table-horizontal-1-ref.html
!= inline-table-horizontal-1.html inline-table-horizontal-1-noref.html
== inline-table-horizontal-1-dyn.html inline-table-horizontal-1-ref.html
!= inline-table-horizontal-1-dyn.html inline-table-horizontal-1-noref.html
# "In CSS, the adjoining margins of two or more boxes
# (which might or might not be siblings) can combine to form a single margin.
# Margins that combine this way are said to collapse,
# and the resulting combined margin is called a collapsed margin."
# "Two margins are adjoining if and only if:" [...]
# "both belong to vertically-adjacent box edges,
# i.e. form one of the following pairs:" [...]
# "bottom margin of box and top margin of its next in-flow following sibling"
# "When two or more margins collapse,
# the resulting margin width is the maximum of the collapsing margins' widths."
# The margins of two in-flow siblings should collapse.
# These tests feature margins of different or equal sizes on each box.
# The norefs depict incorrect results where the margins did not collapse.
== block-sibling-1a.html block-sibling-1-ref.html
== block-sibling-1a.html block-sibling-1-ref2.html
!= block-sibling-1a.html block-sibling-1-noref.html
== block-sibling-1b.html block-sibling-1-ref.html
== block-sibling-1b.html block-sibling-1-ref2.html
!= block-sibling-1b.html block-sibling-1-noref.html
== block-sibling-1c.html block-sibling-1-ref.html
== block-sibling-1c.html block-sibling-1-ref2.html
!= block-sibling-1c.html block-sibling-1-noref2.html
== block-sibling-2.html block-sibling-2-ref.html
== block-sibling-2.html block-sibling-2-ref2.html
!= block-sibling-2.html block-sibling-2-noref.html
== block-sibling-3.html block-sibling-1-ref.html
== block-sibling-3.html block-sibling-1-ref2.html
!= block-sibling-3.html block-sibling-1-noref.html
== block-sibling-1a-dyn.html block-sibling-1-ref.html
== block-sibling-1a-dyn.html block-sibling-1-ref2.html
!= block-sibling-1a-dyn.html block-sibling-1-noref.html
== block-sibling-1b-dyn.html block-sibling-1-ref.html
== block-sibling-1b-dyn.html block-sibling-1-ref2.html
!= block-sibling-1b-dyn.html block-sibling-1-noref.html
== block-sibling-1c-dyn.html block-sibling-1-ref.html
== block-sibling-1c-dyn.html block-sibling-1-ref2.html
!= block-sibling-1c-dyn.html block-sibling-1-noref2.html
== block-sibling-2-dyn.html block-sibling-2-ref.html
== block-sibling-2-dyn.html block-sibling-2-ref2.html
!= block-sibling-2-dyn.html block-sibling-2-noref.html
== block-sibling-3-dyn.html block-sibling-1-ref.html
== block-sibling-3-dyn.html block-sibling-1-ref2.html
!= block-sibling-3-dyn.html block-sibling-1-noref.html
# "In the case of negative margins, the maximum of the absolute values of the
# negative adjoining margins is deducted from the maximum of the positive
# adjoining margins. If there are no positive margins, the maximum of the
# absolute values of the adjoining margins is deducted from zero."
# These tests feature sibling block boxes where one or two margins are negative.
# The norefs depict possible incorrect addition or subtraction of margins.
== block-negative-1a.html block-negative-1-ref.html
!= block-negative-1a.html block-negative-1-noref1.html
!= block-negative-1a.html block-negative-1-noref2.html
== block-negative-1b.html block-negative-1-ref.html
!= block-negative-1b.html block-negative-1-noref1.html
!= block-negative-1b.html block-negative-1-noref2.html
== block-negative-2a.html block-negative-2-ref.html
!= block-negative-2a.html block-negative-2-noref1.html
!= block-negative-2a.html block-negative-2-noref2.html
== block-negative-2b.html block-negative-2-ref.html
!= block-negative-2b.html block-negative-2-noref1.html
!= block-negative-2b.html block-negative-2-noref2.html
== block-negative-3a.html block-negative-3-ref.html
== block-negative-3a.html block-negative-3-ref2.html
!= block-negative-3a.html block-negative-3-noref1.html
!= block-negative-3a.html block-negative-3-noref2.html
== block-negative-3b.html block-negative-3-ref.html
== block-negative-3b.html block-negative-3-ref2.html
!= block-negative-3b.html block-negative-3-noref1.html
!= block-negative-3b.html block-negative-3-noref2.html
== block-negative-4a.html block-negative-4-ref.html
== block-negative-4a.html block-negative-4-ref2.html
!= block-negative-4a.html block-negative-4-noref1.html
!= block-negative-4a.html block-negative-4-noref2.html
== block-negative-4b.html block-negative-4-ref.html
== block-negative-4b.html block-negative-4-ref2.html
!= block-negative-4b.html block-negative-4-noref1.html
!= block-negative-4b.html block-negative-4-noref2.html
== block-negative-5.html block-negative-5-ref.html
== block-negative-5.html block-negative-5-ref2.html
!= block-negative-5.html block-negative-5-noref1.html
!= block-negative-5.html block-negative-5-noref2.html
== block-negative-1a-dyn1.html block-negative-1-ref.html
!= block-negative-1a-dyn1.html block-negative-1-noref1.html
!= block-negative-1a-dyn1.html block-negative-1-noref2.html
== block-negative-1a-dyn2.html block-negative-1-ref.html
!= block-negative-1a-dyn2.html block-negative-1-noref1.html
!= block-negative-1a-dyn2.html block-negative-1-noref2.html
== block-negative-1b-dyn1.html block-negative-1-ref.html
!= block-negative-1b-dyn1.html block-negative-1-noref1.html
!= block-negative-1b-dyn1.html block-negative-1-noref2.html
== block-negative-1b-dyn2.html block-negative-1-ref.html
!= block-negative-1b-dyn2.html block-negative-1-noref1.html
!= block-negative-1b-dyn2.html block-negative-1-noref2.html
== block-negative-2a-dyn1.html block-negative-2-ref.html
!= block-negative-2a-dyn1.html block-negative-2-noref1.html
!= block-negative-2a-dyn1.html block-negative-2-noref2.html
== block-negative-2a-dyn2.html block-negative-2-ref.html
!= block-negative-2a-dyn2.html block-negative-2-noref1.html
!= block-negative-2a-dyn2.html block-negative-2-noref2.html
== block-negative-2b-dyn1.html block-negative-2-ref.html
!= block-negative-2b-dyn1.html block-negative-2-noref1.html
!= block-negative-2b-dyn1.html block-negative-2-noref2.html
== block-negative-2b-dyn2.html block-negative-2-ref.html
!= block-negative-2b-dyn2.html block-negative-2-noref1.html
!= block-negative-2b-dyn2.html block-negative-2-noref2.html
== block-negative-3a-dyn1.html block-negative-3-ref.html
== block-negative-3a-dyn1.html block-negative-3-ref2.html
!= block-negative-3a-dyn1.html block-negative-3-noref1.html
!= block-negative-3a-dyn1.html block-negative-3-noref2.html
== block-negative-3a-dyn2.html block-negative-3-ref.html
== block-negative-3a-dyn2.html block-negative-3-ref2.html
!= block-negative-3a-dyn2.html block-negative-3-noref1.html
!= block-negative-3a-dyn2.html block-negative-3-noref2.html
== block-negative-3b-dyn1.html block-negative-3-ref.html
== block-negative-3b-dyn1.html block-negative-3-ref2.html
!= block-negative-3b-dyn1.html block-negative-3-noref1.html
!= block-negative-3b-dyn1.html block-negative-3-noref2.html
== block-negative-3b-dyn2.html block-negative-3-ref.html
== block-negative-3b-dyn2.html block-negative-3-ref2.html
!= block-negative-3b-dyn2.html block-negative-3-noref1.html
!= block-negative-3b-dyn2.html block-negative-3-noref2.html
== block-negative-4a-dyn1.html block-negative-4-ref.html
== block-negative-4a-dyn1.html block-negative-4-ref2.html
!= block-negative-4a-dyn1.html block-negative-4-noref1.html
!= block-negative-4a-dyn1.html block-negative-4-noref2.html
== block-negative-4a-dyn2.html block-negative-4-ref.html
== block-negative-4a-dyn2.html block-negative-4-ref2.html
!= block-negative-4a-dyn2.html block-negative-4-noref1.html
!= block-negative-4a-dyn2.html block-negative-4-noref2.html
== block-negative-4b-dyn1.html block-negative-4-ref.html
== block-negative-4b-dyn1.html block-negative-4-ref2.html
!= block-negative-4b-dyn1.html block-negative-4-noref1.html
!= block-negative-4b-dyn1.html block-negative-4-noref2.html
== block-negative-4b-dyn2.html block-negative-4-ref.html
== block-negative-4b-dyn2.html block-negative-4-ref2.html
!= block-negative-4b-dyn2.html block-negative-4-noref1.html
!= block-negative-4b-dyn2.html block-negative-4-noref2.html
== block-negative-5-dyn1.html block-negative-5-ref.html
== block-negative-5-dyn1.html block-negative-5-ref2.html
!= block-negative-5-dyn1.html block-negative-5-noref1.html
!= block-negative-5-dyn1.html block-negative-5-noref2.html
== block-negative-5-dyn2.html block-negative-5-ref.html
== block-negative-5-dyn2.html block-negative-5-ref2.html
!= block-negative-5-dyn2.html block-negative-5-noref1.html
!= block-negative-5-dyn2.html block-negative-5-noref2.html
# "Two margins are adjoining if and only if:" [...]
# "both belong to vertically-adjacent box edges,
# i.e. form one of the following pairs:" [...]
# "top margin of a box and top margin of its first in-flow child"
# "bottom margin of a last in-flow child and bottom margin of its parent
# if the parent has 'auto' computed height"
# "A collapsed margin is considered adjoining to another margin if
# any of its component margins is adjoining to that margin."
# "Note. Adjoining margins can be generated by elements that are
# not related as siblings or ancestors."
# These tests check whether margins are correctly collapsed even when the
# boxes participating are not related as siblings or ancestors.
# The tests feature different sizes of margins on different boxes.
== block-non-sibling-1a.html block-non-sibling-1-ref.html
== block-non-sibling-1a.html block-non-sibling-1-ref2.html
== block-non-sibling-1b.html block-non-sibling-1-ref.html
== block-non-sibling-1b.html block-non-sibling-1-ref2.html
== block-non-sibling-1c.html block-non-sibling-1-ref.html
== block-non-sibling-1c.html block-non-sibling-1-ref2.html
== block-non-sibling-1d.html block-non-sibling-1-ref.html
== block-non-sibling-1d.html block-non-sibling-1-ref2.html
== block-non-sibling-1e.html block-non-sibling-1-ref.html
== block-non-sibling-1e.html block-non-sibling-1-ref2.html
== block-non-sibling-1f.html block-non-sibling-1-ref.html
== block-non-sibling-1f.html block-non-sibling-1-ref2.html
== block-non-sibling-2a.html block-non-sibling-2-ref.html
== block-non-sibling-2a.html block-non-sibling-2-ref2.html
== block-non-sibling-2b.html block-non-sibling-2-ref.html
== block-non-sibling-2b.html block-non-sibling-2-ref2.html
== block-non-sibling-2c.html block-non-sibling-2-ref.html
== block-non-sibling-2c.html block-non-sibling-2-ref2.html
== block-non-sibling-2d.html block-non-sibling-2-ref.html
== block-non-sibling-2d.html block-non-sibling-2-ref2.html
== block-non-sibling-2e.html block-non-sibling-2-ref.html
== block-non-sibling-2e.html block-non-sibling-2-ref2.html
== block-non-sibling-2f.html block-non-sibling-2-ref.html
== block-non-sibling-2f.html block-non-sibling-2-ref2.html
== block-non-sibling-3a.html block-non-sibling-3-ref.html
== block-non-sibling-3a.html block-non-sibling-3-ref2.html
== block-non-sibling-3b.html block-non-sibling-3-ref.html
== block-non-sibling-3b.html block-non-sibling-3-ref2.html
== block-non-sibling-3c.html block-non-sibling-3-ref.html
== block-non-sibling-3c.html block-non-sibling-3-ref2.html
== block-non-sibling-3d.html block-non-sibling-3-ref.html
== block-non-sibling-3d.html block-non-sibling-3-ref2.html
== block-non-sibling-4.html block-non-sibling-4-ref.html
== block-non-sibling-4.html block-non-sibling-4-ref2.html
== block-non-sibling-1a-dyn.html block-non-sibling-1-ref2.html
== block-non-sibling-1b-dyn.html block-non-sibling-1-ref2.html
== block-non-sibling-1c-dyn.html block-non-sibling-1-ref2.html
== block-non-sibling-1d-dyn.html block-non-sibling-1-ref2.html
== block-non-sibling-1e-dyn.html block-non-sibling-1-ref2.html
== block-non-sibling-1f-dyn.html block-non-sibling-1-ref2.html
== block-non-sibling-2a-dyn.html block-non-sibling-2-ref2.html
== block-non-sibling-2b-dyn.html block-non-sibling-2-ref2.html
== block-non-sibling-2c-dyn.html block-non-sibling-2-ref2.html
== block-non-sibling-2d-dyn.html block-non-sibling-2-ref2.html
== block-non-sibling-2e-dyn.html block-non-sibling-2-ref2.html
== block-non-sibling-2f-dyn.html block-non-sibling-2-ref2.html
== block-non-sibling-3a-dyn.html block-non-sibling-3-ref2.html
== block-non-sibling-3b-dyn.html block-non-sibling-3-ref2.html
== block-non-sibling-3c-dyn.html block-non-sibling-3-ref2.html
== block-non-sibling-3d-dyn.html block-non-sibling-3-ref2.html
== block-non-sibling-4-dyn.html block-non-sibling-4-ref2.html
# The first-child series tests cases where the top margin of a box collapses
# with the top margin of its parent element.
# This series is more extensive than the non-sibling series, because
# various combinations of positive and negative margins are tested.
== block-first-child-1a.html block-first-child-1-ref.html
== block-first-child-1b.html block-first-child-1-ref.html
== block-first-child-1c.html block-first-child-1-ref.html
== block-first-child-2.html block-first-child-2-ref.html
== block-first-child-3.html block-first-child-3-ref.html
== block-first-child-4.html block-first-child-4-ref.html
== block-first-child-5.html block-first-child-5-ref.html
== block-first-child-6.html block-first-child-6-ref.html
== block-first-child-7.html block-first-child-7-ref.html
== block-first-child-8a.html block-first-child-8-ref.html
== block-first-child-8b.html block-first-child-8-ref.html
== block-first-child-8c.html block-first-child-8-ref.html
== block-first-child-1a-dyn.html block-first-child-1-ref.html
== block-first-child-1b-dyn.html block-first-child-1-ref.html
== block-first-child-1c-dyn.html block-first-child-1-ref.html
== block-first-child-2-dyn.html block-first-child-2-ref.html
== block-first-child-3-dyn.html block-first-child-3-ref.html
== block-first-child-4-dyn.html block-first-child-4-ref.html
== block-first-child-5-dyn.html block-first-child-5-ref.html
== block-first-child-6-dyn.html block-first-child-6-ref.html
== block-first-child-7-dyn.html block-first-child-7-ref.html
== block-first-child-8a-dyn.html block-first-child-8-ref.html
== block-first-child-8b-dyn.html block-first-child-8-ref.html
== block-first-child-8c-dyn.html block-first-child-8-ref.html
# "The bottom margin of an in-flow block box with a 'height' of 'auto'
# collapses with its last in-flow block-level child's bottom margin"
# Note: The block-auto-height-last-child series automatically covers
# all cases where 'min-height' is '0' and 'max-height' is 'none' as
# these are the default values of those properties.
== block-auto-height-last-child-1a.html block-auto-height-last-child-1-ref.html
== block-auto-height-last-child-1b.html block-auto-height-last-child-1-ref.html
== block-auto-height-last-child-1c.html block-auto-height-last-child-1-ref.html
== block-auto-height-last-child-2.html block-auto-height-last-child-2-ref.html
== block-auto-height-last-child-3.html block-auto-height-last-child-3-ref.html
== block-auto-height-last-child-4.html block-auto-height-last-child-4-ref.html
== block-auto-height-last-child-5.html block-auto-height-last-child-5-ref.html
== block-auto-height-last-child-6.html block-auto-height-last-child-6-ref.html
== block-auto-height-last-child-7.html block-auto-height-last-child-7-ref.html
== block-auto-height-last-child-8a.html block-auto-height-last-child-8-ref.html
== block-auto-height-last-child-8b.html block-auto-height-last-child-8-ref.html
== block-auto-height-last-child-8c.html block-auto-height-last-child-8-ref.html
== block-auto-height-last-child-1a-dyn.html block-auto-height-last-child-1-ref.html
== block-auto-height-last-child-1b-dyn.html block-auto-height-last-child-1-ref.html
== block-auto-height-last-child-1c-dyn.html block-auto-height-last-child-1-ref.html
== block-auto-height-last-child-2-dyn.html block-auto-height-last-child-2-ref.html
== block-auto-height-last-child-3-dyn.html block-auto-height-last-child-3-ref.html
== block-auto-height-last-child-4-dyn.html block-auto-height-last-child-4-ref.html
== block-auto-height-last-child-5-dyn.html block-auto-height-last-child-5-ref.html
== block-auto-height-last-child-6-dyn.html block-auto-height-last-child-6-ref.html
== block-auto-height-last-child-7-dyn.html block-auto-height-last-child-7-ref.html
== block-auto-height-last-child-8a-dyn.html block-auto-height-last-child-8-ref.html
== block-auto-height-last-child-8b-dyn.html block-auto-height-last-child-8-ref.html
== block-auto-height-last-child-8c-dyn.html block-auto-height-last-child-8-ref.html
# The last-child series is an older variant of the
# block-auto-height-last-child tests.
== block-last-child-1a.html block-last-child-1-ref.html
== block-last-child-1b.html block-last-child-1-ref.html
== block-last-child-1c.html block-last-child-1-ref.html
== block-last-child-2a.html block-last-child-2-ref.html
== block-last-child-2b.html block-last-child-2-ref.html
== block-last-child-2c.html block-last-child-2-ref.html
== block-last-child-2d.html block-last-child-2-ref.html
== block-last-child-3a.html block-last-child-3-ref.html
== block-last-child-3b.html block-last-child-3-ref.html
== block-last-child-3c.html block-last-child-3-ref.html
== block-last-child-3d.html block-last-child-3-ref.html
== block-last-child-4a.html block-last-child-4-ref.html
== block-last-child-4b.html block-last-child-4-ref.html
== block-last-child-4c.html block-last-child-4-ref.html
== block-last-child-4d.html block-last-child-4-ref.html
# There's also the older block-zero-min-height series which explicitly
# adds min-height: 0; to boxes with height: auto;
# This should have no effect on margin-collapsing.
== block-zero-min-height-1a.html block-zero-min-height-1-ref.html
== block-zero-min-height-1b.html block-zero-min-height-1-ref.html
== block-zero-min-height-1c.html block-zero-min-height-1-ref.html
== block-zero-min-height-1d.html block-zero-min-height-1-ref.html
== block-zero-min-height-1e.html block-zero-min-height-1-ref.html
== block-zero-min-height-1f.html block-zero-min-height-1-ref.html
!= block-zero-min-height-1a.html block-zero-min-height-1-noref.html
!= block-zero-min-height-1b.html block-zero-min-height-1-noref.html
!= block-zero-min-height-1c.html block-zero-min-height-1-noref.html
!= block-zero-min-height-1d.html block-zero-min-height-1-noref.html
!= block-zero-min-height-1e.html block-zero-min-height-1-noref.html
!= block-zero-min-height-1f.html block-zero-min-height-1-noref.html
== block-zero-min-height-2a.html block-zero-min-height-2ab-ref.html
== block-zero-min-height-2b.html block-zero-min-height-2ab-ref.html
== block-zero-min-height-2c.html block-zero-min-height-2c-ref.html
== block-zero-min-height-2d.html block-zero-min-height-2de-ref.html
== block-zero-min-height-2e.html block-zero-min-height-2de-ref.html
== block-zero-min-height-2f.html block-zero-min-height-2f-ref.html
!= block-zero-min-height-2a.html block-zero-min-height-2-noref.html
!= block-zero-min-height-2b.html block-zero-min-height-2-noref.html
!= block-zero-min-height-2c.html block-zero-min-height-2-noref.html
!= block-zero-min-height-2d.html block-zero-min-height-2-noref.html
!= block-zero-min-height-2e.html block-zero-min-height-2-noref.html
!= block-zero-min-height-2f.html block-zero-min-height-2-noref.html
== block-zero-min-height-3a.html block-zero-min-height-3-ref.html
== block-zero-min-height-3b.html block-zero-min-height-3-ref.html
== block-zero-min-height-3c.html block-zero-min-height-3-ref.html
== block-zero-min-height-3d.html block-zero-min-height-3-ref.html
# If a parent box's height is 'auto' and its 'min-height' is non-zero,
# then its bottom margin collapses with its last-child's bottom margin.
# This is true even if the two margins do not actually touch each other,
# as they are still considered 'adjoining'.
fails == block-min-height-last-child-1a.html block-min-height-last-child-1-ref.html # Bug 616339
== block-min-height-last-child-1b.html block-min-height-last-child-1-ref.html
== block-min-height-last-child-1c.html block-min-height-last-child-1-ref.html
fails == block-min-height-last-child-2a.html block-min-height-last-child-2-ref.html # Bug 616339
fails == block-min-height-last-child-2b.html block-min-height-last-child-2-ref.html # Bug 616339
fails == block-min-height-last-child-3a.html block-min-height-last-child-3-ref.html # Bug 616339
== block-min-height-last-child-3b.html block-min-height-last-child-3-ref.html
== block-min-height-last-child-3c.html block-min-height-last-child-3-ref.html
== block-min-height-last-child-4a.html block-min-height-last-child-4-ref.html
== block-min-height-last-child-4b.html block-min-height-last-child-4-ref.html
== block-min-height-last-child-4c.html block-min-height-last-child-4-ref.html
== block-min-height-last-child-5a.html block-min-height-last-child-5-ref.html
== block-min-height-last-child-5b.html block-min-height-last-child-5-ref.html
== block-min-height-last-child-6a.html block-min-height-last-child-6-ref.html
== block-min-height-last-child-6b.html block-min-height-last-child-6-ref.html
== block-min-height-last-child-6c.html block-min-height-last-child-6-ref.html
== block-min-height-last-child-7a.html block-min-height-last-child-7-ref.html
== block-min-height-last-child-7b.html block-min-height-last-child-7-ref.html
== block-min-height-last-child-7c.html block-min-height-last-child-7-ref.html
== block-min-height-last-child-8a.html block-min-height-last-child-8-ref.html
== block-min-height-last-child-8b.html block-min-height-last-child-8-ref.html
== block-min-height-last-child-9a.html block-min-height-last-child-9-ref.html
== block-min-height-last-child-9b.html block-min-height-last-child-9-ref.html
== block-min-height-last-child-9c.html block-min-height-last-child-9-ref.html
fails == block-min-height-last-child-1a-dyn.html block-min-height-last-child-1-ref.html # Bug 616339
== block-min-height-last-child-1b-dyn.html block-min-height-last-child-1-ref.html
== block-min-height-last-child-1c-dyn.html block-min-height-last-child-1-ref.html
fails == block-min-height-last-child-2a-dyn.html block-min-height-last-child-2-ref.html # Bug 616339
fails == block-min-height-last-child-2b-dyn.html block-min-height-last-child-2-ref.html # Bug 616339
fails == block-min-height-last-child-3a-dyn.html block-min-height-last-child-3-ref.html # Bug 616339
== block-min-height-last-child-3b-dyn.html block-min-height-last-child-3-ref.html
== block-min-height-last-child-3c-dyn.html block-min-height-last-child-3-ref.html
== block-min-height-last-child-4a-dyn.html block-min-height-last-child-4-ref.html
== block-min-height-last-child-4b-dyn.html block-min-height-last-child-4-ref.html
== block-min-height-last-child-4c-dyn.html block-min-height-last-child-4-ref.html
== block-min-height-last-child-5a-dyn.html block-min-height-last-child-5-ref.html
== block-min-height-last-child-5b-dyn.html block-min-height-last-child-5-ref.html
== block-min-height-last-child-6a-dyn.html block-min-height-last-child-6-ref.html
== block-min-height-last-child-6b-dyn.html block-min-height-last-child-6-ref.html
== block-min-height-last-child-6c-dyn.html block-min-height-last-child-6-ref.html
== block-min-height-last-child-7a-dyn.html block-min-height-last-child-7-ref.html
== block-min-height-last-child-7b-dyn.html block-min-height-last-child-7-ref.html
== block-min-height-last-child-7c-dyn.html block-min-height-last-child-7-ref.html
== block-min-height-last-child-8a-dyn.html block-min-height-last-child-8-ref.html
== block-min-height-last-child-8b-dyn.html block-min-height-last-child-8-ref.html
== block-min-height-last-child-9a-dyn.html block-min-height-last-child-9-ref.html
== block-min-height-last-child-9b-dyn.html block-min-height-last-child-9-ref.html
== block-min-height-last-child-9c-dyn.html block-min-height-last-child-9-ref.html
# If a parent box's height is 'auto' and its 'max-height' is not 'none'
# then its bottom margin collapses with its last-child's bottom margin.
# According to CSS 2.1 §10.7 (Minimum and maximum heights) this is true,
# even if the descendant's height is bigger than the defined max-height.
== block-max-height-last-child-1a.html block-max-height-last-child-1-ref.html
== block-max-height-last-child-1b.html block-max-height-last-child-1-ref.html
== block-max-height-last-child-1c.html block-max-height-last-child-1-ref.html
== block-max-height-last-child-2a.html block-max-height-last-child-2-ref.html
== block-max-height-last-child-2b.html block-max-height-last-child-2-ref.html
== block-max-height-last-child-3a.html block-max-height-last-child-3-ref.html
== block-max-height-last-child-3b.html block-max-height-last-child-3-ref.html
== block-max-height-last-child-3c.html block-max-height-last-child-3-ref.html
== block-max-height-last-child-4a.html block-max-height-last-child-4-ref.html
== block-max-height-last-child-4b.html block-max-height-last-child-4-ref.html
== block-max-height-last-child-4c.html block-max-height-last-child-4-ref.html
== block-max-height-last-child-5a.html block-max-height-last-child-5-ref.html
== block-max-height-last-child-5b.html block-max-height-last-child-5-ref.html
== block-max-height-last-child-6a.html block-max-height-last-child-6-ref.html
== block-max-height-last-child-6b.html block-max-height-last-child-6-ref.html
== block-max-height-last-child-6c.html block-max-height-last-child-6-ref.html
fails == block-max-height-last-child-7a.html block-max-height-last-child-7-ref.html # Bug 616339
== block-max-height-last-child-7b.html block-max-height-last-child-7-ref.html
== block-max-height-last-child-7c.html block-max-height-last-child-7-ref.html
fails == block-max-height-last-child-8a.html block-max-height-last-child-8-ref.html # Bug 616339
fails == block-max-height-last-child-8b.html block-max-height-last-child-8-ref.html # Bug 616339
fails == block-max-height-last-child-9a.html block-max-height-last-child-9-ref.html # Bug 616339
== block-max-height-last-child-9b.html block-max-height-last-child-9-ref.html
== block-max-height-last-child-9c.html block-max-height-last-child-9-ref.html
== block-max-height-last-child-1a-dyn.html block-max-height-last-child-1-ref.html
== block-max-height-last-child-1b-dyn.html block-max-height-last-child-1-ref.html
== block-max-height-last-child-1c-dyn.html block-max-height-last-child-1-ref.html
== block-max-height-last-child-2a-dyn.html block-max-height-last-child-2-ref.html
== block-max-height-last-child-2b-dyn.html block-max-height-last-child-2-ref.html
== block-max-height-last-child-3a-dyn.html block-max-height-last-child-3-ref.html
== block-max-height-last-child-3b-dyn.html block-max-height-last-child-3-ref.html
== block-max-height-last-child-3c-dyn.html block-max-height-last-child-3-ref.html
== block-max-height-last-child-4a-dyn.html block-max-height-last-child-4-ref.html
== block-max-height-last-child-4b-dyn.html block-max-height-last-child-4-ref.html
== block-max-height-last-child-4c-dyn.html block-max-height-last-child-4-ref.html
== block-max-height-last-child-5a-dyn.html block-max-height-last-child-5-ref.html
== block-max-height-last-child-5b-dyn.html block-max-height-last-child-5-ref.html
== block-max-height-last-child-6a-dyn.html block-max-height-last-child-6-ref.html
== block-max-height-last-child-6b-dyn.html block-max-height-last-child-6-ref.html
== block-max-height-last-child-6c-dyn.html block-max-height-last-child-6-ref.html
fails == block-max-height-last-child-7a-dyn.html block-max-height-last-child-7-ref.html # Bug 616339
== block-max-height-last-child-7b-dyn.html block-max-height-last-child-7-ref.html
== block-max-height-last-child-7c-dyn.html block-max-height-last-child-7-ref.html
fails == block-max-height-last-child-8a-dyn.html block-max-height-last-child-8-ref.html # Bug 616339
fails == block-max-height-last-child-8b-dyn.html block-max-height-last-child-8-ref.html # Bug 616339
fails == block-max-height-last-child-9a-dyn.html block-max-height-last-child-9-ref.html # Bug 616339
== block-max-height-last-child-9b-dyn.html block-max-height-last-child-9-ref.html
== block-max-height-last-child-9c-dyn.html block-max-height-last-child-9-ref.html
# If a parent box's height is not 'auto' then its bottom margin
# never collapses with its last-child's bottom margin,
# as these margins are not considered 'adjoining'.
# According to CSS 2.1 §10.7 (Minimum and maximum heights) this is true,
# even if the value of min- or max-height is used instead.
== block-fix-height-last-child-1a.html block-fix-height-last-child-1-ref.html
== block-fix-height-last-child-1b.html block-fix-height-last-child-1-ref.html
== block-fix-height-last-child-2a.html block-fix-height-last-child-2-ref.html
== block-fix-height-last-child-2b.html block-fix-height-last-child-2-ref.html
== block-fix-height-last-child-3a.html block-fix-height-last-child-3-ref.html
== block-fix-height-last-child-3b.html block-fix-height-last-child-3-ref.html
== block-fix-height-last-child-4a.html block-fix-height-last-child-4-ref.html
== block-fix-height-last-child-4b.html block-fix-height-last-child-4-ref.html
== block-fix-height-last-child-4c.html block-fix-height-last-child-4-ref.html
== block-fix-height-last-child-4d.html block-fix-height-last-child-4-ref.html
== block-fix-height-last-child-4e.html block-fix-height-last-child-4-ref.html
== block-fix-height-last-child-4f.html block-fix-height-last-child-4-ref.html
== block-fix-height-last-child-4g.html block-fix-height-last-child-4-ref.html
== block-fix-height-last-child-4h.html block-fix-height-last-child-4-ref.html
== block-fix-height-last-child-1a-dyn.html block-fix-height-last-child-1-ref.html
== block-fix-height-last-child-1b-dyn.html block-fix-height-last-child-1-ref.html
== block-fix-height-last-child-2a-dyn.html block-fix-height-last-child-2-ref.html
== block-fix-height-last-child-2b-dyn.html block-fix-height-last-child-2-ref.html
== block-fix-height-last-child-3a-dyn.html block-fix-height-last-child-3-ref.html
== block-fix-height-last-child-3b-dyn.html block-fix-height-last-child-3-ref.html
== block-fix-height-last-child-4a-dyn.html block-fix-height-last-child-4-ref.html
== block-fix-height-last-child-4b-dyn.html block-fix-height-last-child-4-ref.html
== block-fix-height-last-child-4c-dyn.html block-fix-height-last-child-4-ref.html
== block-fix-height-last-child-4d-dyn.html block-fix-height-last-child-4-ref.html
== block-fix-height-last-child-4e-dyn.html block-fix-height-last-child-4-ref.html
== block-fix-height-last-child-4f-dyn.html block-fix-height-last-child-4-ref.html
== block-fix-height-last-child-4g-dyn.html block-fix-height-last-child-4-ref.html
== block-fix-height-last-child-4h-dyn.html block-fix-height-last-child-4-ref.html
# "Two margins are adjoining if and only if:" [...]
# "both belong to vertically-adjacent box edges,
# i.e. form one of the following pairs:" [...]
# "top and bottom margins of a box that does not establish a new block
# formatting context and that has zero computed 'min-height', zero or
# 'auto' computed 'height', and no in-flow children"
# Note that "if the top and bottom margins of a box are adjoining, then it is
# possible for margins to collapse through it."
# I.e. a parent's top and bottom margin are still considered adjoining if
# they collapse through their in-flow children's margins.
== block-no-content-1a.html block-no-content-1-ref.html
== block-no-content-1b.html block-no-content-1-ref.html
== block-no-content-1c.html block-no-content-1-ref.html
== block-no-content-1d.html block-no-content-1-ref.html
== block-no-content-2a.html block-no-content-2-ref.html
== block-no-content-2b.html block-no-content-2-ref.html
== block-no-content-2c.html block-no-content-2-ref.html
== block-no-content-2d.html block-no-content-2-ref.html
== block-no-content-2e.html block-no-content-2-ref.html
== block-no-content-3a.html block-no-content-3-ref.html
== block-no-content-3b.html block-no-content-3-ref.html
== block-no-content-3c.html block-no-content-3-ref.html
== block-no-content-4a.html block-no-content-4-ref.html
== block-no-content-4b.html block-no-content-4-ref.html
== block-no-content-4c.html block-no-content-4-ref.html
== block-no-content-5a.html block-no-content-5-ref.html
== block-no-content-5b.html block-no-content-5-ref.html
== block-no-content-6.html block-no-content-6-ref.html
== block-no-content-7.html block-no-content-7-ref.html
# "If the top margin of a box with non-zero computed 'min-height' and 'auto'
# computed 'height' collapses with the bottom margin of its last in-flow
# child, then the child's bottom margin does not collapse with the parent's
# bottom margin."
== block-no-content-8.html block-no-content-8-ref.html
== block-no-content-1a-dyn.html block-no-content-1-ref.html
== block-no-content-1b-dyn.html block-no-content-1-ref.html
== block-no-content-1c-dyn.html block-no-content-1-ref.html
== block-no-content-1d-dyn.html block-no-content-1-ref.html
== block-no-content-2a-dyn.html block-no-content-2-ref.html
== block-no-content-2b-dyn.html block-no-content-2-ref.html
== block-no-content-2c-dyn.html block-no-content-2-ref.html
== block-no-content-2d-dyn.html block-no-content-2-ref.html
== block-no-content-2e-dyn.html block-no-content-2-ref.html
== block-no-content-3a-dyn.html block-no-content-3-ref.html
== block-no-content-3b-dyn.html block-no-content-3-ref.html
== block-no-content-3c-dyn.html block-no-content-3-ref.html
== block-no-content-4a-dyn.html block-no-content-4-ref.html
== block-no-content-4b-dyn.html block-no-content-4-ref.html
== block-no-content-4c-dyn.html block-no-content-4-ref.html
== block-no-content-5a-dyn.html block-no-content-5-ref.html
== block-no-content-5b-dyn.html block-no-content-5-ref.html
== block-no-content-6-dyn.html block-no-content-6-ref.html
== block-no-content-7-dyn.html block-no-content-7-ref.html
== block-no-content-8-dyn.html block-no-content-8-ref.html
# These tests are similar to the no-content ones, except that some boxes
# have height: 0; declared on them.
== block-zero-height-1a.html block-zero-height-1a-ref.html
== block-zero-height-1b.html block-zero-height-1b-ref.html
== block-zero-height-2a.html block-zero-height-2a-ref.html
== block-zero-height-2b.html block-zero-height-2b-ref.html
== block-zero-height-2c.html block-zero-height-2c-ref.html
== block-zero-height-3a.html block-zero-height-3-ref.html
== block-zero-height-3b.html block-zero-height-3-ref.html
== block-zero-height-3c.html block-zero-height-3-ref.html
# "Margins of elements that establish new block formatting contexts ([...])
# do not collapse with their in-flow children."
# The margins of a block formatting context can collapse with margins of
# in-flow sibling boxes, but not with margins of their in-flow children.
# Elements that establish a block formatting context are:
# * "elements with 'overflow' other than 'visible'"
== block-overflow-1.html block-overflow-1-ref.html
== block-overflow-1.html block-overflow-1-ref2.html
== block-overflow-2.html block-overflow-2-ref.html
== block-overflow-2.html block-overflow-2-ref2.html
== block-overflow-3.html block-overflow-3-ref.html
== block-overflow-3.html block-overflow-3-ref2.html
== block-overflow-4.html block-overflow-4-ref.html
== block-overflow-4.html block-overflow-4-ref2.html
== block-overflow-5a.html block-overflow-5-ref.html
== block-overflow-5a.html block-overflow-5-ref2.html
== block-overflow-5b.html block-overflow-5-ref.html
== block-overflow-5b.html block-overflow-5-ref2.html
== block-overflow-5c.html block-overflow-5c-ref.html
== block-overflow-5c.html block-overflow-5c-ref2.html
== block-overflow-5d.html block-overflow-5-ref.html
== block-overflow-5d.html block-overflow-5-ref2.html
== block-overflow-1-dyn.html block-overflow-1-ref2.html
== block-overflow-2-dyn.html block-overflow-2-ref2.html
== block-overflow-3-dyn.html block-overflow-3-ref2.html
== block-overflow-4-dyn.html block-overflow-4-ref2.html
== block-overflow-5a-dyn.html block-overflow-5-ref2.html
== block-overflow-5b-dyn.html block-overflow-5-ref2.html
fuzzy-if(winWidget,0-4,0-36) == block-overflow-5c-dyn.html block-overflow-5c-ref2.html
== block-overflow-5d-dyn.html block-overflow-5-ref2.html
# * 'fieldset' elements, per HTML5 (Candidate Recommendation 6 August 2013):
# §10.3.13 (The fieldset and legend elements): "The fieldset element is
# expected to establish a new block formatting context."
== fieldset-sibling-1a.html fieldset-sibling-1-ref.html
== fieldset-sibling-1b.html fieldset-sibling-1-ref.html
== fieldset-sibling-1c.html fieldset-sibling-1-ref.html
== fieldset-sibling-2a.html fieldset-sibling-2-ref1.html
== fieldset-sibling-2b.html fieldset-sibling-2-ref1.html
== fieldset-sibling-2c.html fieldset-sibling-2-ref1.html
== fieldset-sibling-2a.html fieldset-sibling-2-ref2.html
== fieldset-sibling-2b.html fieldset-sibling-2-ref2.html
== fieldset-sibling-2c.html fieldset-sibling-2-ref2.html
== fieldset-sibling-1a-dyn.html fieldset-sibling-1-ref.html
== fieldset-sibling-1b-dyn.html fieldset-sibling-1-ref.html
== fieldset-sibling-1c-dyn.html fieldset-sibling-1-ref.html
== fieldset-sibling-2a-dyn.html fieldset-sibling-2-ref2.html
== fieldset-sibling-2b-dyn.html fieldset-sibling-2-ref2.html
== fieldset-sibling-2c-dyn.html fieldset-sibling-2-ref2.html
== fieldset-child-1.html fieldset-child-1-ref.html
== fieldset-child-1-dyn.html fieldset-child-1-ref.html
# * Tables, per CSS 2.1 §17.4 (Tables in the visual formatting model):
# "The table wrapper box establishes a block formatting context."
# "The table wrapper box is a 'block' box if the table is block-level [...]"
== table-sibling-1a.html table-sibling-1-ref.html
!= table-sibling-1a.html table-sibling-1-noref.html
== table-sibling-1b.html table-sibling-1-ref.html
!= table-sibling-1b.html table-sibling-1-noref.html
== table-sibling-1c.html table-sibling-1-ref.html
!= table-sibling-1c.html table-sibling-1-noref2.html
== table-sibling-2a.html table-sibling-2-ref.html
!= table-sibling-2a.html table-sibling-2-noref.html
== table-sibling-2b.html table-sibling-2-ref.html
!= table-sibling-2b.html table-sibling-2-noref.html
== table-sibling-2c.html table-sibling-2-ref.html
!= table-sibling-2c.html table-sibling-2-noref2.html
== table-sibling-1a-dyn.html table-sibling-1-ref.html
!= table-sibling-1a-dyn.html table-sibling-1-noref.html
== table-sibling-1b-dyn.html table-sibling-1-ref.html
!= table-sibling-1b-dyn.html table-sibling-1-noref.html
== table-sibling-1c-dyn.html table-sibling-1-ref.html
!= table-sibling-1c-dyn.html table-sibling-1-noref2.html
== table-sibling-2a-dyn.html table-sibling-2-ref.html
!= table-sibling-2a-dyn.html table-sibling-2-noref.html
== table-sibling-2b-dyn.html table-sibling-2-ref.html
!= table-sibling-2b-dyn.html table-sibling-2-noref.html
== table-sibling-2c-dyn.html table-sibling-2-ref.html
!= table-sibling-2c-dyn.html table-sibling-2-noref2.html
== table-sibling-3-dyn.html table-sibling-3-ref.html
!= table-sibling-3-dyn.html table-sibling-3-noref.html
# * table-caption boxes, per CSS 2.1 §9.4.1 (Block formatting contexts):
# "[...] block containers (such as [...] table-captions) [...]
# establish new block formatting contexts for their contents."
# The margins of a table-caption do not collapse with the margins
# of the table wrapper box. They can collapse with the margins of other
# table-captions, though, if they share the same caption-side.
== table-caption-1a.html table-caption-1-ref.html
== table-caption-1b.html table-caption-1-ref.html
== table-caption-1c.html table-caption-1-ref.html
== table-caption-2a.html table-caption-2-ref.html
== table-caption-2b.html table-caption-2-ref.html
== table-caption-2c.html table-caption-2-ref.html
== table-caption-1a-dyn.html table-caption-1-ref.html
== table-caption-1b-dyn.html table-caption-1-ref.html
== table-caption-1c-dyn.html table-caption-1-ref.html
== table-caption-2a-dyn.html table-caption-2-ref.html
== table-caption-2b-dyn.html table-caption-2-ref.html
== table-caption-2c-dyn.html table-caption-2-ref.html
== table-caption-top-1.html table-caption-top-1-ref.html
== table-caption-top-2.html table-caption-top-2-ref.html
== table-caption-bottom-1.html table-caption-bottom-1-ref.html
== table-caption-bottom-2.html table-caption-bottom-2-ref.html
== table-caption-top-1-dyn.html table-caption-top-1-ref.html
== table-caption-top-2-dyn.html table-caption-top-1-ref.html
== table-caption-bottom-1-dyn.html table-caption-bottom-1-ref.html
== table-caption-bottom-2-dyn.html table-caption-bottom-1-ref.html
fails == caption-sibling-1a.html caption-sibling-1-ref.html # Bug 144517
!= caption-sibling-1a.html caption-sibling-1-noref.html
fails == caption-sibling-1b.html caption-sibling-1-ref.html # Bug 144517
!= caption-sibling-1b.html caption-sibling-1-noref.html
fails == caption-sibling-1c.html caption-sibling-1-ref.html # Bug 144517
!= caption-sibling-1c.html caption-sibling-1-noref2.html
fails == caption-sibling-1a-dyn.html caption-sibling-1-ref.html # Bug 144517
!= caption-sibling-1a-dyn.html caption-sibling-1-noref.html
fails == caption-sibling-1b-dyn.html caption-sibling-1-ref.html # Bug 144517
!= caption-sibling-1b-dyn.html caption-sibling-1-noref.html
fails == caption-sibling-1c-dyn.html caption-sibling-1-ref.html # Bug 144517
!= caption-sibling-1c-dyn.html caption-sibling-1-noref2.html
fails == caption-sibling-2-dyn.html caption-sibling-2-ref.html # Bug 144517
!= caption-sibling-2-dyn.html caption-sibling-2-noref.html
== caption-child-1.html caption-child-1-ref.html
== caption-child-1-dyn.html caption-child-1-ref.html
# * Multi-column elements, per CSS Multi-column Layout Module
# (Candidate Recommendation 12 April 2011):
# "A multi-column element establishes a new block formatting context [...]"
== column-sibling-1a.html column-sibling-1-ref.html
== column-sibling-1b.html column-sibling-1-ref.html
== column-sibling-1c.html column-sibling-1-ref.html
== column-sibling-1a-dyn.html column-sibling-1-ref.html
== column-sibling-1b-dyn.html column-sibling-1-ref.html
== column-sibling-1c-dyn.html column-sibling-1-ref.html
== column-sibling-2a.html column-sibling-2-ref.html
== column-sibling-2b.html column-sibling-2-ref.html
== column-sibling-2c.html column-sibling-2-ref.html
== column-sibling-2a-dyn.html column-sibling-2-ref.html
== column-sibling-2b-dyn.html column-sibling-2-ref.html
== column-sibling-2c-dyn.html column-sibling-2-ref.html
== column-child-1.html column-child-1-ref.html
== column-child-1-dyn.html column-child-1-ref.html
# * inline-block boxes
# "Margins of inline-block boxes do not collapse
# (not even with their in-flow children)."
== inline-block-sibling-1a.html inline-block-sibling-1-ref.html
== inline-block-sibling-1b.html inline-block-sibling-1-ref.html
== inline-block-sibling-1c.html inline-block-sibling-1-ref.html
== inline-block-sibling-2.html inline-block-sibling-2-ref.html
!= inline-block-sibling-2.html inline-block-sibling-2-noref.html
== inline-block-sibling-1a-dyn.html inline-block-sibling-1-ref.html
== inline-block-sibling-1b-dyn.html inline-block-sibling-1-ref.html
== inline-block-sibling-1c-dyn.html inline-block-sibling-1-ref.html
== inline-block-sibling-2-dyn.html inline-block-sibling-2-ref.html
== inline-block-child-1.html inline-block-child-1-ref.html
== inline-block-child-2.html inline-block-child-2-ref.html
!= inline-block-child-2.html inline-block-child-2-noref.html
== inline-block-child-3.html inline-block-child-3-ref.html
== inline-block-child-1-dyn.html inline-block-child-1-ref.html
== inline-block-child-2-dyn.html inline-block-child-2-ref.html
== inline-block-child-3-dyn.html inline-block-child-3-ref.html
# * absolutely positioned elements
# "Margins of absolutely positioned boxes do not collapse
# (not even with their in-flow children)."
== block-abs-pos-1.html block-abs-pos-1-ref.html
== block-abs-pos-2.html block-abs-pos-2-ref.html
== block-abs-pos-2.html block-abs-pos-2-ref2.html
== block-abs-pos-1-dyn.html block-abs-pos-1-ref.html
== block-abs-pos-2-dyn.html block-abs-pos-2-ref2.html
# * Floats
# "Margins between a floated box and any other box do not collapse
# (not even between a float and its in-flow children)."
== block-float-1a.html block-float-1a-ref.html
== block-float-1a.html block-float-1a-ref2.html
!= block-float-1a.html block-float-1a-noref.html
== block-float-1b.html block-float-1b-ref.html
== block-float-1b.html block-float-1b-ref2.html
!= block-float-1b.html block-float-1b-noref.html
== block-float-2a.html block-float-2a-ref.html
!= block-float-2a.html block-float-2a-noref.html
== block-float-2b.html block-float-2b-ref.html
!= block-float-2b.html block-float-2b-noref.html
== block-float-3a.html block-float-3a-ref.html
== block-float-3b.html block-float-3b-ref.html
== block-float-1a-dyn.html block-float-1a-ref.html
== block-float-1b-dyn.html block-float-1b-ref.html
== block-float-2a-dyn.html block-float-2a-ref.html
== block-float-2b-dyn.html block-float-2b-ref.html
== block-float-3a-dyn.html block-float-3a-ref.html
== block-float-3b-dyn.html block-float-3b-ref.html
# Tests for various cases where clearance is applied and collapsing is
# prevented or only allows for certain margins.
== block-clear-1a.html block-clear-1a-ref.html
== block-clear-1b.html block-clear-1b-ref.html
== block-clear-2.html block-clear-2-ref.html
!= block-clear-2.html block-clear-2-noref.html
== block-clear-3a.html block-clear-3-ref-left.html
== block-clear-3b.html block-clear-3-ref-right.html
== block-clear-3c.html block-clear-3-ref-left.html
== block-clear-3d.html block-clear-3-ref-right.html
== block-clear-3e.html block-clear-3-ref-left.html
== block-clear-3f.html block-clear-3-ref-right.html
== block-clear-4a.html block-clear-4-ref-left.html
== block-clear-4b.html block-clear-4-ref-left.html
== block-clear-4c.html block-clear-4-ref-left.html
== block-clear-4d.html block-clear-4-ref-right.html
== block-clear-4e.html block-clear-4-ref-right.html
== block-clear-4f.html block-clear-4-ref-right.html
== block-clear-5a.html block-clear-5-left-ref.html
== block-clear-5b.html block-clear-5-left-ref.html
== block-clear-5c.html block-clear-5-left-ref.html
== block-clear-5d.html block-clear-5-left-ref.html
== block-clear-5e.html block-clear-5-right-ref.html
== block-clear-5f.html block-clear-5-right-ref.html
== block-clear-5g.html block-clear-5-right-ref.html
== block-clear-5h.html block-clear-5-right-ref.html
fails == block-clear-6a-left.html block-clear-6abc-left-ref.html # Bug 493380
== block-clear-6b-left.html block-clear-6abc-left-ref.html
== block-clear-6c-left.html block-clear-6abc-left-ref.html
fails == block-clear-6d-left.html block-clear-6def-left-ref1.html # Bug 493380
fails == block-clear-6d-left.html block-clear-6def-left-ref2.html # Bug 493380
== block-clear-6e-left.html block-clear-6def-left-ref1.html
== block-clear-6e-left.html block-clear-6def-left-ref2.html
== block-clear-6f-left.html block-clear-6def-left-ref1.html
== block-clear-6f-left.html block-clear-6def-left-ref2.html
fails == block-clear-7a-left.html block-clear-7abcd-left-ref.html # Bug 493380
fails == block-clear-7b-left.html block-clear-7abcd-left-ref.html # Bug 493380
fails == block-clear-7c-left.html block-clear-7abcd-left-ref.html # Bug 493380
== block-clear-7d-left.html block-clear-7abcd-left-ref.html
fails == block-clear-7e-left.html block-clear-7efgh-left-ref1.html # Bug 493380
fails == block-clear-7e-left.html block-clear-7efgh-left-ref2.html # Bug 493380
fails == block-clear-7f-left.html block-clear-7efgh-left-ref1.html # Bug 493380
fails == block-clear-7f-left.html block-clear-7efgh-left-ref2.html # Bug 493380
fails == block-clear-7g-left.html block-clear-7efgh-left-ref1.html # Bug 493380
fails == block-clear-7g-left.html block-clear-7efgh-left-ref2.html # Bug 493380
== block-clear-7h-left.html block-clear-7efgh-left-ref1.html
== block-clear-7h-left.html block-clear-7efgh-left-ref2.html
# "Margins of the root element's box do not collapse."
# Testing the root margins of a generic XML document.
== block-xml-root-1.xml block-xml-root-1-ref.xml
# In XML and XHTML, the html element is not necessarily the root element of
# a document. In that case, the margins of the html element collapse
# like the margins of any other block boxes.
== block-xhtml-root-1a.xhtml block-xhtml-root-1-ref.xhtml
== block-xhtml-root-1b.xhtml block-xhtml-root-1-ref.xhtml
== block-xhtml-root-2.xhtml block-xhtml-root-2-ref.xhtml
== block-xhtml-root-3.xhtml block-xhtml-root-3-ref.xhtml
# When the html element is the root element of the document, its margins
# do not collapse.
== block-xhtml-html-1a.xhtml block-xhtml-html-1-ref.xhtml
== block-xhtml-html-1b.xhtml block-xhtml-html-1-ref.xhtml
== block-xhtml-html-2.xhtml block-xhtml-html-2-ref.xhtml
== block-xhtml-html-3.xhtml block-xhtml-html-3-ref.xhtml
== block-xhtml-html-1a-dyn.xhtml block-xhtml-html-1-ref.xhtml
== block-xhtml-html-1b-dyn.xhtml block-xhtml-html-1-ref.xhtml
== block-xhtml-html-2-dyn.xhtml block-xhtml-html-2-ref.xhtml
== block-xhtml-html-3-dyn.xhtml block-xhtml-html-3-ref.xhtml
# In HTML documents only the html element can be the root element.
# Its margins do not collapse.
== block-html-html-1a.html block-html-html-1-ref.html
== block-html-html-1b.html block-html-html-1-ref.html
== block-html-html-2.html block-html-html-2-ref.html
== block-html-html-3.html block-html-html-3-ref.html
== block-html-html-1a-dyn.html block-html-html-1-ref.html
== block-html-html-1b-dyn.html block-html-html-1-ref.html
== block-html-html-2-dyn.html block-html-html-2-ref.html
== block-html-html-3-dyn.html block-html-html-3-ref.html
# These are older tests that check whether margins on the root element collapse.
== block-root-1a.html block-root-1a-ref.html
== block-root-1a.html block-root-1a-ref2.html
!= block-root-1a.html block-root-1a-noref1.html
!= block-root-1a.html block-root-1a-noref2.html
== block-root-1b.html block-root-1b-ref.html
== block-root-1b.html block-root-1b-ref2.html
== block-html-body-1.html block-html-body-1-ref.html
== block-html-body-1.html block-html-body-1-ref2.html
!= block-html-body-1.html block-html-body-1-noref.html
# Some basic tests for margins given in percent and em.
== block-percent-1.html block-percent-1-ref.html
== block-percent-1-dyn.html block-percent-1-ref.html
== block-percent-2.html block-percent-2-ref.html
== block-percent-2-dyn.html block-percent-2-ref.html
== block-em-length-1.html block-em-length-1-ref.html
== block-em-length-1-dyn.html block-em-length-1-ref.html
# Other tests.
== dynamic-add-text-1.html dynamic-add-text-1-ref.html # Bug 467321
== scrollable-vertical-margin.html scrollable-vertical-margin-ref.html
== scrollable-horizontal-margin.html scrollable-horizontal-margin-ref.html