[csswg-drafts] [css-inline] should specify that line with initial letter is shortened relative to all floats initial letter can interact with

dbaron has just created a new issue for 
https://github.com/w3c/csswg-drafts:

== [css-inline] should specify that line with initial letter is 
shortened relative to all floats initial letter can interact with ==
The spec for initial letters currently says that the initial letter 
[is placed relative to the 
line](https://drafts.csswg.org/css-inline/#initial-letter-model), and 
CSS 2 [specifies that the line is shortened by floats next to 
it](https://drafts.csswg.org/css2/visuren.html#floats).

However, this doesn't correctly account for initial letter.

If you interpret the specs literally, then something like:

```css
#float_one { float: left; width: 100px; height: 100px }
#float_two { float: left; width: 200px; height: 100px; clear: left; }
p::first-letter { font-size: 20px; initial-letter: 5 }
```
```html
<div id="float_one"></div>
<div id="float_two"></div>
 <!-- line the next p up so that the first line is next to float_one 
only,
      but the initial letter is next to both floats -->
<div style="height: 50px"></div>
<p>This paragraph has an initial letter.</p>
```

will yield the bottom half of the capital "T" overlapping 
<code>#float_two</code>, because the initial letter is placed relative
 to its line box, and the line box is placed relative to its height 
only, and that height only intersects <code>#float_one</code>

I think the spec needs to say that the line is shortened to account 
for floats "next to" the initial letter, using wording similar to that
 in CSS 2.  I haven't thought about this solution in any detail, 
though.

cc @chenpighead

Please view or discuss this issue at 
https://github.com/w3c/csswg-drafts/issues/689 using your GitHub 
account

Received on Monday, 7 November 2016 06:52:12 UTC