传统的圆角生成方案,必须使用多张图片做为背景图案。CSS3的出现,使得咱们不再必浪费时间去制做这些图片了,只须要border-radius属性,支持浏览器IE 九、Opera 10.五、Safari 五、Chrome 4和Firefox 4。css
1 border-radius属性浏览器
CSS3圆角只需设置一个属性:border-radius(含义是"边框半径")。为这个属性提供一个值,就能同时设置四个圆角的半径。全部合法的CSS度量值均可以使用:em、px、百分比等等。好比,下面是一个div方框(宽高都是200px,背景为墨绿色,边框为2px的灰色实线),代码以下:安全
实现的效果如图1所示:3d
图1 box最初样式blog
如今来为它设置50%的圆角,为css增长border-radius: 50%,CSS代码以下:图片
这里经过为圆角属性值设置为50%,也就是,同时将每一个圆角的"水平半径"和"垂直半径"都设置为50%,最后实现一个圆形。如图2所示:bfc
图2 为box设定四角都为50%的圆角渲染
border-radius能够同时设置1到4个值。(想一想咱们以前的margin与padding)若是设置1个值,表示4个圆角都使用这个值。若是设置两个值,表示左上角和右下角使用第一个值,右上角和左下角使用第二个值。若是设置三个值,表示左上角使用第一个值,右上角和左下角使用第二个值,右下角使用第三个值。若是设置四个值,则依次对应左上角、右上角、右下角、左下角(顺时针顺序)。im
如今咱们来为box的border-radius属性设置两个值border-radius: 50px 25px,来看看它的实现效果,CSS代码以下:d3
实现的圆角效果,将box的左上角和右下角的圆角半径设为50px,右上角和左下角圆角半径设为25px。如图3所示:
图3 为box的border-radius设置两个值
再来为box的border-radius属性设置三个值border-radius: 50px 10px 25px,来看看它的实现效果,CSS代码以下:
实现的圆角效果,将box的左上角的圆角半径设为50px,右上角和左下角的圆角半径设为10px,右下角圆角半径设为25px。如图4所示:
图4 为box的border-radius设置三个值
最后咱们为box的border-radius属性设置四个值border-radius: 50px 10px 25px 0,来看看它的实现效果,CSS代码以下:
实现的圆角效果,将box的左上角的圆角半径设为50px,右上角的圆角半径设为10px,左下角的圆角半径设为25px,右下角圆角半径设为0。如图5所示:
图5 为box的border-radius设置四个值
2 单个圆角的设置
除了同时设置四个圆角之外,还能够单独对每一个角进行设置。对应四个角,CSS3提供四个单独的属性:
(1)border-top-left-radius
(2)border-top-right-radius
(3)border-bottom-right-radius
(4)border-bottom-left-radius
这四个属性均可以同时设置1到2个值。若是设置1个值,表示水平半径与垂直半径相等。若是设置2个值,第一个值表示水平半径,第二个值表示垂直半径。
如今,咱们为单独为box的左上角设定50px的圆角,来看看它的实现效果,CSS代码以下:
实现的圆角效果,将box的左上角的圆角半径设为50px。如图6所示:
图6 为box设置左上角的圆角
虽然各大浏览器都支持border-radius,可是在某些细节上,实现都不同。当四个角的颜色、宽度、风格(实线框、虚线框等)、单位都相同时,全部浏览器的渲染结果基本一致;一旦四个角的设置不相同,就会出现很大的差别。另外,并不是全部浏览器,都支持将圆角半径设为一个百分比值。
所以,目前最安全的作法,就是将每一个圆角边框的风格和宽度,都设为同样的值,而且避免使用百分比值。