如何在所有主要Web浏览器上支持border-radius?

时间:2010-09-29 08:30:01

标签: css css3

除了分别为每个引擎提供CSS之外,似乎没有办法支持border-radius。现在看来你必须要宣告该属性三到四次(如果你想支持更多不起眼的引擎,可能会更多)。

我的临时解决方案是通过这个正则表达式传递我的所有CSS:

正则表达式:

border(-)?(top|bottom)?(-)?(left|right)?-radius:(.+?);

替换:

-moz-border-radius$1$2$4:$5;
-webkit-border$1$2$3$4-radius:$5;
-khtml-border$1$2$3$4-radius:$5;
border$1$2$3$4-radius:$5;

这将搜索官方CSS3选择器的所有实例,并将其替换为自身,以及Mozilla,WebKit和KHTML的引擎特定选择器。

有更好的方法吗?

WebKit和Mozilla何时计划支持CSS3选择器? (他们已经?)

3 个答案:

答案 0 :(得分:5)

应该是:

.myClass
{
    -webkit-border-radius: 10px;
    -moz-border-radius: 10px;
    border-radius: 10px;
}

边框半径低于另一个。

为什么?因为,现在新浏览器不再需要自己的引擎破解(例如firefox 4),他们应该使用他们在CSS文件中收到的最后一个命令。这样,所有浏览器理解CSS3规范的圆角相同,您不必很快更改CSS。

答案 1 :(得分:2)

对于所有四个角落,您可以使用以下一个

-webkit-border-radius: 3px;
-khtml-border-radius: 3px;    
-moz-border-radius: 3px;
border-radius: 3px;

如果你想在任何一个角落添加曲线(现在我显示左下角)尝试以下

-webkit-border-bottom-left-radius: 4px;
-khtml-border-bottom-left-radius: 4px;  
-moz-border-radius-bottomleft: 4px;
border-radius-bottomleft: 4px;

由于

答案 2 :(得分:0)

在CSS中这样:

.myClass
{
    border-radius: 10px;
    -webkit-border-radius: 10px;
    -moz-border-radius: 10px;
}

IE是目前唯一不支持它的浏览器(直到IE9推出它)。但在此之前,您可以使用此脚本:DD Roundies。这是一个脚本,它将绕过IE的角落,只需稍加设置即可。在Curvy Corners处还有另一个查找webkit规则并将它们添加到IE中。