Auto merge of #12593 - adamncasey:table-row-cell-height, r=pcwalton

Fix table vertical alignment (middle, bottom)

<!-- Please describe your changes on the following line: -->
Fixes table cell vertical alignment (middle, bottom, not yet baseline) when the row contains cells of differing heights.

Moved the work done earlier by @notriddle into a separate public function on TableCellFlow. This function is then called by TableRowFlow once the cell's block size has been calculator.

---

<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data: -->
- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors
- [X] These changes fix #12531 (github issue number if applicable).

<!-- Either: -->
- [X] There are tests for these changes

<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/12593)
<!-- Reviewable:end -->
This commit is contained in:
bors-servo 2016-07-26 20:17:02 -05:00 committed by GitHub
commit b374582e23
9 changed files with 102 additions and 12 deletions

View file

@ -1,3 +0,0 @@
[margin-collapse-clear-002.htm]
type: reftest
expected: FAIL

View file

@ -1,3 +0,0 @@
[margin-collapse-clear-003.htm]
type: reftest
expected: FAIL

View file

@ -1,3 +0,0 @@
[margin-collapse-clear-008.htm]
type: reftest
expected: FAIL

View file

@ -1,3 +0,0 @@
[margin-collapse-clear-009.htm]
type: reftest
expected: FAIL

View file

@ -6022,6 +6022,18 @@
"url": "/_mozilla/mozilla/table_valign_middle.html"
}
],
"mozilla/table_valign_uneven_height.html": [
{
"path": "mozilla/table_valign_uneven_height.html",
"references": [
[
"/_mozilla/mozilla/table_valign_uneven_height_ref.html",
"=="
]
],
"url": "/_mozilla/mozilla/table_valign_uneven_height.html"
}
],
"mozilla/webgl/clearcolor.html": [
{
"path": "mozilla/webgl/clearcolor.html",
@ -15110,6 +15122,18 @@
"url": "/_mozilla/mozilla/table_valign_middle.html"
}
],
"mozilla/table_valign_uneven_height.html": [
{
"path": "mozilla/table_valign_uneven_height.html",
"references": [
[
"/_mozilla/mozilla/table_valign_uneven_height_ref.html",
"=="
]
],
"url": "/_mozilla/mozilla/table_valign_uneven_height.html"
}
],
"mozilla/webgl/clearcolor.html": [
{
"path": "mozilla/webgl/clearcolor.html",

View file

@ -0,0 +1,34 @@
<!doctype html>
<meta charset="utf-8">
<title>Vertical Alignment for row with uneven height cells</title>
<link rel="match" href="table_valign_uneven_height_ref.html">
<style>
td {
border: 5px black solid;
border-spacing: 0;
padding: 0;
}
td {
vertical-align: middle;
background-color: green;
}
.b {
vertical-align: bottom;
}
div {
height: 50px;
width: 50px;
background-color: blue;
}
.c {
height: 100px !important;
background-color: red !important;
}
</style>
<table>
<tr>
<td><div class="c"></div></td>
<td><div></div></td>
<td class="b"><div></div></td>
</tr>
</table>

View file

@ -0,0 +1,34 @@
<!doctype html>
<meta charset="utf-8">
<title>Reference: Vertical Alignment for row with uneven height cells</title>
<style>
td {
background-color: green;
border: 5px black solid;
border-spacing: 0;
padding: 0;
}
div {
height: 50px;
width: 50px;
background-color: blue;
}
.c {
height: 100px !important;
background-color: #f00 !important;
}
.middle {
margin-top: 25px;
margin-bottom: 25px;
}
.bottom {
margin-top: 50px;
}
</style>
<table>
<tr>
<td class="a"><div class="c"></div></td>
<td class="a"><div class="middle"></div></td>
<td class="b"><div class="bottom"></div></td>
</tr>
</table>