CSS3 border-radius
属性建立在基本的CSS border
属性之上,并可以使元素的4个角变为圆角。border-radius
属性可以使用任何一个CSS单位来做为值。所有的最新版现代浏览器,包括IE、Chrome 和 Opera都支持border-radius
属性。在一些老的浏览器上,需要使用浏览器厂商前缀来支持该属性。
下面举个例子,HTML结构如下:
<div id="bestanime"> <h3>Top Three Anime DVDs</h3> <ol> <li>Ghost In The Shell</li> <li>Spirited Away</li> <li>Akira</li> </ol> </div>
你可以像下面这样使用border-radius
来使div
元素变为圆角:
div#bestanime { border: 5px double #000; border-radius: 20px; }
border-radius
可以单独将每一个角指定为圆角:
div#bestanime { border: 5px double #000; border-radius-topright: 30px; }
注意,在一些老的浏览器上,语法可能有些不同,在这些浏览器上不仅仅要添加厂商前缀,还要增加回退代码:
div#bestanime { border: 5px double #000; -moz-border-radius-topright: 30px; -webkit-border-top-right-radius: 30px border-radius-topright: 30px; }
一些提示资源
我们也可以给border-radius
设置不同的高度和宽度,这样圆角就不是完美的半圆形,而是一个椭圆形。
div#bestanime { border: 5px double #000; border-top-left-radius: 75px 60px; }
注意box-shadow
属性要收border-radius
属性的影响。还要注意border-radius
的两个值不要设置的相差太多,例如设置为60px 3px
将不会得到预期的结果:第一个值影响元素的左上和右下角,第二个值影响元素的右上和左下角。(注意,一些老的浏览器可能解析的结果是错误的)
如果元素的边框设置得很细和颜色对比度较高时,在设置一个很大的border-radius
属性,在老的浏览器上看起来就会有一些变形。这些缺陷在最新版的浏览器中都得到了解决。
下面是两个border-radius方面的资源:
- border-radius.com是一个可以在线可视化制作CSS圆角的网站。
- Border-radius generator是由Mozilla Developer Network提供的类似的制作CSS圆角功能。