- From: Boris Zbarsky <bzbarsky@mit.edu>
- Date: Wed, 11 Feb 2015 10:40:15 -0500
- To: www-style@w3.org
On 2/11/15 7:50 AM, Jonathan Kew wrote: > Fair enough! But here's a testcase where Firefox differs from Chrome and > Safari: > > http://software.hixie.ch/utilities/js/live-dom-viewer/?saved=3414 Oh, this is exciting. What's going on here is that if you have this markup: <div style="width: 200px"> <div style="width: 100px; text-indent: 50%"> Text </div> </div> then WebKit/Blink will indent the text by 100px, because they're following the spec and using the containing block. So far so good. Now if you have this markup: <div style="width: 200px"> <div style="width: 100px; text-indent: 50%"> Text <div></div> </div> </div> then WebKit/Blink wrap the text in an anonymous block, as if the markup had been: <div style="width: 200px"> <div style="width: 100px; text-indent: 50%"> <div>Text</div> <div></div> </div> </div> and then I assume they inherit the text-indent into that anonymous block. text-indent inherits as a percentage, so that anonymous block gets "text-indent: 50%", which is resolved relative to its containing block, so you get a 50px text-indent. On the face of it, the fact that adding a block after the text changes the indent behavior is clearly wrong conceptually. In spec terms, this is a longstanding issue with <http://www.w3.org/TR/CSS21/visuren.html#anonymous-block-level> in that I can't even claim that the Blink/WebKit behavior is not following the current spec. I could have sworn it had come up before, but I can't seem to find the discussion right now. Note, also, that we _do_ want text-indent applying to anonymous blocks. See for example the thread at <https://groups.google.com/forum/#!topic/mozilla.dev.tech.css/D2XbVpXMDUM>. So the real question is what that text-indent should be, not whether it should happen at all. -Boris
Received on Wednesday, 11 February 2015 15:40:49 UTC