【问题标题】:IE 7 float issue not ignoring contentIE 7浮动问题不忽略内容
【发布时间】:2013-01-26 18:36:49
【问题描述】:

我在 IE7 中遇到问题。我创建了以下 html 来演示可能的“问题”。

HTML:

<div id="container">
    <div id="head">
    </div>
    <div id="left">
    </div>
    <div id="right">
    </div>
    <div id="no-float">
    </div>
</div>

CSS:

#container {
    width:200px;
    height:200px;
    margin: 0 auto;
    background-color:#555555;
}
#head {
    width:200px;
    height:20px;
    background-color:black;
    float:left;
}
#left {
    width:100px;
    height:40px;
    background-color:blue;
    float:left;
}
#right {
    width:100px;
    height:40px;
    background-color:red;
    float:left;
}

#no-float {
    width:20px;
    height:20px;
    position:relative;
    background-color:green;
}

现在我希望绿色的无浮动 div 位于容器的最左上角,因为据我了解,正常内容应该完全忽略浮动内容。这在我测试过的所有浏览器中都可以正常工作,而不是在 IE7 中。这是我对浮点数的理解有问题还是 IE7 中的错误?如果这是一个错误,谁能指出我正确的方向来修复它?这是问题的一个jsfiddle。

JSFiddle

【问题讨论】:

  • IE 是纯粹的邪恶。 jsfiddle.net/vQhAN/1 这行得通,但我知道这不是答案
  • 不敢相信这对我来说毫无意义!
  • 是的,但不能在 firefox 中工作;] 只是说 IE+relative = pure evil
  • 是的。也不能在 chrome 中工作,所以不能修复,只是奇怪!
  • 尝试在绿色上进行绝对定位,在容器上进行相对定位。我没有IE7可以测试。 jsfiddle.net/vQhAN/6

标签: css internet-explorer internet-explorer-7 css-float


【解决方案1】:

IE7 的浮动模型很可怕。 See here 与您的问题相关的问题,以及为什么它不能通过仅使用浮点数来解决。如果您想将元素保持在您拥有的源顺序中,您将不得不求助于绝对定位。这可以有条件地提供给 IE7,或者它可以像所有现代浏览器一样工作。

Here is the fiddle.

position: relative 添加到#container,然后

#no-float {
    width: 20px;
    height: 20px;
    position:absolute;
    background-color:green;
    top: 0;
    left: 0;
}

【讨论】:

  • @fredsbend:那是因为在您的小提琴中您没有设置 topleft 属性。我已经在 IE7 中测试了我的,它确实有效。
  • 哦。那就好好编码吧。我想我们应该注意,在 IE 7 中 top 和 left 没有默认值。
  • +1 获取有关浮动问题的链接。啊,那是我出错的地方。我尝试了这个,但没有指定顶部和左侧。感谢您的帮助,这将解决我的问题!
猜你喜欢
  • 2011-05-19
  • 2011-10-20
  • 2014-03-25
  • 2011-12-30
  • 2011-01-29
  • 1970-01-01
  • 1970-01-01
  • 2011-07-29
  • 2011-01-27
相关资源
最近更新 更多