- From: Mike Bremford via GitHub <sysbot+gh@w3.org>
- Date: Sat, 01 Feb 2020 11:20:00 +0000
- To: public-css-archive@w3.org
Oh there is another point I wanted to make. I think it might be a lot easier if the descendants *don't* inherit from ::contents. That should get you past a lot of the concerns. Elements are styled according to their location in the DOM, exactly as they are now, and a `::contents` pseudo-element does not affect this. This approach is consistent with `content: contents`. An example: ```css span::before { color: red; content: '(A=' contents ')'; } span { content: none; } span::after { content: '(B)' } <span>still in black</span> ``` In the box tree, the text content of the `<span>` is a child of the `::before`, but it doesn't inherit any style. And of course it's the same approach taken with all the other box fixups which are not visible to the author; e.g. moving blocks out of inlines affects the box tree, but not the styling. Put another way: almost nothing inherits from `::contents`. I say almost because if you do this: ```css span::before { color: red; content: '(A=' contents ')'; } span { content: none; } span::contents { color: blue; border: 1px solid red; display: inline list-item; } span::after { content: '(B)' } <span>test</span> ``` Then the ::contents is getting generated content of its own. I think the result here should be: `(A=•test)(B)`, where `(A` is red, `•` is blue, `test` is black, `)` is red, `(B)` is black, and there is a red border around "•test" -- GitHub Notification of comment by faceless2 Please view or discuss this issue at https://github.com/w3c/csswg-drafts/issues/2406#issuecomment-581020219 using your GitHub account
Received on Saturday, 1 February 2020 11:20:01 UTC