代码之家  ›  专栏  ›  技术社区  ›  Dan Goldstein

是否需要显示空的<div>?

  •  14
  • Dan Goldstein  · 技术社区  · 16 年前

    <table style="width:100%">
    <tr>
    <th>Header</th>
    <td><div id="foo"></div></td>
    </tr>
    </table>
    
    7 回复  |  直到 16 年前
        1
  •  5
  •   Community T.Woody    7 年前

    这在Firefox、Safari、IE6和;IE7。

    <html>
        <head>
            <style>
                #foo{
                    background:  #ff0000;
                    width:  100%;
                    height:  100%;
                    border:  2px dashed black;
                }
            </style>
        </head>
        <body onload="">
            <div id="foo"></div>
        </body>
    </html>
    

    3 Browser example

        2
  •  4
  •   Argelbargel    16 年前

    因此,我认为坚持&nbsp;因为这对你没有坏处。我还想添加一个类似“<!--background container-->”之类的注释。因此,每个要更改html的人都知道div有一个特殊的含义,即使它是空的。

        3
  •  2
  •   tomjedrz    16 年前

    我想如果你想让它们实际渲染成某种东西,那么你应该包括其他空div的nbsp。

    想象上的 如果没有内容,则显示任何内容。nbsp的整个要点是表示空白。这既是常识,也是(我相信)标准。

    从实用的角度来看。。你有三个选择。一个是停止,知道你会得到不可预测的结果。这可能是最容易编写的代码。另一种方法是始终包括nbsp,方法是始终将nbsp放在div的末尾,或者测试是否为空,如果为空,则添加nbsp。第三种方法是测试浏览器,并在需要时插入nbsp。

        4
  •  0
  •   Miguel Ping    16 年前

    我认为这取决于浏览器(IE/Gecko引擎/Webkit引擎)和模式(标准模式、怪癖模式)。我有一些div出现在FFox/Standards模式中,而没有出现在IE6/7中。

        5
  •  0
  •   Chris Serra    16 年前

    根据经验,IE不会渲染空元素的边框(至少是空的<td>元素)

        6
  •  0
  •   GameFreak    16 年前

    可能

    #foo {empty-cells: show;}

    虽然那可能只是为了 <td>

        7
  •  -1
  •   Zachary Zachary    15 年前

    &nbsp; 任何时候。