2010-11-15 87 views
1

我已经创建了这个人造的例子来说明我的问题。有两段之间有一个div。 div的高度和行高已经设置为0,所有边距也是0.我认为这两个段落彼此相邻,没有任何div间距,但IE6并非如此。它似乎在所有其他浏览器中都能正常工作。即使边距和填充为零,IE6仍会渲染间距

这里是内联的所有风格的HTML:我在几个边框添加只是让你可以更容易地看到发生了什么事情

<!DOCTYPE html> 
<html lang='en'> 
    <head> 
     <title>Test</title> 
    </head> 
    <body> 
     <div id="container" style="border: 1px solid blue;"> 
      <p style="margin: 0;"> 
       Some text 
      </p> 
      <div style="height: 0; line-height: 0; margin: 0; border: 1px solid red;"> 
       &nbsp; 
      </div> 
      <p style="margin: 0; border: 1px solid green"> 
       Should be right below "Some text" 
      </p> 
     </div> 
    </body> 
</html> 

这里是正在发生的事情IE6的截图:

alt text

我如何能摆脱DIV(红色)的底部之间的空间不大的任何想法和段落的顶部(绿色)?

+0

你试过DebugBar吗? – Kos 2010-11-15 17:54:22

回答

2

添加font-size:0;到div。这应该删除空间

0

我相信“p”标签会自动添加填充。在你的风格属性中尝试添加填充:0;连同边距:0;

要尝试的另一件事是将您的位置设置为相对位置,即“position:relative;”

另外,请确保您使用的是有效的doctype:http://www.w3.org/QA/2002/04/valid-dtd-list.html

+0

尝试设置显式填充和使用位置:相对,但它没有改变任何东西。另外,根据http://diveintohtml5.org/semantics.html,我使用的文档类型是有效的。 – 2010-11-15 16:36:32

+0

是否有任何理由在中间div有 ?什么摆脱了这一点呢? – wajiw 2010-11-15 16:38:51

+0

摆脱 似乎没有影响的东西。我把它放在那里的原因是,如果一些浏览器是空的,它们会忽略div。产生这个问题的原始页面是使用0x0的div与“clear:both”设置,以便处理浮动布局,因此div需要包含在布局中,但不占用任何空间。 – 2010-11-15 21:29:51