公告:

兼容所有浏览器的CSS3圆角

作者:star0312 / 时间:13年前 (2012/11/12) / 分类:网站建设 / 阅读:844 / 评论:0

 

译序:本文提到了一种很不错的实现跨浏览器圆角的解决方案,但是说的不够全面,前端观察最近将整理更多更全面的资源给大家,敬请期待。

    前一段时间,我经常收到一个关于如何在IE浏览器中使用CSS3的border-radius属性实现圆角HTML元素的问题。你或许知道CSS3的border-radius 属性被Safari、Firefox和Chrome等浏览器原生支持,但是由于某些原因IE并不支持它。

    那么要想在IE中实现圆角,你不得不使用一些技巧,比如使用带有背景图片的CSS类。

    

    而我知道的在各个浏览器中实现圆角的较简单快速的方案是结合CSS3和JavaScript。CurvyCorners是一个为HTML元素创建漂亮的圆角的免费JavaScript库。效果如下:

    兼容所有浏览器的CSS3圆角

    该脚本的最大优势是可以在Safari/Chrome/Firefox中使用原生的CSS3属性(通过-webkit-border-radius-moz-border-radius私有属性分别支持)而在IE和Opera中使用JavaScript。

    你所需要做的就是在页面中引入curvycorners.js:

1
<script type="text/javascript" src="curvycorners.js"></script>

    然后定义以下样式:

1
.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; }

    然后在上面的样式后面定义以下代码:

1
<script type="text/JavaScript">addEvent(window, 'load', initCorners);function initCorners() {var setting = {tl: { radius: 6 },tr: { radius: 6 },bl: { radius: 6 },br: { radius: 6 },antiAlias: true}curvyCorners(setting, ".roundedCorners");}</script>

    tltrblbr分别是:左上角(top-left)、右上角(top-right)、左下角(bottom-left)、右下角(bottom-right)。

    如果你有不同的CSS类(例如roundedCornersroundedCorners_1roundedCorners_2等)你可以像这样在前面的代码中定义:

1
...curvyCorners(setting, ".roundedCorners");curvyCorners(setting, ".roundedCorners_1");curvyCorners(setting, ".roundedCorners_2");...

    HTML代码如下:

1
<div class="roundedCorners"></div>

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

    兼容所有浏览器的CSS3圆角

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

 

  • 我的QQ二维码
  • QQ群
  • 我的微信二维码
  • 微信公众号

没有评论,留下你的印记,证明你来过。


发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。