layout: Rewrite Servo's vertical-align support to match CSS 2.1 §

10.8, and implement `vertical-align: middle` per CSS 2.1 § 10.8.1.

`InlineMetrics` has been split into `InlineMetrics` for fragments and
`LineMetrics` for lines. Both structures' fields have been renamed in
order to more clearly delineate the difference between *space* and
*content*. Vertical positioning of fragments has been reworked to take
margins and borders into account only for replaced content.

This patch fixes the `vertical_align_super_a.html` reftest. Servo now
matches the rendering that Gecko and WebKit produce.

Additionally, this includes a test for the popular inline-block
centering technique described here:
https://s.codepen.io/shshaw/fullpage/gEiDt?#Inline-Block
This commit is contained in:
Patrick Walton 2016-10-05 11:27:40 -07:00
parent 56b41fa2ea
commit 773614f84c
35 changed files with 522 additions and 389 deletions

View file

@ -1,3 +0,0 @@
[flexbox-flex-direction-default.htm]
type: reftest
expected: FAIL

View file

@ -1,3 +0,0 @@
[flexbox-flex-direction-row-reverse.htm]
type: reftest
expected: FAIL

View file

@ -1,3 +0,0 @@
[flexbox-flex-direction-row.htm]
type: reftest
expected: FAIL

View file

@ -1,3 +0,0 @@
[flexbox-flex-wrap-wrap-reverse.htm]
type: reftest
expected: FAIL

View file

@ -1,3 +0,0 @@
[flexbox-flex-wrap-wrap.htm]
type: reftest
expected: FAIL