59 lines
2 KiB
HTML
59 lines
2 KiB
HTML
<!DOCTYPE html>
|
|
<html>
|
|
<head>
|
|
<title>@scope - implicit scope root (external sheet)</title>
|
|
<link rel="help" href="https://drafts.csswg.org/css-cascade-6/#scope-atrule">
|
|
<script src="/resources/testharness.js"></script>
|
|
<script src="/resources/testharnessreport.js"></script>
|
|
</head>
|
|
<body>
|
|
<div class="a outside"></div>
|
|
<div id=main></div>
|
|
<div class="a outside"></div>
|
|
|
|
<template id=templateLink>
|
|
<div id=root>
|
|
<link id=importElement rel="stylesheet" href="resources/scope.css">
|
|
<div class=a></div>
|
|
</div>
|
|
</template>
|
|
|
|
<template id=templateImport>
|
|
<div id=root>
|
|
<style id="importElement">
|
|
@import url("resources/scope.css");
|
|
</style>
|
|
<div class=a></div>
|
|
</div>
|
|
</template>
|
|
|
|
<script>
|
|
function test_external(template_element, description) {
|
|
promise_test(async t => {
|
|
t.add_cleanup(() => main.replaceChildren());
|
|
const cloned = template_element.content.cloneNode(true);
|
|
const importElement = cloned.querySelector('#importElement');
|
|
const p = new Promise((resolve, reject) => importElement.addEventListener('load', () => {
|
|
try {
|
|
assert_equals(getComputedStyle(root).zIndex, '1');
|
|
assert_equals(getComputedStyle(document.querySelector('#root > .a')).zIndex, '2');
|
|
let outside = document.querySelectorAll('.outside');
|
|
assert_equals(outside.length, 2);
|
|
for (let div of outside) {
|
|
assert_equals(getComputedStyle(div).zIndex, 'auto');
|
|
}
|
|
resolve();
|
|
} catch(e) {
|
|
reject(e);
|
|
}
|
|
}));
|
|
main.append(cloned);
|
|
return p;
|
|
}, description);
|
|
}
|
|
|
|
test_external(templateLink, '@scope with external stylesheet through link element');
|
|
test_external(templateImport, '@scope with external stylesheet through @import');
|
|
</script>
|
|
</body>
|
|
</html>
|