Re: Style and <frameset>

On Tue, 15 Jun 1999, L. David Baron wrote:
> Actually the adjacent table-cell elements should end up in the same
> row in either case. If you want each link in its own row, you would
> need display: table-row on the link elements. See [1]. (But how do
> these rules interact with display: none on siblings between
> table-cells??)

They don't. Setting display:none completely removes an element from
the flow. This is analogous to the follow scenario:

   <style>
      block { display: none; }
      inline { display: inline; }
   </style>

   <!-- ... -->

   <inline> Hello </inline>
   <block> Lovely </block>
   <inline> World </inline>

...which would render as:

   Hello World

(...and not with the Hello and World on different lines.)

Similarly, a float or absolutely positioned element is removed from
flow, so a run-in followed by a a float followed by a block will
run-in to the block (the float is totally ignored by the run-in).

Thus, in a table with an absolutely positioned or display:none cell,
the remaining cells move to fill the gap. Hence:

  <table>
   <tr>
    <td> 1 </td>
    <td> 2 </td>
    <td> 3 </td>
   </tr>
   <tr>
    <td style="display:none"> 4 </td>
    <td> 5 </td>
    <td> 6 </td>
   </tr>
   <tr>
    <td> 7 </td>
    <td> 8 </td>
    <td> 9 </td>
   </tr>
  </table>

...would render as

   +---+ +---+ +---+
   | 1 | | 2 | | 3 |
   +---+ +---+ +---+
   +---+ +---+
   | 5 | | 6 |
   +---+ +---+
   +---+ +---+ +---+
   | 7 | | 8 | | 9 |
   +---+ +---+ +---+

So in the HEAD, you can safely ignore all the display:none elements.

-- 
Ian Hickson
: Is your JavaScript ready for Nav5 and IE5?
: Get the latest JavaScript client sniffer at 
: http://developer.netscape.com/docs/examples/javascript/browser_type.html

Received on Tuesday, 15 June 1999 09:50:39 UTC