serenity/Base/res/html/misc/attr-invalidate-style.html
Andreas Kling 04bec7a4f5 LibWeb: Remove CSS::StyleInvalidator in favor of dirtying + lazy update
Style updates are lazy since late last year, so the StyleInvalidator is
actually hurting us more than it's helping by running the entire CSS
selector machine on the whole DOM for every attribute change.

Instead, simply mark the entire DOM dirty and let the lazy style update
mechanism run *once* on next event loop iteration.
2022-02-05 22:50:39 +01:00

30 lines
773 B
HTML

<html>
<head>
<style>
div[foo] { background-color: green; }
div[bar] > div { background-color: red; }
div[baz] ~ div { background-color: blue; }
</style>
</head>
<body>
<div id=bar><div>RED</div></div>
<div id=foo>GREEN</div>
<div id=baz></div>
<div>BLUE</div>
<script>
setTimeout(function() {
for (let id of ["foo", "bar", "baz"]) {
let e = document.getElementById(id);
e.setAttribute(id, "");
}
setTimeout(function() {
for (let id of ["foo", "bar", "baz"]) {
let e = document.getElementById(id);
e.removeAttribute(id);
}
}, 1000);
}, 1000);
</script>
</body>
</html>