2011-05-14 141 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