这是一个古老的话题,但我发誓它被证明比它应该的更困难。
我创建了一个 jsfiddle 来显示问题。http://jsfiddle.net/motocomdigital/VfDfw/1/
我以为我破解了它,但它在 IE 8 兼容模式下失败。
问题
我有导航菜单,在一个语义无序列表中。包含的 div 包装器具有固定宽度,即网站的主要宽度。
无序列表需要在包装器中浮动。但是导航中的所有块元素都没有设置宽度。
http://jsfiddle.net/motocomdigital/VfDfw/1/
我为每个元素着色了不同的背景颜色,以便您可以看到每个元素。
我以为我找到了一个修复购买,将div.nav上的包装宽度的一半作为左侧位置,然后在.nav ul上留有 -50% 的边距- 但似乎在 IE 8 兼容模式下失败,请参见下面的小提琴......
http://jsfiddle.net/motocomdigital/VfDfw/2/
任何人都可以提出解决方案或更有效的 CSS 方法。它在烤我的面条。
谢谢
更新
我想我应该用我为什么在我的小提琴示例中使用每个 div 来更新我的问题。
看看我的新小提琴。http://jsfiddle.net/motocomdigital/VfDfw/3/
我现在为每个元素添加了 10px 的顶部位置,这样您就可以看到我使用这么多 div 的目的。但唯一的问题是这个解决方案对 IE 7 不友好。所以我需要另一种居中块元素的解决方案。我希望有一个float: center CSS 规则!
- 深蓝色div是我的导航无限背景图像的地平线 100% 宽度 div。
- 红色div是包装器,它是我网站的最大宽度。小提琴宽度:420px。
- 绿色div是我的动态导航的浮动宽度,位于左侧:210px(以上宽度的 50%)
- 黄色的ul是我的动态导航li元素的浮动宽度,负边距为 50%
- 蓝色的li是我的带有分隔线的锚按钮容器。
我希望这是有道理的。但是这个解决方案几乎奏效了,可惜它在 IE7 中不起作用