| <!doctype html> | |
| <script src='/resources/testharness.js'></script> | |
| <script src='/resources/testharnessreport.js'></script> | |
| <link rel='stylesheet' href='./support/base.css' /> | |
| <link rel="help" href="https://drafts.csswg.org/css-tables-3/#mapping"> | |
| <main> | |
| <h1>HTML-2-CSS Mapping</h1> | |
| <p>Checks that browsers implement properly the html2css stylesheet (rules about borders, disabling border-collapse for clarity)</p> | |
| <style>table { border-collapse: separate !important; }</style> | |
| <hr/> | |
| <p>1: The border of the table element should be 0px hidden gray:</p> | |
| <p> | |
| <code>border-width:0px</code> is the <code>initial</code> value;<br/> | |
| <code>border-style:hidden</code> comes from <code>table:matches(..., [rules=groups], ...)</code>;<br/> | |
| <code>border-color:gray</code> comes from <code>table</code> | |
| </p> | |
| <div><table border="0" rules="groups"><tbody><tr><td></td></tr></tbody></table></div> | |
| <hr/> | |
| <p>2: The border of the table element should be 1px outset black:</p> | |
| <p> | |
| <code>border-width:1px</code> comes from <code>table[frame=box] (1/2)</code>;<br/> | |
| <code>border-style:outset</code> comes from <code>table[frame=box] (2/2)</code>;<br/> | |
| <code>border-color:black</code> comes from <code>table:matches(..., [rules=groups], ...)</code> | |
| </p> | |
| <div><table border="0" rules="groups" frame="box"><tbody><tr><td></td></tr></tbody></table></div> | |
| <hr/> | |
| <p>3a: The border of the table element should be 10px outset gray:</p> | |
| <p> | |
| <code>border-width:10px</code> comes from <code>table[border=$w]</code>;<br/> | |
| <code>border-style:outset</code> comes from <code>table[frame=box] (2/2)</code>;<br/> | |
| <code>border-color:gray</code> comes from <code>table[border=$w]</code> | |
| </p> | |
| <hr style="display:none"/> | |
| <p>3b: The border-top of the td element should be 1px inset gray:</p> | |
| <p> | |
| <code>border-width:1px</code> comes from <code>table[border=$w] > ...td</code>;<br/> | |
| <code>border-style:inset</code> comes from <code>table[border=$w] > ...td</code>;<br/> | |
| <code>border-color:gray</code> comes from <code>table[border=$w] > ...td</code> | |
| </p> | |
| <hr style="display:none"/> | |
| <p>3c: The border-left of the td element should be 1px hidden gray:</p> | |
| <p> | |
| <code>border-width:1px</code> comes from <code>table[border=$w] > ...td</code>;<br/> | |
| <code>border-style:inset</code> comes from <code>table[border=$w] > ...td</code>;<br/> | |
| <code>border-color:gray</code> comes from <code>table[border=$w] > ...td</code> | |
| </p> | |
| <div><table border="10" rules="groups" frame="box"><tbody><tr><td></td></tr></tbody></table></div> | |
| <hr/> | |
| <p>4a: The border of the table element should be 1px outset gray:</p> | |
| <p> | |
| <code>border-width:10px</code> comes from <code>table[border=$w]</code>;<br/> | |
| <code>border-style:outset</code> comes from <code>table[border=$w]</code>;<br/> | |
| <code>border-color:gray</code> comes from <code>table[border=$w]</code> | |
| </p> | |
| <hr style="display:none"> | |
| <p>4b: The top border of the td element should be 1px solid gray:</p> | |
| <p> | |
| <code>border-width:1px</code> comes from <code>table[rules=all] > ... td</code>;<br/> | |
| <code>border-style:solid</code> comes from <code>table[rules=all] > ... td</code>;<br/> | |
| <code>border-color:gray</code> comes from <code>table[rules=all] > ... td</code> | |
| </p> | |
| <div><table border="yes" rules="all"><tr><td></td></tr></table></div> | |
| <hr> | |
| <p>5a: The left border of the table element should be ? hidden ?:</p> | |
| <p> | |
| <code>border-style:hidden</code> comes from <code>table[frame=hsides]</code>;<br/> | |
| </p> | |
| <hr style="display:none"> | |
| <p>5b: The right border of the table element should be 10px solid gray:</p> | |
| <p> | |
| <code>border-width:10px</code> comes from <code>table[border=$w]</code>;<br/> | |
| <code>border-style:solid</code> comes from <code>[style]</code>;<br/> | |
| <code>border-color:gray</code> comes from <code>table[border=$w]</code> | |
| </p> | |
| <div><table border="10" frame="hsides" style="border-right-style: solid"><tr><td></td></tr></table></div> | |
| <script>void function() { var table; while(table = document.querySelector('.to-remove')) table.parentNode.replaceChild(table.firstChild,table) }();</script> | |
| <script>void function() { var td; while(td = document.querySelector('table.no-td td')) td.parentNode.replaceChild(document.createElement('x-td'),td) }();</script> | |
| <script>void function() { var divs = document.querySelectorAll("main > div"); for(var i = divs.length; i--;) { var div = divs[i]; var pre = document.createElement('pre'); pre.title = pre.textContent = div.innerHTML; div.parentNode.insertBefore(pre, div); }; }();</script> | |
| <hr/> | |
| </main> | |
| <script> | |
| var i = 1; | |
| generate_tests(assert_equals, [ | |
| /*========================================*/ | |
| [ | |
| "1: HTML -> CSS Mapping for borders is applied correctly on table markup (table left width)", | |
| getComputedStyle(document.querySelector("main > div:nth-of-type("+(i++)+") table")).borderLeftWidth, | |
| "0px" | |
| ], | |
| [ | |
| "1: HTML -> CSS Mapping for borders is applied correctly on table markup (table left style)", | |
| getComputedStyle(document.querySelector("main > div:nth-of-type("+(i-1)+") table")).borderLeftStyle, | |
| "hidden" | |
| ], | |
| [ | |
| "1: HTML -> CSS Mapping for borders is applied correctly on table markup (table left color)", | |
| getComputedStyle(document.querySelector("main > div:nth-of-type("+(i-1)+") table")).borderLeftColor, | |
| "rgb(128, 128, 128)" | |
| ], | |
| /*========================================*/ | |
| [ | |
| "2: HTML -> CSS Mapping for borders is applied correctly on table markup (table left width)", | |
| getComputedStyle(document.querySelector("main > div:nth-of-type("+(i++)+") table")).borderLeftWidth, | |
| "1px" | |
| ], | |
| [ | |
| "2: HTML -> CSS Mapping for borders is applied correctly on table markup (table left style)", | |
| getComputedStyle(document.querySelector("main > div:nth-of-type("+(i-1)+") table")).borderLeftStyle, | |
| "outset" | |
| ], | |
| [ | |
| "2: HTML -> CSS Mapping for borders is applied correctly on table markup (table left color)", | |
| getComputedStyle(document.querySelector("main > div:nth-of-type("+(i-1)+") table")).borderLeftColor, | |
| "rgb(0, 0, 0)" | |
| ], | |
| /*========================================*/ | |
| [ | |
| "3a: HTML -> CSS Mapping for borders is applied correctly on table markup (table left width)", | |
| getComputedStyle(document.querySelector("main > div:nth-of-type("+(i++)+") table")).borderLeftWidth, | |
| "10px" | |
| ], | |
| [ | |
| "3a: HTML -> CSS Mapping for borders is applied correctly on table markup (table left style)", | |
| getComputedStyle(document.querySelector("main > div:nth-of-type("+(i-1)+") table")).borderLeftStyle, | |
| "outset" | |
| ], | |
| [ | |
| "3a: HTML -> CSS Mapping for borders is applied correctly on table markup (table left color)", | |
| getComputedStyle(document.querySelector("main > div:nth-of-type("+(i-1)+") table")).borderLeftColor, | |
| "rgb(128, 128, 128)" | |
| ], | |
| [ | |
| "3b: HTML -> CSS Mapping for borders is applied correctly on table markup (td top width)", | |
| getComputedStyle(document.querySelector("main > div:nth-of-type("+(i-1)+") table td")).borderTopWidth, | |
| "1px" | |
| ], | |
| [ | |
| "3b: HTML -> CSS Mapping for borders is applied correctly on table markup (td top style)", | |
| getComputedStyle(document.querySelector("main > div:nth-of-type("+(i-1)+") table td")).borderTopStyle, | |
| "inset" | |
| ], | |
| [ | |
| "3b: HTML -> CSS Mapping for borders is applied correctly on table markup (td top color)", | |
| getComputedStyle(document.querySelector("main > div:nth-of-type("+(i-1)+") table td")).borderTopColor, | |
| "rgb(128, 128, 128)" | |
| ], | |
| [ | |
| "3c: HTML -> CSS Mapping for borders is applied correctly on table markup (td left width)", | |
| getComputedStyle(document.querySelector("main > div:nth-of-type("+(i-1)+") table td")).borderLeftWidth, | |
| "1px" | |
| ], | |
| [ | |
| "3c: HTML -> CSS Mapping for borders is applied correctly on table markup (td left style)", | |
| getComputedStyle(document.querySelector("main > div:nth-of-type("+(i-1)+") table td")).borderLeftStyle, | |
| "inset" | |
| ], | |
| [ | |
| "3c: HTML -> CSS Mapping for borders is applied correctly on table markup (td left color)", | |
| getComputedStyle(document.querySelector("main > div:nth-of-type("+(i-1)+") table td")).borderLeftColor, | |
| "rgb(128, 128, 128)" | |
| ], | |
| /*========================================*/ | |
| [ | |
| "4: HTML -> CSS Mapping for borders is applied correctly on table markup (table left width)", | |
| getComputedStyle(document.querySelector("main > div:nth-of-type("+(i++)+") table")).borderLeftWidth, | |
| "1px" | |
| ], | |
| [ | |
| "4: HTML -> CSS Mapping for borders is applied correctly on table markup (table left style)", | |
| getComputedStyle(document.querySelector("main > div:nth-of-type("+(i-1)+") table")).borderLeftStyle, | |
| "outset" | |
| ], | |
| [ | |
| "4: HTML -> CSS Mapping for borders is applied correctly on table markup (table left color)", | |
| getComputedStyle(document.querySelector("main > div:nth-of-type("+(i-1)+") table")).borderLeftColor, | |
| "rgb(128, 128, 128)" | |
| ], | |
| [ | |
| "4: HTML -> CSS Mapping for borders is applied correctly on table markup (td left width)", | |
| getComputedStyle(document.querySelector("main > div:nth-of-type("+(i-1)+") table td")).borderLeftWidth, | |
| "1px" | |
| ], | |
| [ | |
| "4: HTML -> CSS Mapping for borders is applied correctly on table markup (td left style)", | |
| getComputedStyle(document.querySelector("main > div:nth-of-type("+(i-1)+") table td")).borderLeftStyle, | |
| "solid" | |
| ], | |
| [ | |
| "4: HTML -> CSS Mapping for borders is applied correctly on table markup (td left color)", | |
| getComputedStyle(document.querySelector("main > div:nth-of-type("+(i-1)+") table td")).borderLeftColor, | |
| "rgb(128, 128, 128)" | |
| ], | |
| /*========================================*/ | |
| [ | |
| "5a: HTML -> CSS Mapping for borders is applied correctly on table markup (table left style)", | |
| getComputedStyle(document.querySelector("main > div:nth-of-type("+(i++)+") table")).borderLeftStyle, | |
| "hidden" | |
| ], | |
| [ | |
| "5b: HTML -> CSS Mapping for borders is applied correctly on table markup (table right width)", | |
| getComputedStyle(document.querySelector("main > div:nth-of-type("+(i-1)+") table")).borderRightWidth, | |
| "10px" | |
| ], | |
| [ | |
| "5b: HTML -> CSS Mapping for borders is applied correctly on table markup (table right style)", | |
| getComputedStyle(document.querySelector("main > div:nth-of-type("+(i-1)+") table")).borderRightStyle, | |
| "solid" | |
| ], | |
| [ | |
| "5b: HTML -> CSS Mapping for borders is applied correctly on table markup (table right color)", | |
| getComputedStyle(document.querySelector("main > div:nth-of-type("+(i-1)+") table")).borderRightColor, | |
| "rgb(128, 128, 128)" | |
| ], | |
| ]) | |
| </script> |