2008-12-12 103 views
5

我有一个通过CSS风格的div标签。我将填充设置为10px(padding:10px),它的工作原理与我在Firefox和IE7中一样,但在IE6中,它在底部添加了额外的填充(我认为大约为2-3px)。任何人都知道这里发生了什么?底部IE6额外填充

[更新]

我只注意到这一点,我说的是div标签具有背景图像。当我删除背景图像时,底部的额外填充消失。有任何想法吗?

[另一个更新,代码示例]

这里的应用到我的div标签的CSS:

.user-info{ 
    margin-top: 20px; 
    margin-right: 20px; 
    padding: 10px; 
    background-image: url("../img/user_panel_bg.png"); 
    float:right; 
    border: 1px #AAAAAA solid; 
    font-size:12px; 
} 
+0

您可以编辑这个职位包括代码示例 – bendewey 2008-12-12 03:19:11

+0

同上。这可能有很多原因(IE 6有一个相当古怪的盒子模型,这可能是造成这种情况的原因,但我们不能说没有一些代码)。 – 2008-12-12 03:20:37

回答

17

你的div里有图像吗?如果有图像,有一个在IE 6中的错误可以在专区内造成的白色空间底部

额外的填充内容创建微胖显示了

<div> 
<img src="myimage.jpg"> 
</div> 

额外的填充内容显示不出来的时候你改变你的HTML

<div><img src="myimage.jpg"></div> 
4

我会强烈建议采取一看positioniseverything.net网站及其IE的问题和解决方法覆盖。看看霍利黑客部分 - 我相信你会在那里找到答案。

[编辑 - 添加]采取的3px的问题,解释一下here和修复

对于盒设置和浏览器的差异,sitepoints box model article提供了一些很好的启示,以及。

2

你试过隐藏你的DIV溢出吗? overflow:hidden;

编辑:如果您在谈论水平推送,您也可以尝试display: inline;

0

潜在'保证金'或'边界'属性?

1

确保字体大小不会产生问题。即使在容器元素内部没有文本(比如伸缩容器上的底部帽子),IE6仍然会将盒子的高度设置为不小于字体大小(即使设置了明确的高度)。

因此,对于举例来说,如果你有HTML:

<div class="box"> 
    <h1>Heading</h1> 
    <p>This is the main content.</p> 
    <div class="bottom"></div> 
</div> 

...你会需要这个CSS:

<style type="text/css"> 
    .box { 
    background: url(bg-middle.jpg) repeat-y; 
    } 
    .box h1 { 
    background: url(bg-top.jpg) no-repeat; 
    } 
    .box .bottom { 
    background: url(bg-image.jpg) no-repeat; /* bottom cap image */ 
    height: 10px;        /* height of your bg image */ 
    font-size: 1px;       /* for IE6 */ 
    } 
</style>