ie中的像素间隙

时间:2009-10-07 17:45:49

标签: jquery internet-explorer-8 overlay css gaps-in-visuals

我使用绝对定位放置了四个Div,它们每个都是一个组合在一起的矩形的边框,以便看起来如果页面上的Dom元素被选中(这个使用Div作为叠加来模仿css边界行为。

  • 左边的边框设置为“4px solid red”宽度为0p x,高度等于所选Dom元素的高度

  • 顶部的边框顶部设置为“4px solid red”,高度为0px,宽度等于所选Dom元素的宽度。

等。你可以看到它的发展方向。

我知道这很奇怪,但它非常有用,请参阅aardvark作为示例。

所以这就是它在FF,opera,safari和chrome中的样子:

alt text http://img243.imageshack.us/img243/429/captureyv.png

以及即8

中的样子

alt text http://img190.imageshack.us/img190/7196/capture1dv.png

我立即想到了一个盒子模型的问题,但它是不是想让它更窄?无论如何,我使用 jquery 来获取宽度和高度,这应该可以防止出现这种问题。我遇到了most known ie bugs,但找不到匹配。

您怎么看?

ps:这是一个书签,当然我试图在本地文件上更改doctype但它有效,但在生产中,我将无法做到。

我使用ie dev工具栏在绝对的元素周围绘制边框:

alt text http://img21.imageshack.us/img21/3425/capture2uc.png

我们可以看到差距。

5 个答案:

答案 0 :(得分:2)

使用IE8的Developer工具栏检查BOTTOM“border”div的“实际”高度。确保它是“0”。

请尝试以下底部div。

<style type="text/css">
    #bottomBorder{
        /* Adding '!important' to each CSS rule 
           will make sure nothing else in your code is 'overwriting'
           that rule. (doesn't work for IE6)
        */
        line-height:0 !important; 
        font-size:0 !important;
        height:0 !important;
        border-bottom:solid 4px red;
        position:absolute;
    }
</style>

或尝试:

<style type="text/css">
    #bottomBorder{
        border-top:solid 4px red;
    }
</style>

我在想的是IE不允许你将div设置为0px高度。我之前在div上看过这个。

答案 1 :(得分:1)

我认为你应该摆弄你的DOCTYPE,因为这通常会让IE走向正确的方向

答案 2 :(得分:1)

我认为这个问题与边距和填充有关。你的DIV内有任何信息或间隔符吗?这可能会导致您没有考虑的额外空间。

我会用余量调整div:0;边界崩溃:倒塌;

另外,正如您所提到的,在您的底部DIV上,您应该将其设置为其顶部边框,以尝试防止由于DIV内部的任何边距或间距而发生此类间隙。

答案 3 :(得分:0)

可能是因为IE8不包括边框的高度作为其高度参数的一部分吗?尝试添加边框的大小。

答案 4 :(得分:0)

好吧,我现在还没有解决方案,但我只是显示底部div边框顶部而不是边框​​底部,现在看起来很好。如果有人知道的更好,他仍然欢迎。