- From: Sam L'ecuyer <sam@cateches.is>
- Date: Tue, 23 Apr 2013 22:05:10 -0700
- To: www-style@w3.org
Hi,
In my current work I have the following use case, which I think is
pertinent to the Pseudo-element Level 4 discussion.
I typically have a list of headlines (newspaper website), each having a
group of data attributes that I'd like to use to add content after the
headline. I'd like to be able to apply these selectors without having
to worry about how many other data attribute selectors exist.
For example:
<h3 class="headline" data-content-level="premium"
data-content-type="video">Stock Prices Climb</h3>
..headline[data-content-level="premium"]::after(1) {
content: "P";
font-family: Icon Font;
}
..headline[data-content-level="premium"]::after(2) {
content: "premium";
font-family: arial;
}
..headline[data-content-type="video"]::after(1) {
content: "V";
font-family: Icon Font;
}
..headline[data-content-type="video"]::after(2) {
content: "video";
font-family: arial;
}
Essentially, I'd *expect* that to output `Stock Prices Climb P premium V
video` with the icon fonts applied. However, I have two pseudo-elements
of ordinal "1" and two of ordinal "2" so an implementation may want to
output `Stock Prices Climb P V premium video`. Perhaps, this should be
overcome by changing the selectors to
..headline[data-content-level="premium"]::after(1)
..headline[data-content-level="premium"]::after(2)
..headline[data-content-type="video"]::after(3)
..headline[data-content-type="video"]::after(4)
The problem arises when I want to add an additional pseudo-element in
potentially a different style sheet, because maybe I don't know what
index to pick up at. Should we just say that's up to the developer to
know? I have this feeling that it'd be nice to say that different
selectors that have identical ordinals should try to group by selector
(then ordinal), but that could quickly become an implementation nightmare.
It'd also be nice if we could group the selectors like:
..headline[data-content-level="premium"]::after /* Icon */
..headline[data-content-level="premium"]::after::after /* Text */
..headline[data-content-type="video"] ::after /* Icon */
..headline[data-content-type="video"] ::after::after /* Text */
That way the text would always be displayed as a pseudo-element of the
icon, and the icons could be displayed in whatever order the user-agent
decided to. There's no discussion of nested pseudo-elements in the
unofficial draft, but I would strongly recommend that implementations
provide at least 2 levels of ::after and ::before. This is,
..class::before(n)::after(n) must be supported, but
..class::before(n)::after(n)::before would be optional.
Thoughts & feedback would be much appreciated.
Sam L'ecuyer
Received on Wednesday, 24 April 2013 12:55:24 UTC