2011-05-14 119 views
8

請看下面的HTML和CSS。Firefox:邊框顏色,邊框半徑和背景顏色創建不齊的邊緣和空白區域

.box { 
    border-radius: 15px; 
    border: #333 solid 3px; 
    background: #333; 
} 
<div class="box">Hello world</div> 

它產生這樣在Firefox:

enter image description here

正如你所看到的,邊框和div的背景留下一個微小的差距是明顯的。由於具有不同背景顏色的懸停狀態,我需要邊框。

我該如何克服這個問題?

+1

您使用的瀏覽器是? – 2011-05-14 10:44:58

+1

從來沒有發生過,這隻發生在Firefox(4)。 Safari,Chrome和Opera不顯示此行爲。有沒有辦法解決這個FF? – Kriem 2011-05-14 10:47:51

+0

我也在Windows機器上看到了這一點......這是一個鉻窗口中的chrome反鋸齒引擎的鉻錯誤。 – Roki 2011-05-14 10:48:39

回答

7

這很可能是Firefox中的一個錯誤。你可以做一個簡單的技巧來解決這個問題:(這不是最好的解決辦法,我知道,但這個問題似乎很嚴重)

標記:通過「包裝」的div

<div class="wrapper"> 
    <div class="box">Hello world</div> 
</div> 
假的邊界

CSS:填充的伎倆

.wrapper { 
    border-radius: 15px; 
    background: #333; 
    padding:3px; /*simulating border*/ 
} 
.box { 
    border-radius: 15px; 
    background: #333; 
} 

http://jsfiddle.net/steweb/peYRf/


一個更優雅的方式來解決問題(不添加其他格)可以在相同的背景色,以「填充」說白了可怕的東西的盒子來添加陰影,即

.box { 
    border:3px solid #333; 
    border-radius: 15px; 
    background: #333; 
    -moz-box-shadow:0px 0px 1px #333; /* just on ffox */ 
} 

http://jsfiddle.net/steweb/Sy2rr/

+0

夠優雅。 :) Mozilla是否知道這個渲染問題btw? – Kriem 2011-05-14 11:04:20

+0

添加的陰影甚至不需要模糊。 0px 0px 0px很好。喜歡這個主意!謝謝! – Kriem 2011-05-14 11:15:08

+0

不客氣:)對於Mozilla來說,老實說我不知道​​他們是否知道這個渲染問題..我希望如此..順便說一句,我一直在用css3做2年的東西,我從來沒有注意到這種奇怪的行爲。 – stecb 2011-05-14 11:31:12