- From: Sebastian Zartner via GitHub <sysbot+gh@w3.org>
- Date: Tue, 18 Oct 2016 12:08:45 +0000
- To: public-css-archive@w3.org
Here are some older discussions about this:
- [Proposing ::contents
pseudo-element](https://lists.w3.org/Archives/Public/www-style/2015Oct/0105.html)
- [A *:body pseudo
class](https://lists.w3.org/Archives/Public/www-style/2014Jan/0621.html)
- [[selectors] New pseudo-element ::inner-wrapper & ::outer-wrapper
(feature)](https://lists.w3.org/Archives/Public/www-style/2014Dec/0013.html)
- [[css4-pseudo] The need for more powerful pseudo
elements](https://lists.w3.org/Archives/Public/www-style/2013Apr/0645.html)
- [[whatwg] wrapper
element](https://lists.w3.org/Archives/Public/public-whatwg-archive/2011Feb/0530.html)
I skimmed through them and saw two counter proposals:
Use tagging for wrapping
================
Idea
----
Tag the start and end elements via `group-open` and `group-close`
properties and introduce a `::group()` pseudo-element making use of
that tags to style the elements between them.
This was [proposed by Marat Tanalin in '[selectors] New pseudo-element
::inner-wrapper & ::outer-wrapper
(feature)'](https://lists.w3.org/Archives/Public/www-style/2014Dec/0014.html).
Example
--------
```css
DL.example > DT {group-open: myGroupName; }
DL.example > DD {group-close: myGroupName; }
/* Show green border around each `DT`/`DD` group. */
::group(myGroupName) {
border: 2px solid #0d0;
}
```
Use decorators
=========
Idea
----
Introduce an `@decorator` at-rule defining decorative elements, which
can then be applied via a `decorator` property.
@FremyCompany [mentioned this in '[css4-pseudo] The need for more
powerful pseudo
elements'](https://lists.w3.org/Archives/Public/www-style/2013Apr/0704.html),
which was obviously inspired by an [old version of the Web Components
spec](https://www.w3.org/TR/2013/WD-components-intro-20130606/#decorator-section).
Example
--------
```css
@decorator video {
content: contents slot(icon) slot(text);
@slot(icon) { content: ' V'; font-family: ...; }
@slot(text) { content: ' video'; }
}
@decorator fog {
content: slot(wrapper);
@slot(wrapper) {
content: contents slot(overlay);
position: relative;
}
@slot(overlay) {
position: absolute; top...;
background: rgba(...);
}
}
@decorator only-first-image {
content: contents(img:first-of-type);
}
```
Use a pseudo-class
============
Idea
----
Introduce a `:body` pseudo-class matching all non-heading elements.
This is obviously restricted to some specific use case and was
[proposed by Leif Halvard Silli in 'A *:body pseudo
class'](https://lists.w3.org/Archives/Public/www-style/2014Jan/0621.html).
He didn't provide a proper example of how he imagined the pseudo-class
to work, though as [he's talking about something that "encapsulates
the entire "body
text""](https://lists.w3.org/Archives/Public/www-style/2014Jan/0624.html),
I assume he mixed up the use cases of pseudo-classes and
pseudo-elements.
Sebastian
--
GitHub Notification of comment by SebastianZ
Please view or discuss this issue at
https://github.com/w3c/csswg-drafts/issues/588#issuecomment-254488286
using your GitHub account
Received on Tuesday, 18 October 2016 12:08:52 UTC