在IE6中使<hr />标签不可见?

时间:2010-08-13 15:39:51

标签: css internet-explorer-6

有没有办法摆脱IE6中<hr>元素的边界而不将其包装在另一个元素中?不幸的是,另一项要求是没有黑客攻击。

我已经设法通过为边框设置样式来为所有浏览器执行此操作:

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

然而IE6仍然呈现1像素的白线。

3 个答案:

答案 0 :(得分:10)

display: none不起作用,因为您正在从元素流中完全删除<hr>。这导致它停止清理你的花车。

如果您可以完全隐藏它,只需使用visibility: hidden即可。它仍将清除浮动,这适用于所有IE:

hr {
    clear: both;
    visibility: hidden;
}

答案 1 :(得分:1)

答案 2 :(得分:1)

所以问题是IE不会将<hr>边框视为“边框”。如果你设置

border: 1px #f0f solid; 

...它会在现有斜面边框周围添加一个紫红色边框。幸运的是,Firefox和IE8也是如此,并且意识到border: 0;意味着我不想要边框。不幸的是,IE 7及更低版本不会这样做。

所以回答你的问题...... 没有 ...没有办法摆脱 IE6 <hr>元素的边框没有把它包装在另一个元素中或者黑客攻击它(我没有找到根据我的经验做到这一点的方法)。

您的选项要么将<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(旧版本)不遵守规则。我希望这会有所帮助。