含IE兼容解决方法 纯CSS3怎么实现圆角效果?实现圆角效果的方法介绍

如今 , 这种利用CSS制作圆角的技术已经得到了大多数主流浏览器的支持 , 包括Safari , 谷歌浏览器 , IE , Opera和火狐浏览器 。下面让我们来看看border-radius的语法 , 解释 , 以及IE是如何支持它的 。

含IE兼容解决方法 纯CSS3怎么实现圆角效果?实现圆角效果的方法介绍

文章插图
含IE兼容解决方法 纯CSS3怎么实现圆角效果?实现圆角效果的方法介绍

文章插图
【含IE兼容解决方法 纯CSS3怎么实现圆角效果?实现圆角效果的方法介绍】语法和说明
在CSS3中用来生成圆角效果的属性是border-radius.这个属性跟大家熟知的width等属性的用法相似:
含IE兼容解决方法 纯CSS3怎么实现圆角效果?实现圆角效果的方法介绍

文章插图
上面的这句代码的作用是设置一个元素的四个角的弧度半径值都为10px 。你也可以对每个角单独指定:
含IE兼容解决方法 纯CSS3怎么实现圆角效果?实现圆角效果的方法介绍

文章插图
如果你觉得上面的写法太复杂 , 可以使用下面border-radius简写的方法:
含IE兼容解决方法 纯CSS3怎么实现圆角效果?实现圆角效果的方法介绍

文章插图
四个值分别代表的是top-left, top-right, bottom-right, bottom-left四个角 。
各浏览器对border-radius的支持
因为这种圆角技术是CSS3里出现的 , 老式浏览器或较早期的浏览器中用到这个属性时需要在CSS里添加浏览器引擎前缀(vendor prefixes) 。会是{prefix}-border-radius这样一个样子 , 而具体各种浏览器引擎前缀是下面这样的写法:
含IE兼容解决方法 纯CSS3怎么实现圆角效果?实现圆角效果的方法介绍

文章插图
基本上 , 你需要对每种浏览器引擎做各自的声明 , 加上这些讨厌的稍微不同的代码来保证完全支持border-radius 。但是 , 如果你使用的是最新版的浏览器 , 包括火狐、谷歌、IE等 , 你不需要使用这些前缀 , 因为这个技术已经很成熟 , 在各种最新版的浏览器里已经受到了普遍支持 。
让IE支持border-radius
直到IE9才有对border-radius属性的支持 , 相信很多Web开发人员和Web应用设计人员都很沮丧 。在IE9里 , 最重要的一个点是使用edge META 标记:
含IE兼容解决方法 纯CSS3怎么实现圆角效果?实现圆角效果的方法介绍

文章插图
如果你的IE比较老 , 不支持border-radius , 有很多其它的技术可以弥补这个缺陷 , 我遇到过的最好的一个解决方法是使用一个很小的JavaScript程序包 , 叫做CurvyCorners 。这个CurvyCorners用javaScript动态的生成很多div标记 , 用这些div标记来绘出圆角效果 , 甚至支持消除锯齿功能 。
CurvyCorners的用法很简单 。第一步是在页面中引入CurvyCorners.js脚本:
含IE兼容解决方法 纯CSS3怎么实现圆角效果?实现圆角效果的方法介绍

文章插图
CurvyCorners会在DOM元素里寻找具有border-radius属性的元素 , 然后依次给它们制作出圆角效果 。不需要辅助图片 。你甚至可以设置指定元素的弧度半径:
含IE兼容解决方法 纯CSS3怎么实现圆角效果?实现圆角效果的方法介绍

文章插图


我强烈建议你应该指定需要使用圆角的元素 , 因为让脚本搜索整个页面来寻找需要圆角处理的元素是一个很耗CPU的过程 , 而且这个过程是每个页面加载时都会执行 。
基本的所有浏览器都支持CSSborder-radius属性 , 包括IE , 火狐 , Safari , 谷歌浏览器和Opera 。这个小小的功能能让你的页面表现出完全别样的效果 。


    推荐阅读