I7浮右吧?

时间:2009-11-16 21:25:32

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

我有一个div浮动的权利。里面的div是另外两个div。第一个div有一个背景颜色,当我刷新时,它会“流血”到第二个div中。 (有时在它前面有时会在它之后。)当我滚动时,它会自行修复。当我刷新它再次做它。这只发生在IE7中。错误?代码

#sidebar {float:right;width:310px;}
#articleSidebar {background:#DEE7E7;margin:0 5px 20px 5px;position:relative;}
#articleSidebarHeader {margin-top:10px;padding:5px;}
#articleSidebar h2, #articleSidebarHeader h2 {color:#5A5A5A;font-size:14px;font-weight:bold;}
#articleSidebar ul {color:#5A5A5A;font-size:11px;padding:0 7px;}
#articleSidebar ul li {background: transparent url(../images/bulletSquare9C.png) no-repeat scroll left 6px; padding:0 0 10px 7px;}
#articleSidebar ul li a {color:#5A6B73;display:block;text-decoration:underline;}
#articleSidebar ul li a strong {font-weight:bold;}
#sidebarAd {margin:0 5px 20px 5px;position:relative;}





<div id="sidebar">
        <div id="articleSidebar">
            <div id="articleSidebarHeader">
                <h2>Title here TBD</h2>
            </div>
            <ul>
                <li><a href="replaceMe">link</a>text</li>
                <li><a href="replaceMe">link</a>text</li>
                <li><a href="replaceMe">link</a>text</li>
                <li><a href="replaceMe">link</a>text</li>
            </ul>
        </div>
        <div id="sidebarAd">
        <!--300x250 ad here-->
        <iframe src="http://www.google.com" height="250" width="300" scrolling="no" frameborder="0"></iframe>
        </div>
    </div>

2 个答案:

答案 0 :(得分:2)

在IE6和7中,我通常使用position:staticzoom:1来解决问题。

答案 1 :(得分:0)

我认为你的相对定位是问题的一部分。两个DIV具有相同的相对位置。我想也许在IE7中,在应用“相对”定位之前元素原始位置的位置和高度/宽度不能正确计算。

想到的修复是:

  1. 使用绝对定位。这会在重新定位之前将元素从DOM中取出,而不占用它们在页面中占用的空间。在这种情况下,定位值可能不相同或相互重叠。

  2. 首选方法使用“浮动”div可以达到与您所听到的效果相同的效果。您可以指定边距CSS定义来实现相同的可视布局,而不是相对定位。

    #articleSidebar {background:#DEE7E7;float:left;margin:0 5px 20px 5px;}    
    #sidebarAd{margin:0 5px 20px 5px;float:left;}