我在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并删除了网址,以避免客户投诉。
答案 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;将迫使它存在。