【问题标题】:Seeing red: How to NOT clear a div in IE7?看到红色:如何在 IE7 中不清除 div?
【发布时间】:2014-01-15 03:40:32
【问题描述】:

首先,你看到红色了吗?...http://jsfiddle.net/yaBqr/

我在 IE7 中这样做,我想知道为什么。两个段落都向相反的方向浮动,没有其他东西可以清除容器 div。

HTML:

<div class="wrap">
    <p class="left">To the left, two, three, four</p>
    <p class="right">To the right, two, three, four</p>
</div>

CSS:

div.wrap { background: red; width: 300px; margin: 100px auto 0 auto; }
p.left { float: left; width: 100px; }
p.right { float: right; width: 100px; }

我知道你在想什么...“有什么问题?容器 div 清除段落有什么问题?”。在大多数情况下,是的,我通常会清除所有浮动元素,但我正在尝试做这样的事情:http://jsfiddle.net/yaBqr/1/

我只想清除左侧的 div,以便背景仅出现在左侧段落的后面。 IE7 正在清除两个浮动元素。即使没有更清晰的 div!所以我什至不能离开地面。

有什么想法吗?

【问题讨论】:

  • 当我取出包装纸上的边距和宽度时,它按预期工作。仍然不知道为什么。
  • 谢谢老兄,这确实是原因(hasLayout)。

标签: css internet-explorer-7


【解决方案1】:

width 添加到.wrap 使其成为IE6-7 中的hasLayout,这会错误地使其自动清除。 hasLayout 是各种常见 IE 布局错误的原因和解决方案。

您可以尝试将宽度/居中放在外部包装 div 上,并将背景放在其中包含的没有布局的 div 上,以便让内部 div 的内容溢出。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-13
    • 2013-01-05
    • 2016-07-06
    • 1970-01-01
    • 1970-01-01
    • 2011-04-02
    相关资源
    最近更新 更多