wpt / css / css-writing-modes / table-cell-align-006.html

Status: FAIL | Duration: 26ms | Subtests: 0/1 | Open test on wpt.live | Open ref on wpt.live | wpt.fyi

/css/css-writing-modes/table-cell-align-006.html

<!DOCTYPE html>
<meta charset="utf-8">
<title>CSS Writing Modes test: text-align in orthogonal table cell</title>

<link rel="help" href="https://drafts.csswg.org/css-writing-modes-3/#line-mappings">
<meta assert="text-align values respect line-relative mappings of the table cell">
<link rel="match" href="reference/table-cell-align-006-ref.html">
<link rel="author" title="Jonathan Kew" href="mailto:jkew@mozilla.com">

<meta name="flags" content="ahem" />
<link rel="stylesheet" type="text/css" href="/fonts/ahem.css" />

<style>
table {
  font: 20px/1 Ahem;
  border: 1px solid gray;
  display: inline-table;
  margin: 1em;
}

td {
  padding: 0;
  color: green;
}

table.vrl td {
  writing-mode: vertical-rl;
}

table.slr td {
  writing-mode: sideways-lr;
}

table.h {
  writing-mode: vertical-lr;
}

table.h td {
  writing-mode: initial;
}

/* If text-align works correctly on the cells, their green Ahem glyphs
   should cover the red part of each background. */
.left {
  text-align: left;
  background: linear-gradient(to bottom, red 20%, transparent 20%);
}
.slr .left {
  background: linear-gradient(to top, red 20%, transparent 20%);
}
.center {
  text-align: center;
  background: linear-gradient(to bottom, transparent 40%, red 40%, red 60%, transparent 60%);
}
.right {
  text-align: right;
  background: linear-gradient(to bottom, transparent 80%, red 80%);
}
.slr .right {
  background: linear-gradient(to top, transparent 80%, red 80%);
}
.start,
.slr .start:dir(rtl)
 {
  text-align: start;
  background: linear-gradient(to bottom, red 20%, transparent 20%);
}
.start:dir(rtl),
.slr .start  {
  background: linear-gradient(to top, red 20%, transparent 20%);
}
.end,
.slr .end:dir(rtl)
 {
  text-align: end;
  background: linear-gradient(to bottom, transparent 80%, red 80%);
}
.end:dir(rtl),
.slr .end
 {
  background: linear-gradient(to top, transparent 80%, red 80%);
}
.justify {
  text-align-last: justify;
  background: linear-gradient(to bottom, red 20%, transparent 20% 80%, red 80% );
}

.h .left {
  background: linear-gradient(to right, red 20%, transparent 20%);
}
.h .center {
  background: linear-gradient(to right, transparent 40%, red 40%, red 60%, transparent 60%);
}
.h .right {
  background: linear-gradient(to right, transparent 80%, red 80%);
}
.h .start {
  background: linear-gradient(to right, red 20%, transparent 20%);
}
.h .start:dir(rtl) {
  background: linear-gradient(to left, red 20%, transparent 20%);
}
.h .end {
  background: linear-gradient(to right, transparent 80%, red 80%);
}
.h .end:dir(rtl) {
  background: linear-gradient(to left, transparent 80%, red 80%);
}
.h .justify {
  background: linear-gradient(to right, red 20%, transparent 20% 80%, red 80% );
}
</style>

</div>
<table class=vrl>
 <tr>
  <td>XXXXX</td>
  <td class=left>X</td>
  <td class=center>X</td>
  <td class=right>X</td>
  <td class=start>X</td>
  <td class=end>X</td>
  <td class=justify>X X</td>
 </tr>
</table>
<table class=vrl>
 <tr dir=rtl>
  <td>XXXXX</td>
  <td class=left>X</td>
  <td class=center>X</td>
  <td class=right>X</td>
  <td class=start>X</td>
  <td class=end>X</td>
  <td class=justify>X X</td>
 </tr>
</table>
</div>

<div>
<table class=slr>
 <tr>
  <td>XXXXX</td>
  <td class=left>X</td>
  <td class=center>X</td>
  <td class=right>X</td>
  <td class=start>X</td>
  <td class=end>X</td>
  <td class=justify>X X</td>
 </tr>
</table>
<table class=slr>
 <tr dir=rtl>
  <td>XXXXX</td>
  <td class=left>X</td>
  <td class=center>X</td>
  <td class=right>X</td>
  <td class=start>X</td>
  <td class=end>X</td>
  <td class=justify>X X</td>
 </tr>
</table>
</div>

<div>
<table class=h>
 <tr>
  <td>XXXXX</td>
  <td class=left>X</td>
  <td class=center>X</td>
  <td class=right>X</td>
  <td class=start>X</td>
  <td class=end>X</td>
  <td class=justify>X X</td>
 </tr>
</table>
<table class=h>
 <tr dir=rtl>
  <td>XXXXX</td>
  <td class=left>X</td>
  <td class=center>X</td>
  <td class=right>X</td>
  <td class=start>X</td>
  <td class=end>X</td>
  <td class=justify>X X</td>
 </tr>
</table>
</div>

/css/css-writing-modes/reference/table-cell-align-006-ref.html

<!DOCTYPE html>
<meta charset="utf-8">
<title>CSS Writing Modes reference: text-align in orthogonal table cell</title>

<meta name="flags" content="ahem" />
<link rel="stylesheet" type="text/css" href="/fonts/ahem.css" />

<style>
table {
  font: 20px/1 Ahem;
  border: 1px solid gray;
  display: inline-table;
  margin: 1em;
}

td {
  padding: 0;
  color: green;
  vertical-align: top;
}

td div {
  position: relative;
}

.t {
  top: 0;
}
.m {
  top: 2em;
}
.b {
  top: 4em;
}
</style>

<div>
<table>
 <tr>
  <td>X<br>X<br>X<br>X<br>X</td>
  <td><div class=t>X</div></td>
  <td><div class=m>X</div></td>
  <td><div class=b>X</div></td>
  <td><div class=t>X</div></td>
  <td><div class=b>X</div></td>
  <td>X<br>&nbsp;<br>&nbsp;<br>&nbsp;<br>X</td>
 </tr>
</table>
<table>
 <tr>
  <td>X<br>X<br>X<br>X<br>X</td>
  <td><div class=t>X</div></td>
  <td><div class=m>X</div></td>
  <td><div class=b>X</div></td>
  <td><div class=b>X</div></td>
  <td><div class=t>X</div></td>
  <td>X<br>&nbsp;<br>&nbsp;<br>&nbsp;<br>X</td>
 </tr>
</table>
</div>

<div>
<table>
 <tr>
  <td>X<br>X<br>X<br>X<br>X</td>
  <td><div class=b>X</div></td>
  <td><div class=m>X</div></td>
  <td><div class=t>X</div></td>
  <td><div class=b>X</div></td>
  <td><div class=t>X</div></td>
  <td>X<br>&nbsp;<br>&nbsp;<br>&nbsp;<br>X</td>
 </tr>
</table>
<table>
 <tr>
  <td>X<br>X<br>X<br>X<br>X</td>
  <td><div class=b>X</div></td>
  <td><div class=m>X</div></td>
  <td><div class=t>X</div></td>
  <td><div class=t>X</div></td>
  <td><div class=b>X</div></td>
  <td>X<br>&nbsp;<br>&nbsp;<br>&nbsp;<br>X</td>
 </tr>
</table>
</div>

<div>
<table>
 <tr><td>XXXXX</td></tr>
 <tr><td>X&nbsp;&nbsp;&nbsp;&nbsp;</td></tr>
 <tr><td>&nbsp;&nbsp;X&nbsp;&nbsp;</td></tr>
 <tr><td>&nbsp;&nbsp;&nbsp;&nbsp;X</td></tr>
 <tr><td>X&nbsp;&nbsp;&nbsp;&nbsp;</td></tr>
 <tr><td>&nbsp;&nbsp;&nbsp;&nbsp;X</td></tr>
 <tr><td>X&nbsp;&nbsp;&nbsp;X</td></tr>
</table>
<table>
 <tr><td>XXXXX</td></tr>
 <tr><td>X&nbsp;&nbsp;&nbsp;&nbsp;</td></tr>
 <tr><td>&nbsp;&nbsp;X&nbsp;&nbsp;</td></tr>
 <tr><td>&nbsp;&nbsp;&nbsp;&nbsp;X</td></tr>
 <tr><td>&nbsp;&nbsp;&nbsp;&nbsp;X</td></tr>
 <tr><td>X&nbsp;&nbsp;&nbsp;&nbsp;</td></tr>
 <tr><td>X&nbsp;&nbsp;&nbsp;X</td></tr>
</table>
</div>