使用 CSS3 实现圆角效果
2009年07月07日
我爱水煮鱼博客上使用的图片比较多,虽然我采用了服务器缓存,gzip 压缩以及对 CSS 和图片文件设置了一个比较合理的过期时间,但是还是比较慢。所以减少图片的使用还是速度加快的王道,所以我今天学习了下使用 CSS3 技术不需要图片即可实现圆角,把侧边栏标题背景的圆角效果和搜索框的圆角效果用 CSS3 实现。记录一下以便以后使用。
W3C 很早就制订了实现了 CSS 圆角的 CSS3 属性:border-radius,Firefox 和 Safari 也通过私有属性实现了该功能:
代码非常简单:
<div style=" background-color: #ccc; -moz-border-radius: 5px; -webkit-border-radius: 5px; border: 1px solid #000; padding: 10px;" >Firefox 和 Safari 实现圆角</div>
效果如下:
Firefox 和 Safari 使用私有属性实现圆角效果
其中 -moz-border-radius 是 Firefox 实现圆角的私有属性,而 -webkit-border-radius 是 webkit 内核浏览器(如 Safari 和 Chrome)实现圆角的私有属性,如果你只要指定某一个角是圆角的话,它们都分别定义了四个属性:
-moz-border-radius-topleft / -webkit-border-top-left-radius
-moz-border-radius-topright / -webkit-border-top-right-radius
-moz-border-radius-bottomleft / -webkit-border-bottom-left-radius
-moz-border-radius-bottomright / -webkit-border-bottom-right-radius
当然 IE (包括 IE8)还是不支持,所以该效果只能在 Firefox, Safari, 以及 Chrome 中查看。
24 条评论 添加你的评论 →

1. Jinwen | 2009:07:07 - 03:19:21 | #
这种原生的属性支持当然是好;但却不是全局浏览器的支持,所以也是我自己在主题中一直还是使用图片的原因了;或者想各个访问者都能看到自己原有的设计,这个还是重要一点。
2. Denis | 2009:07:07 - 08:55:59 | #
恩,你注重设计,不过我喜欢在博客应用各种新技术!
3. Sivan | 2009:07:07 - 09:05:58 | #
可这个代码貌似也有好一阵子了吧
4. Denis | 2009:07:07 - 09:29:56 | #
我火星了!
5. huary | 2009:07:07 - 07:49:45 | #
其实不用图片也能在IE下显示圆角,可惜代码十分复杂。可恶的IE!
6. 清吉 | 2009:07:07 - 08:01:25 | #
奇怪,这个box在google reader里面竟然不显示圆角,在你这就显示圆角了。
7. evan | 2009:07:07 - 09:27:14 | #
唔,twitter登不上的时候,就只好拿douban帐号来玩。
其实css3很好玩的,我就在blog上用到了rgba透明、transform动画、text(box)-shadow阴影。期待这些东西推广开来
8. Denis | 2009:07:07 - 09:32:08 | #
你博客多少?给我学习学习!
9. evan | 2009:07:07 - 17:15:48 | #
囧了吧
10. LeafDuo | 2009:07:07 - 09:33:19 | #
GR 上不能显示
11. skip | 2009:07:07 - 13:38:34 | #
我会选择用圆角设计。在兼容css3的浏览器里有更为舒适的圆角边框,IE仍维持矩形原状;因为IE,Firefox等本身是有区别的。所以我能接受
12. Denis | 2009:07:07 - 16:18:27 | #
恩,我也是这么想的,在 Firefox 这些现代的浏览器上使用最先进的 Web 技术。
13. bertlin | 2009:07:07 - 17:39:11 | #
看看
14. bertlin | 2009:07:07 - 17:39:29 | #
头像哪里来的 我没设置啊
15. adomit | 2009:07:07 - 20:10:21 | #
我也是因为这个问题苦恼了N久~
就是因为IE没有办法支持~`
不然多好办~
结果都只能通过比较麻烦的CSS属性进行控制圆角了~
16. nipuu | 2009:07:09 - 12:02:16 | #
代码是很简单,可惜IE不兼容:(
17. calcifer | 2009:07:10 - 11:07:29 | #
无图实现打圆角其实也无非就是多次使用CSS的边框设置做出多个细小的形状,刚好一半的宾框是背景色,一半的边框不显示,多次调用。教材看过,不过对打圆角无爱,哈
18. Jackie | 2009:07:10 - 17:47:59 | #
呵呵, 好文章,已经转载到杰克花园博客,^_^
19. Denis | 2009:07:10 - 18:44:12 | #
囧,请不要全文转载我的文章!
20. bolo1988 | 2009:07:12 - 23:17:53 | #
ie就是麻烦
21. bolo1988 | 2009:07:12 - 23:19:58 | #
貌似jQuery有个实现框架圆角的插件,可以做很多角效果,哈哈
22. Hiro | 2009:07:17 - 20:16:57 | #
jQuery的圆角插件是好用,但影响速度!
23. GoogBr | 2009:07:18 - 11:51:11 | #
哈哈,其实ie下也可以的哦。
用curvycorners吧。兼容性很好。
24. GoogBr | 2009:07:18 - 11:52:39 | #
小鱼啥时候把现在这个主题放一个出来啊,我顺手拽一个回去用用哦。