- From: Boris Zbarsky <bzbarsky@MIT.EDU>
- Date: Sun, 12 Jul 2009 13:21:18 -0700
- To: www-style@w3.org
> That said, Opera also makes a run-in into a block if it has a child
> that's floated or positioned. I don't have IE8 on hand to test what
> it does in this case
It appears that it does also. Both also make a run-in into a block if
it has a display:table-cell child. They differ in behavior on the
following testcase, however:
<span style="display: run-in;">a
<span><span style="display: table-cell"></span></span>
</span>
<span style="display: block;">b</span>
Opera makes the run-in run in, while IE8 makes it into a block.
Both make a run-in into a block if it has an inline child with a
positioned or floated child inside that.
Opera does NOT make the run-in into a block, though, given this markup:
<div>
<span style="display: run-in;">a
<span>
<span style="display: table-cell">
<span style="position: absolute"></span>
</span>
</span>
</span>
<span style="display: block;">c</span>
</div>
I have no idea why the presence of the table-cell box there should
affect how the absolutely positioned span affects the run-in span; that
behavior feels completely inconsistent (and probably just dependent on
Opera's internal representation of CSS boxes) to me.
My personal preference for rule 1 of this section would be that the
run-in should become a block if it has any in-flow block-level child
boxes (where block-level would not include internal table elements,
since those will become an inline-table, and of course not include
inine-table or inline-block). This would cause the run-in to become a
block if it has an inline child with a block child inside that, but I
think that's desirable.
-Boris
Received on Sunday, 12 July 2009 20:22:05 UTC