mirror of
https://github.com/RGBCube/serenity
synced 2025-07-27 17:37:34 +00:00
LibWeb: Track quote-nesting level while building the layout tree
This makes multiple levels of quote actually use different quotation marks, instead of always the first available pair of them. Each Layout::Node remembers what the quote-nesting level was before its content was evaluated, so that we can re-use this number in `apply_style()`. This is a bit hacky, since we end up converting the `content` value into a string twice. `StyleProperties::content()` now takes an initial quote-nesting level, and returns the final level after that content.
This commit is contained in:
parent
493dd5d93c
commit
9e99368694
8 changed files with 372 additions and 14 deletions
21
Tests/LibWeb/Layout/input/css-quotes-nesting.html
Normal file
21
Tests/LibWeb/Layout/input/css-quotes-nesting.html
Normal file
|
@ -0,0 +1,21 @@
|
|||
<!doctype html>
|
||||
<style>
|
||||
span::before {
|
||||
content: open-quote;
|
||||
}
|
||||
span::after {
|
||||
content: close-quote;
|
||||
}
|
||||
.a {
|
||||
quotes: none;
|
||||
}
|
||||
.b {
|
||||
quotes: auto;
|
||||
}
|
||||
.c {
|
||||
quotes: "(" ")" "{" "}" "[" "]";
|
||||
}
|
||||
</style>
|
||||
<div class="a"><span>a<span>b<span>c<span>d<span>e</span>f</span>g</span>h</span>i</span></div>
|
||||
<div class="b"><span>a<span>b<span>c<span>d<span>e</span>f</span>g</span>h</span>i</span></div>
|
||||
<div class="c"><span>a<span>b<span>c<span>d<span>e</span>f</span>g</span>h</span>i</span></div>
|
Loading…
Add table
Add a link
Reference in a new issue