css - IE 不清除后续 float

标签 css internet-explorer css-float

我试图让两个 div float 到页面的相对两侧,文本在它们之间流动。第二个(左对齐)div 的顶部应该与第一个(右对齐)div 的底部齐平。下面的代码在 FF、Chrome、Opera 等中运行良好,但在 IE 中无法正常清除。两个 div 都出现在文本的顶部。

如果我在文本中将左对齐的 div 移动得足够低,它在 IE 中工作正常,但这并不是一个真正可持续的解决方案。

我发现了多个关于 IE CSS float 错误的页面,但我没有发现任何直接与此相关的内容。

CSS

div {
    width: 200px;
    margin-top: 10px;
    border-style: solid;
    border-width: 1px;
    position: relative;
}
.wrapper {
    width: 600px;
    border-color: #FF0000;
}
.right {
    float: right;
    border-color: #00FF00;
}
.left {
    float: left;
    clear: both;
    border-color: #0000FF;
}

HTML:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" 
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<link rel="stylesheet" href="float.css" />
</head>
<body>
<div class="wrapper">
    <div class="right">
        Lorem ipsum dolor sit amet, consectetur adipiscing elit. 
        Nulla pretium tempor leo. Vivamus mi risus, dapibus ac, 
        consectetur quis, pellentesque eget, sem.
    </div>
    <div class="left">
            Proin malesuada. Ut vel lorem. Cras rhoncus nisl accumsan 
            turpis tristique consequat. Sed lacinia ligula at nibh. 
            Morbi in quam. Morbi commodo nibh.
    </div>
    <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. 
    Nulla pretium tempor leo. Vivamus mi risus, 
    dapibus ac, consectetur quis, pellentesque eget, sem. 
    Maecenas est dui, imperdiet nec, fermentum ut, 
    pretium a, orci. Quisque hendrerit interdum orci. 
    Nulla sit amet risus non enim ultrices bibendum. 
    Aenean arcu purus, rhoncus at, vestibulum vel, 
    volutpat et, nunc. Integer eget risus eget purus viverra 
    congue.</p>
    <p>Nullam vel libero ut purus semper ullamcorper. 
    Pellentesque mattis tincidunt odio. Nullam pulvinar 
    orci at dolor. Sed volutpat eros ac elit. 
    Praesent porttitor libero sed felis. Vivamus lobortis 
    pellentesque diam. 
    Proin laoreet massa ac metus. Integer faucibus lorem 
    molestie nibh. Integer id massa. Integer ligula ipsum, 
    pellentesque id, interdum at, pretium eget, orci.
    Proin malesuada. Ut vel lorem.</p>
</div>
</body>
</html>

最佳答案

IE7 和 IE6 有一个 variety of problems,其中的元素同时具有 floatclear。在 IE7 中,在具有 float 的元素上使用 clear 只会清除其他浮点下方的浮点以相同方向 float

easyclearing 修复程序的修改版本可能会解决问题,但不要抱太大希望。有关详细信息,请参阅此页面:New clearing method needed for IE7?

底线是,如果不作弊,您可能无法让它在 IE6/7 中工作:在文本中向下移动 div,在段落中嵌入 div,等等。

关于css - IE 不清除后续 float ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/795161/

相关文章:

html - 在不向下移动页面其余部分的情况下定位标题

HTML - Button 与 Internet Explorer 和 Firefox 的兼容性

html - (HTML & CSS) 仅主页上的透明导航栏。其他 View 中的黑色背景色

css - Drupal Zen 子主题 - 在特定断点处停止响应

jquery - ajax在ie10中返回空结果

internet-explorer - jQuery 的 .load() 在 IE 中不起作用 - 但在 Firefox、Chrome 和 Safari 中正常

html - 同时在主要内容左右浮动

jquery - 在多个div上设置相同的高度

css - 现代浏览器是否仍然需要基于 float 的布局?

html - 如何将页面中间相邻的导航按钮与中心的图像对齐?