Re: [CSS21] display:run-in clarifications

 > 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