Source code

Revision control

Copy as Markdown

Other Tools

Test Info:

<!DOCTYPE html>
<html>
<head>
<title>Test inheritance through various anonymous boxes: {ib}
situations, buttons, overflow, columns, listboxes, first-line</title>
<style>
/**
* The idea is that "color" inherits by default while "border-color" does
* not. So if the former is red and the latter is green on a parent, and
* the child's border-color is set to "inherit", it'll be green only if
* the child is inheriting from the parent. If not, it'll either be
* whatever the border-color is on what it's inheriting from, which will
* be red if what it's inheriting from has the default (currentColor)
* border-color).
*/
/* 't' for "test" */
* { color: red; border: 0px hidden red; background: transparent }
.t { border-color: green }
.t:not(.d2) > :first-child
{ border-color: inherit; border-style: solid; border-width: 10px }
.d2 > span { border-style: solid; border-width: 10px }
.f::first-line { border-color: green }
</style>
<script>
function make(str) {
return document.createElement(str);
}
function makeDiv() {
return make("div");
}
window.onload = function() {
var lst = document.getElementsByClassName("d");
for (var i = 0; i < lst.length; ++i) {
if (lst[i].nodeName != "select") {
lst[i].appendChild(makeDiv());
} else {
lst[i].appendChild(make("option"));
}
}
lst = document.getElementsByClassName("d2");
for (i = 0; i < lst.length; ++i) {
var span = lst[i].getElementsByTagName("span")[0];
span.style.cssText =
"border-color: inherit; border-style: solid; border-width: 10px";
}
var x = document.getElementsByClassName("f d")[0];
x.appendChild(make("span"));
x.appendChild(make("br"));
x.appendChild(make("span"));
}
</script>
</head>
<body>
<div class="t"><div></div></div>
<span class="t"><div></div></span>
<span style="position: relative" class="t"><div></div></span>
<div class="f"><span></span><br><span></span></div>
<button class="t"><div></div></button>
<div style="overflow: auto" class="t"><div></div></div>
<div style="column-count: 2" class="t"><div></div></div>
<select size="2" class="t">
<option></option>
</select>
<div class="t d"></div>
<span class="t d"></span>
<span style="position: relative" class="t d"></span>
<div class="f d"></div>
<button class="t d"></button>
<div style="overflow: auto" class="t d"></div>
<div style="column-count: 2" class="t d"></div>
<select size="2" class="t d">
<option></option>
</select>
<span class="t d2"><div></div><span></span></span>
<span style="position: relative" class="t d2"><div></div><span></span></span>
</body>
</html>