- 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