Source code

Revision control

Copy as Markdown

Other Tools

Test Info:

<!DOCTYPE html>
<html>
<head>
<title>CSS counter order and scope with Shadow DOM and SLOT</title>
<link rel="author" title="Martin Robinson" href="mailto:mrobinson@igalia.com">
<link rel="match" href="counter-slot-order-scoping-ref.html">
</head>
<body>
<div id="host">
<div class="counted" slot="content3">Three</div>
<div class="counted" slot="content1">One</div>
<div class="counted" slot="content6">Six</div>
<div class="counted" slot="content4">Four</div>
<div style="counter-reset: section;" slot="reset">Reset2</div>
<div class="counted" slot="content9">Nine</div>
<div class="counted" slot="content7">Seven</div>
</div>
<script>
function makeStyle() {
let style = document.createElement('style');
style.textContent = `
.counted {
counter-increment: section;
}
.counted::before {
content: "C=" counter(section) " ";
}
`;
return style;
}
document.body.appendChild(makeStyle());
const shadowRoot = document
.getElementById('host')
.attachShadow({mode: 'open'});
shadowRoot.innerHTML = `
<div>
<slot name="content1"></slot>
<div class="counted" slot="content2">Two</div>
<slot name="content3"></slot>
<div style="counter-reset: section;">Reset1</div>
<slot name="content4"></slot>
<div class="counted" slot="content5">Five</div>
<slot name="content6"></slot>
<slot name="reset"></slot>
<slot name="content7"></slot>
<div class="counted" slot="content8">Eight</div>
<slot name="content9"></slot>
</div>
`;
shadowRoot.appendChild(makeStyle());
</script>
</body>
</html>