div在IE7中消失了

时间:2011-05-25 15:02:06

标签: css html internet-explorer-7 html-lists

我在IE7中有一个div的问题,它正在消失,我不明白为什么。 我已经尝试添加zoom:1和overflow:隐藏有人建议,但它无法正常工作。

div位于无序列表中(左侧浮动)作为最后一个元素,向右浮动。

这是HTML

<div id="top_menu">
    <ul id="dropmenu">
        <li>menu item1</li>
        <li>menu item2</li>
        ...
     </ul>
    <div class="lang">content</div>
</div><!-- end top menu -->

这是CSS

  #top_menu                     {width:900px;font-size:13px; }
    #top_menu ul#dropmenu           {width:630px; height:28px; margin:0px; padding:0px; list-style:none; float:left; }
    #top_menu ul#dropmenu li        {float:left;display:block;}
    .clearfix                       {display: inline-block;}  /* for IE/Mac */

    #top_menu .lang { width: 120px; color:#fff; margin:4px 10px 0 0; float: right; }
    #top_menu .lang a{ color:#ff8601; }
    #top_menu .lang a:hover{ color:#fff; }

感谢您的帮助

编辑:我包含了html并删除了网址,以避免客户投诉。

3 个答案:

答案 0 :(得分:5)

您需要将.clearfix添加到div#top_menu并将height: 24px;添加到div.lang

为我解决了所有菜单问题。

修改

...并且可能不使用绝对定位来解决布局问题。

答案 1 :(得分:2)

我现在正在使用IE9,但将此网站放入“兼容性视图”似乎也显示了这个问题。

主菜单[ul]中的最后一个条目似乎一直延伸到元素的右侧。这出现在.lang div之前的标记中,所以我不希望它覆盖它......

您是否尝试将.lang元素放入“position:absolute”然后查看它是否显示,(显然假设它的父元素位于相对位置)。之后可以尝试使用20px左右的绝对值,然后查看它是否显示出来。

祝你好运!

<强>更新

在那里打勾。你的.lang div在[ul]元素内部,因此实际上位置不正确,因为[ul]的子元素允许的唯一元素是[li]。

为什么不尝试从列表中取出这个div而不是在外面,作为#top_menu元素的孩子......?

那可能有用!

答案 2 :(得分:0)

不确定这是否与您的情况相关,但某些版本的IE会丢弃空div;如果div不包含任何内容,请添加类似&amp; nbsp;将迫使它存在。