- From: Boris Zbarsky <bzbarsky@MIT.EDU>
- Date: Mon, 02 Aug 2010 21:44:10 -0400
- To: Arron Eicholz <Arron.Eicholz@microsoft.com>
- CC: "public-css-testsuite@w3.org" <public-css-testsuite@w3.org>, www-style list <www-style@w3.org>
On 8/2/10 6:34 PM, Arron Eicholz wrote:
> http://test.csswg.org/source/contributors/mozilla/submitted/css2.1/selectors/first-line-floats-002.htm
This is a very interesting testcase that I wrote because the spec is
pretty clear here but the behavior of some UA's didn't make sense. The
testcase is basically:
<style>
div { color: red; }
div:first-line { color: green }
</style>
<div>
<span>
<span style="float: left">This should be green</span>
</span>
</div>
Ignoring the first-line business for the moment, the float inherits its
color from the outer <span>. But section 5.12.1 explicitly says that
this markup should behave just like this markup:
<div style="color: red">
<div:first-line style="color: green">
<span>
<span style="float: left">This should be green</span>
</span>
</div:first-line>
</div>
At least Opera and Webkit (I don't have IE8 on hand right this second)
don't implement this; they make the computed color style of the <span>
be the computed color of the <div>, while the color of the _text_ inside
the <span> is the color specified for the first-line. In other words,
they produce something more like this markup:
<div style="color: red">
<span>
<span style="float: left">This should be green</span>
<div:first-line style="color: green">
</div:first-line>
</span>
</div>
for purposes of style inheritance. At least insofar as I can trust what
getComputedStyle returns.
Gecko, on the other hand, implements what the spec says to do, which has
the obvious consequence that the computed color of the outer <span> is
green, whereas it's red in Webkit and Opera.
So as far as I can tell, the test is in fact correct.
> :first-line does not apply to block-level descendants that are floats.
It's not in this case; this is testing purely style inheritance, not
where "first-line" is applied to (which you could test by using a
background or text-decoration or some other non-inherited style).
-Boris
Received on Tuesday, 3 August 2010 01:44:45 UTC