Html 分区';s在IE中的位置是错误的

Html 分区';s在IE中的位置是错误的,html,css,Html,Css,我知道有时是不可能的。我有6个div向右对齐,使用float。以下是代码:。问题是,在IE中,它位于杆的下方,应该定位在杆的下方 有什么解决办法吗?我听到很多开发人员谈论特别是IE的评论。他们会解决这个问题吗?我在兼容模式(IE9)下尝试过。如果在IE6中正确呈现,而在IE7中错误呈现,该怎么办?我应该只为IE 7添加特殊代码吗?或者没有这样的风险 还有其他解决办法吗?简单一点的?谢谢IE条件标签可以帮上忙,但我不认为您的问题是由IE bug引起的 尝试以下变体: 区别在于容器.menuBar上

我知道有时是不可能的。我有6个div向右对齐,使用float。以下是代码:。问题是,在IE中,它位于杆的下方,应该定位在杆的下方

有什么解决办法吗?我听到很多开发人员谈论特别是IE的评论。他们会解决这个问题吗?我在兼容模式(IE9)下尝试过。如果在IE6中正确呈现,而在IE7中错误呈现,该怎么办?我应该只为IE 7添加特殊代码吗?或者没有这样的风险


还有其他解决办法吗?简单一点的?谢谢

IE条件标签可以帮上忙,但我不认为您的问题是由IE bug引起的

尝试以下变体:

区别在于容器
.menuBar
上的
溢出:隐藏
,这会导致元素自清除浮动元素

我还固定了高度以适应边框,并将
.menuBarContainer
元素设置为100%宽度,以防止其溢出JSFIDLE


我没有在这台机器上运行IE,但我很确定它至少可以运行到IE7。如果我错了,请告诉我,我会再看一遍。

您的问题是img标签。
如果你摆脱它,div将是它们的归属。

如果可以,将img放入div中。

您不应该信任兼容模式IMHO。只有当您的操作系统具有IE9时才可以使用。
我在IE8-as-IE7、IE Tester等方面看到了(我的同事也看到了)不存在的bug

是的,它们是巨大的,但它可以让你免于数小时调试不存在的bug。(旧的)IE中已经有足够多的真正的bug了


至于你的问题,它存在于IE6和IE7中,我可以用
img{float:left;}
解决它,但我还不能确定它是否是最好的解决方案。

为了在旧的Internet Explorer版本上正确显示以及更好的跨浏览器支持,你需要浮动相反的元素:

看看这个例子

添加此CSS

.menuBar .menuBarContainer img {
    float: left;
}
.clear {
    clear:both;
}

此外,您还需要考虑一个包含浮动元素的元素将在<代码>高度> /代码>中崩溃,因为子浮动元素不再在正常文档流中。

这意味着您的
.menuBarContainer
将没有
高度
,因此可能会导致后面的元素出现视觉问题。解决此问题的最佳方法是在关闭此元素之前使用CSS
clear

CSS

.menuBar .menuBarContainer img {
    float: left;
}
.clear {
    clear:both;
}
这意味着
.menuBarContainer
的下边框将位于浮动元素占用的空间之后,从而允许
.menuBarContainer
保持其高度,确保正常的文档流



作为旁注,您的小提琴示例上有一个额外的结束语。

我将它放在一个div中,将float设置为left,现在就可以了:)谢谢