首页 > 求助一个在dl元素中display:none无效的问题

求助一个在dl元素中display:none无效的问题

在下面的代码中,div的display:none无效。但如果删掉前面id为poll的dt和dd元素之后,div的display就生效了。
请教一下这是什么原因呢?

<form action="" method="post">
<dl>
    <dt><label for="poll">投票帖</label></dt>
    <dd><input type="checkbox" id="poll" name="poll" value="1" /></dd>
    <div id="poll_meta" style="display:none">
        <dt><label for="poll_options">投票选项</label></dt>
        <dd><textarea id="poll_options" name="poll_options"></textarea>每行一个选项,回车换行</dd>
        <dt><label for="poll_number">最多可选</label></dt>
        <dd><input type="text" id="poll_number" name="poll_number" value="1" /></dd>
    </div>
</dl>
</form>

我晕,你玩html之前还是先看看html标签的嵌套规则吧。


Chrome,IE8-11,FF下都没有你说的这个问题,正常隐藏了。

有问题的是IE<=7的情况,看了一下代码,发现代码被完全拆乱了,成了如下效果


<FORM method=post action=""></HEAD> <BODY> <DL> <DT><LABEL for=poll>投票帖</LABEL> <DD><INPUT id=poll type=checkbox value=1 name=poll> <DIV id=poll_meta style="DISPLAY: none"></DIV> <DT><LABEL for=poll_options>投票选项</LABEL> <DD><TEXTAREA id=poll_options name=poll_options></TEXTAREA>每行一个选项,回车换行 <DT><LABEL for=poll_number>最多可选</LABEL> <DD><INPUT id=poll_number value=1 name=poll_number> <DIV></DIV></DD></DL></FORM>

根据这段代码来看,可能是因为IE低级浏览器中不允许dt, dd, div嵌套关系的出现,我记得Chrome中是有这种类似的限制来着的(好像p标签中不能出现div标签,否则会被分割)。

【热门文章】
【热门文章】