2010-08-13 84 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瀏覽器(舊版本)不玩規則。我希望這有幫助。