兼容所有浏览器的CSS3圆角

原文:[ 兼容所有浏览器的CSS3圆角](http://www.qianduan.net/compatible-all-browsers-css3-rounded-corners.html) 译自:[ CSS3 rounded corners for every browser? ](http://woork.blogspot.com/2009/08/css3-rounded-corners-for-every-browser.html) 版权所有,转载请注明出处,多谢! - - - - - -
**译序:**本文提到了一种很不错的实现跨浏览器圆角的解决方案,但是说的不够全面,前端观察最近将整理更多更全面的资源给大家,敬请期待。 前一段时间,我经常收到一个关于如何在IE浏览器中使用CSS3的**border-radius**属性实现圆角HTML元素的问题。你或许知道CSS3的border-radius 属性被Safari、Firefox和Chrome等浏览器原生支持,但是由于某些原因IE并不支持它。 那么要想在IE中实现圆角,你不得不使用一些技巧,比如使用带有背景图片的CSS类(看一下[这篇文章](http://woork.blogspot.com/2008/03/clean-tab-bar-digg-like-using-css.html))。 而我知道的在各个浏览器中实现圆角的较简单快速的方案是结合CSS3和JavaScript。[CurvyCorners](http://www.curvycorners.net/)是一个为HTML元素创建漂亮的圆角的免费JavaScript库。效果如下: 该脚本的最大优势是可以在Safari/Chrome/Firefox中使用原生的CSS3属性(通过**-webkit-border-radius**和**-moz-border-radius**私有属性分别支持)而在IE和Opera中使用JavaScript。 你所需要做的就是在页面中引入*curvycorners.js*: 然后定义以下样式: .roundedCorners{ width: 220px; padding: 10px; background-color: #DDEEF6; border:1px solid #DDEEF6; /* Do rounding (native in Safari, Firefox and Chrome) */ -webkit-border-radius: 6px; -moz-border-radius: 6px; } 然后在上面的样式后面定义以下代码: **tl**, **tr**, **bl**, **br**分别是:左上角(top-left)、右上角(top-right)、左下角(bottom-left)、右下角(bottom-right)。 如果你有不同的CSS类(例如*roundedCorners*、*roundedCorners_1*、*roundedCorners_2*等)你可以像这样在前面的代码中定义: ... curvyCorners(setting, ".roundedCorners"); curvyCorners(setting, ".roundedCorners_1"); curvyCorners(setting, ".roundedCorners_2"); ... HTML代码如下:

这就是在各个浏览器中的效果:

我认为这的确是在各个浏览器中比较简单和快速的实现CSS3圆角的一种方案。但是,如果js脚本被浏览器禁用了怎么办?最靠谱的方案还是使用额外的使用背景图片的CSS类来实现,或者使用额外的空白标签(Google统计中使用的方法,没有遇到的可以Google一下)。你有更好更简单的方案吗?欢迎留言给我们,多谢!

感兴趣的童鞋可以下载源码