2009-11-03 44 views
0

我刚刚遇到了IE6的错误,我似乎没有通过网络识别。IE6 border-bottom:0&padding CSS问题

基本上这是触发行为的时候:块元素具有边界,除了底部和顶部/底部填充之外的所有边上。里面还有另一个块元素。

我的整个代码是大,以适应在这里,但我把范围缩小到这个简单的例子:

<div style="border: 5px solid red; border-bottom: 0; padding: 5px;"> 
    <p>adasasasdas</p> 
</div> 
Following stuff 

现在不顺心的事情是“继东西”的位置(不管那是),将会被奇怪地改变。在这种情况下左边有几个像素。

要禁用奇怪的行为我可以保持下边框,摆脱填充或使内联元素。但我有点想要他们两个。在我必须放弃它之前,我想看看是否有关于这个bug的知识,以及是否有其他解决方案。

谢谢!

回答

0

我的解决将是

<div style="border: 5px solid red; padding: 5px; padding-bottom:4px; border-bottom: 1px solid white;"> 
    <p>adasasasdas</p> 
</div> 
Following stuff 

但可能不适用你根据上下文的

0

这可能会帮助你

<div style="border-left: 5px solid red; border-top: 5px solid red; padding: 0px;"> <p style="margin:0px; padding:10px;">adasasasdas</p> </div> Following stuff

如果你想填充调整边距在<p>标签

1

这是一个很好的修复程序的bug:

<div style="border: 5px solid red; border-bottom: 0; padding: 5px; font-size:0"> 
    <p style="font-size:16">adasasasdas</p>&nbsp 
</div> 
Following stuff 

基本上,必须有在div的末尾一些嵌入式文本为IE6正确呈现它。由于&在底部添加了一行,我在div中将字体大小更改为0,然后在<p>内将字体大小更改为16(或任何您通常使用的内容)。这对div的高度影响非常小(在所有主流浏览器中约为2像素),但对用户来说不应该引起注意。或者,您可以尝试在div中将line-height变量更改为0%,然后回到p中的100%,但似乎在尝试时将div的高度比font-size方法多了几个像素。

0

嘿,我知道这是旧的,但我也花了几个小时与这个bug进行斗争(事实上,我花了很长时间才弄清楚,这是因为边界底部+填充底部......这是一个耻辱,因为如果我知道要搜索什么,我会早点发现)。

无论如何,突然想到这是ie6中hasLayout问题的另一种表现形式。为了达到我的目的,突然添加“zoom:1”给这些令人讨厌的div,并且神奇地修复它,这样做的好处在于不会因字体大小和行高等而烦恼。