<!DOCTYPE html> | |
<html> | |
<head> | |
<style> | |
.test { | |
width: 100px; | |
height: 25px; | |
background: red; | |
color: red; | |
} | |
#host1, #host2 { | |
color: green; | |
} | |
#host3 div, #host4 div { | |
width: 50%; | |
height: 100%; | |
background: green; | |
display: inline-block; | |
} | |
</style> | |
</head> | |
<body> | |
<p>Test passes if you see a single 100px by 100px green box below.</p> | |
<div id="host1" class="test"></div> | |
<div id="host2" class="test"></div> | |
<div id="host3" class="test"><div>text</div></div> | |
<div id="host4" class="test"><div>text</div></div> | |
<script> | |
host1.attachShadow({mode: 'closed'}).innerHTML = `<style> | |
:host::before, :host::after { | |
background: green; | |
width: 50%; | |
height: 100%; | |
background: green; | |
display: inline-block; | |
content: "test"; | |
} | |
</style>`; | |
host2.attachShadow({mode: 'closed'}).innerHTML = `<style> | |
:host(.green)::before, :host(.green)::after { | |
background: green; | |
width: 50%; | |
height: 100%; | |
background: green; | |
display: inline-block; | |
content: "test"; | |
} | |
</style>`; | |
getComputedStyle(host2).backgroundColor; | |
host2.classList.add('green'); | |
host3.attachShadow({mode: 'closed'}).innerHTML = `<style> | |
:host { | |
color: green !important; | |
} | |
:host::before { | |
background: green; | |
width: 50%; | |
height: 100%; | |
background: green; | |
display: inline-block; | |
content: "test"; | |
} | |
</style><slot></slot>`; | |
host4.attachShadow({mode: 'closed'}).innerHTML = `<style> | |
:host(.green) { | |
color: green !important; | |
} | |
:host(.green)::after { | |
background: green; | |
width: 50%; | |
height: 100%; | |
background: green; | |
display: inline-block; | |
content: "test"; | |
} | |
</style><slot></slot>`; | |
getComputedStyle(host4).backgroundColor; | |
host4.classList.add('green'); | |
</script> | |
</body> | |
</html> |