| <!DOCTYPE html> |
| <title>CSS Values and Units Test: Tree-scoped sibling-index()</title> |
| <link rel="help" href="https://drafts.csswg.org/css-values-5/#tree-counting"> |
| <script src="/resources/testharness.js"></script> |
| <script src="/resources/testharnessreport.js"></script> |
| <style> |
| #host1::part(--p) { |
| z-index: sibling-index(); |
| /* Add 1 since widows does not accept 0 */ |
| widows: calc(1 + sibling-count()); |
| } |
| </style> |
| <div id="host1"> |
| <template shadowrootmode="open"> |
| <div></div> |
| <div></div> |
| <div id="t1" part="--p"></div> |
| </template> |
| </div> |
| <script> |
| test(() => { |
| const style = getComputedStyle(host1.shadowRoot.querySelector("#t1")); |
| assert_equals(style.zIndex, "0", "z-index should be 0"); |
| assert_equals(style.widows, "1", "widows should be 1"); |
| }, "sibling-index() and sibling-count() evaluates to 0 from outer tree with ::part"); |
| </script> |
| |
| <div> |
| <div></div> |
| <div></div> |
| <div id="t2"> |
| <template shadowrootmode="open"> |
| <style> |
| :host { |
| z-index: sibling-index(); |
| widows: sibling-count(); |
| } |
| </style> |
| </template> |
| </div> |
| <div></div> |
| <div></div> |
| </div> |
| <script> |
| test(() => { |
| const style = getComputedStyle(t2); |
| assert_equals(style.zIndex, "3", ":host is the third sibling"); |
| assert_equals(style.widows, "5", ":host total sibling count is 5"); |
| }, "sibling-index() and sibling-count() evaluate as normal from inner tree"); |
| </script> |