W3C home > Mailing lists > Public > www-style@w3.org > March 2011

Re: [css4-selectors] Allowing pseudo-classes on pseudo-elements

From: Alan Gresley <alan@css-class.com>
Date: Tue, 29 Mar 2011 18:30:07 +1100
Message-ID: <4D918A7F.6050004@css-class.com>
To: fantasai <fantasai.lists@inkedblade.net>
CC: Sylvain Galineau <sylvaing@microsoft.com>, "www-style@w3.org" <www-style@w3.org>
On 19/03/2011 9:04 AM, fantasai wrote:
> On 03/09/2011 04:34 PM, Sylvain Galineau wrote:
>> Current selector syntax does not allow a pseudo-class to qualify a
>> pseudo-element
>> i.e. E::first-line:hover will not match when the first line of E is
>> hovered.
>>
>> Working through our latest CSS3 Grid Alignment proposal [1], this
>> means one couldn't do :
>>
>> #grid::grid-cell("nav"):hover {
>> ...
>> }
>>
>> One option would be to move the pseudo-class inside the functional
>> part of the
>> pseudo-element which - imo - looks unnatural i.e. the author would be
>> writing
>> something like #grid::grid-cell("nav" :hover) because the syntax
>> disallows
>> #grid::grid-cell("nav"):hover.
>
> Current selector syntax isn't necessarily future selector syntax, and if
> you are
> defining new selectors in your draft you can define appropriate syntax
> there.
>
> This is, btw, most definitely not a css3-selectors issue. If anything
> it's a
> css4-selectors issue. :)
>
> ~fantasai


Really, CSS4? We have implementation of this already.

Sylvain, you the parts mixed up. Try this.


<!DOCTYPE html>
<style type="text/css">
p { font-size: 200% }

p::first-letter {background: lime }

p:hover::first-letter  { background: red }
p::first-letter:hover  { background: orange }

p:hover::first-line  { background: aqua }
p::first-line:hover  { background: yellow }
</style>

<p>Some text to fill this paragraph</p>


Results:

IE9            first-letter = red
                first-line = aqua

Opera 11:      first-letter = red
                first-line = aqua

Safari 5.0.4   first-letter = red

FF 3.6.16:     first-letter = red


I have not checked in FF4b.


This is how I expected it to work. Here is a demo from a few months ago.

<http://css-class.com/test/css/3/expanding-tabs-with-transition.htm>


Second example has this CSS,

.content1 a:hover:after,
.content1 a:focus:after {
   width: 100%;
}

to expand the generated content on :hover. All browsers expand the 
generated content instantaneously where FF4b expands it as a true 
transition.


I don't think we should change current implemented behavior which is.

E:hover::first-letter
E:hover::first-line
E:hover::before
E:hover::after




-- 
Alan http://css-class.com/

Armies Cannot Stop An Idea Whose Time Has Come. - Victor Hugo
Received on Tuesday, 29 March 2011 07:30:42 GMT

This archive was generated by hypermail 2.3.1 : Tuesday, 26 March 2013 17:20:38 GMT