Source code
Revision control
Copy as Markdown
Other Tools
Test Info: Warnings
- This test has a WPT meta file that expects 6 subtest issues.
- This WPT test may be referenced by the following Test IDs:
- /css/css-values/inherit-function-basic.html - WPT Dashboard Interop Dashboard
<!DOCTYPE html>
<title>CSS Values: The inherit() function (basic behavior)</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<main id=main>
</main>
<template id=inherit_immediate_parent>
<style>
#parent {
--z: 2;
}
#target {
--z: 13;
z-index: inherit(--z);
}
</style>
<div id=parent>
<div id=target>
</div>
</div>
</template>
<script>
test((t) => {
main.append(inherit_immediate_parent.content.cloneNode(true));
t.add_cleanup(() => { main.replaceChildren(); });
assert_equals(getComputedStyle(target).zIndex, '2');
}, 'inherit() on value set on parent');
</script>
<template id=inherit_ancestor>
<style>
:root {
--z: 2;
}
#foo {
--z: 13;
z-index: inherit(--z);
}
</style>
<div id=foo>
</div>
</template>
<script>
test((t) => {
main.append(inherit_ancestor.content.cloneNode(true));
t.add_cleanup(() => { main.replaceChildren(); });
assert_equals(getComputedStyle(foo).zIndex, '2');
}, 'inherit() on value set on ancestor');
</script>
<template id=inherit_fallback>
<style>
#foo {
--z: 13;
z-index: inherit(--z, 4);
}
</style>
<div id=foo>
</div>
</template>
<script>
test((t) => {
main.append(inherit_fallback.content.cloneNode(true));
t.add_cleanup(() => { main.replaceChildren(); });
assert_equals(getComputedStyle(foo).zIndex, '4');
}, 'inherit(), no value set on parent');
</script>
<template id=inherit_accumulate_values>
<style>
#e1 { --v: e1; }
#e2 { --v: e2 inherit(--v); }
#e3 { --v: e3 inherit(--v); }
</style>
<div id=e1>
<div id=e2>
<div id=e3>
</div>
</div>
</div>
</template>
<script>
test((t) => {
main.append(inherit_accumulate_values.content.cloneNode(true));
t.add_cleanup(() => { main.replaceChildren(); });
assert_equals(getComputedStyle(e3).getPropertyValue('--v'), 'e3 e2 e1');
}, 'inherit(), accumulating values');
</script>
<template id=inherit_accumulate_font_size>
<style>
@property --f {
syntax: "<length>";
inherits: false;
initial-value: 0px;
}
#e1 { font-size: 3px; --f: 1em; }
#e2 { font-size: 5px; --f: calc(1em + inherit(--f)); }
#e3 { font-size: 7px; --f: calc(1em + inherit(--f)); }
</style>
<div id=e1>
<div id=e2>
<div id=e3>
</div>
</div>
</div>
</template>
<script>
test((t) => {
main.append(inherit_accumulate_font_size.content.cloneNode(true));
t.add_cleanup(() => { main.replaceChildren(); });
assert_equals(getComputedStyle(e3).getPropertyValue('--f'), '15px');
}, 'inherit(), accumulating font-size');
</script>
<template id=inherit_within_if>
<style>
#parent {
--z: 2;
}
#target {
--z: 13;
z-index: if(style(--z > inherit(--z)):4; else:7);
}
</style>
<div id=parent>
<div id=target>
</div>
</div>
</template>
<script>
test((t) => {
main.append(inherit_within_if.content.cloneNode(true));
t.add_cleanup(() => { main.replaceChildren(); });
assert_equals(getComputedStyle(target).zIndex, '4');
}, 'inherit() can be used within if()');
</script>