2010-08-13 86 views
7

有没有办法摆脱在IE6中的<hr>元素的边框,而没有将其包装在另一个元素中?不幸的是,另一个要求是没有黑客。使<hr>标签在IE6中不可见?

我已经成功通过造型边框这样做对所有的浏览器:

hr.clear { 
    clear: both; 
    border: 1px solid transparent; 
    height: 0px; 
} 

但IE6依然呈现一个1像素的白线。

+2

为什么不'border:none'?我认为它甚至适用于IE6。 – zneak 2010-08-13 15:45:47

+0

上述两种解决方案在所有IE浏览器中都保留了1-px行。我在Windows上使用IETester和IE8进行测试。 – montrealist 2010-08-13 15:54:12

回答

10

display: none不起作用,因为您完全从元素流中删除<hr>。这会导致它停止清理浮游物。

如果您完全隐藏它,那么只需使用visibility: hidden。它仍然会清除漂浮物,并且这适用于所有IE:

hr { 
    clear: both; 
    visibility: hidden; 
} 
+0

邦上。谢谢! – montrealist 2010-08-17 14:27:56

+0

明确:两者都是我必须的,知名度:隐藏只是没有工作.. – 2016-09-22 16:43:04

1
+0

是的,我看到了。但我不需要一个图像,我只是需要它完全不可见。 – montrealist 2010-08-13 15:52:04

+0

..'display:none;'只会隐藏它,而海报想要的1px的垂直空间将会消失。 – Hristo 2010-08-13 16:22:34

+0

我不需要隐藏它,只是为了摆脱它的边界。我需要它作为结算要素。因此,'display:none'不是一个选项。 – montrealist 2010-08-16 17:45:52

1

所以问题是,IE不考虑<hr>边框为 “边界”。如果你设置

border: 1px #f0f solid; 

......它会在现有的斜切边界周围添加紫红色边框。幸运的是,Firefox和IE8渲染了这一点,并意识到border: 0;意味着我不需要边框。不幸的是,IE 7和更低版本不这样做。

因此,要回答你的问题...... 没有 ...有没有摆脱了边框的<hr>元素IE6的方式没有包装它在另一个元素或黑客攻击(我的避风港根据我的经验,没有找到办法做到这一点)。

如果您有纯色背景色,请将<hr>设置为<div>,将color属性设置为背景色的属性,或将图像用于背景。

选项1:

<div style="height:1px; background: transparent;"> 
    <hr style="display:none;" /> 
</div> 

选项2:

hr.clear { 
    border: 0 none; 
    height: 1px; 
    color: #ffffff; /* if your bg is white, otherwise choose the right color */ 
} 

选项3 ...检查了这一点:http://blog.neatlysliced.com/2008/03/hr-image-replacement/

对不起,IE浏览器(旧版本)不玩规则。我希望这有帮助。