在Div中的IE 7,8,9中的垂直间距

时间:2011-03-22 16:36:21

标签: html css internet-explorer padding margin

我有一个div标签,里面有一些其他元素,如下所示:

<div>
  <h3>Text</h3>
  <hr/>
  <ul>
    <li>Text</li>
  </ul>
  <hr/>
  <span>Text</span>
</div>

在div中的每个不同元素之间,我为所有元素设置了0填充和边距(并且它反映在开发人员工具中),但是在所有Internet Explorer浏览器中都有很大的空间(大约4-6)每个元素之间的像素)。我已经尝试将html,body padding / margin设置为0,以及DOM层次结构中几乎所有其他元素,但是间距仍然存在。我也尝试过最小化HTML,因此没有新的行或空格,但它不能解决问题。

有什么建议可能是什么问题?

2 个答案:

答案 0 :(得分:1)

我想问题是IE中的hr元素...它不像其他HTML元素那样对待。有很多解决方案......但是当你想减少利润时,我无法让它们工作。

据说......通过反复试验,我设法获得IE的负边距,只能渲染才能工作。无法确定它是否适用于IE&lt; 6,IE7,IE&gt; 8(无法测试)。

最小的CSS代码片段:

<style>
   hr {padding:0;margin:0;height:1px;border:none;color:#000;background-color:#000;}
</style>
<!--[if lte IE 8]>
<style>hr {display:block;margin:-7px 0;}</style>
<![endif]-->

...我把它限制在IE8以及更少,因为网络上的文字在IE9中会发生变化......我们会看到一旦它可以被测试:)。请注意,如果您想更改该行的颜色,则需要更改colorbackground-color的值(取决于使用的浏览器中的一个或另一个:ref)< / p>

经过测试和工作:

  1. IE 8.0.6001 ...
  2. IE 6.0.2900 ......
  3. FF 3.6.15
  4. Cr 10.0.648.134
  5. (在WinXP上)

答案 1 :(得分:0)

您看到的空间不是填充,边距或边框。您正在看到每个标记之间存在的“”字符。

选项:

1)设置要显示的所有元素:块或显示:内联块。 2)一个接一个地写入所有标签,解除所有SPACE或ENTER字符