- From: Daniel Schattenkirchner <schattenkirchner.daniel@gmx.de>
- Date: Tue, 10 Aug 2010 19:45:31 +0200
- To: www-style@w3.org
The interaction of text-indent with floated ::first-letter is currently specified in a way that creates unexpected results. The issues I see can be demonstrated using these lines of code: <div style="text-indent: 5em;">This line is part of the test.</div> div::first-letter { float: left; font-size: 2em; } I'm an author and when I wrote these lines, I expected this rendering: --- his line | is part of the test. Note: This is what IE9 (starting with Preview #3) renders. Issue #1: I think this is related to the issue discussed not long ago in [1]. IE6 to IE8, Presto and WebKit render this: --- his line | is part of the test. While Gecko renders: --- his line | is part of the test. Both look incorrect to me. The latter seems to be what the spec intended. Currently, I can get the expected behaviour only when I set margin-left on the ::first-letter instead of using text-indent. If I got a sectioning block element and many paragraphs inside of which I only want the first-letter of the first-child to be floated, I have to reset text-indent on the first-child in addition to setting float on the :first-child::first-letter. That's not hard work, but it appears more complex than necessary. Issue #2 I understand there may be problems with the expected rendering as proposed above when text flows into the same direction as the float does. I think as an author I'd expect something along these lines: If the element text-indent is applied to has its direction property set to "ltr" (or "rtl") and the ::first-letter of that element has its float property set to "right" ("left"), then text-indent is applied in front of the ::first-letter, else, text-indent is applied in front of the letter following the ::first-letter. Like: This /| point is |. about bla... I think this is in line with the current state of the specification. so the semi-spec text above could end like: ... else, behave as specified. Note: IE9 currently renders text-indent in front of the ::first-letter in the direction:ltr + float:right case. I couldn't think of a case where this would make more sense than my proposal. float and ::first-letter interaction in rtl context are currently untestable in IE9 (a blank page appears instead). Kind regards, Daniel [1] http://lists.w3.org/Archives/Public/www-style/2010Jul/0256.html
Received on Tuesday, 10 August 2010 17:46:01 UTC