CSS3教程

当前位置: HTML5技术网 > CSS3教程 > CSS3圆角的制作

CSS3圆角的制作

        CSS3圆角技术能非常好的美化你的页面效果,而且避免了使用图片辅助,一则省去了制作图片的时间,二则省去了浏览器加载图片造成的延迟和带宽。如今,这种利用CSS制作圆角的技术已经得到了大多数主流浏览器的支持,包括Safari,谷歌浏览器,IE,Opera和火狐浏览器。下面让我们来看看border-radius的语法,解释,以及IE是如何支持它的。

观看演示


语法和说明

在CSS3中用来生成圆角效果的属性是border-radius.这个属性跟大家熟知的width等属性的用法相似:

  1. .roundElement        {
  2.         border-radius: 10px;
  3. }
复制代码

上面的这句代码的作用是设置一个元素的四个角的弧度半径值都为10px。你也可以对每个角单独指定:

  1. .pearElement        {
  2.         border-top-left-radius: 7px;
  3.         border-top-right-radius: 5px;
  4.         border-bottom-right-radius: 6px;
  5.         border-bottom-left-radius: 8px;
  6. }
复制代码

如果你觉得上面的写法太复杂,可以使用下面border-radius简写的方法:


  1. .oddRoundElement {
  2.         border-radius: 12px 5px 12px 5px;
  3.         /* or */
  4.         border-radius: 12px 5px;
  5. }
复制代码

四个值分别代表的是top-left, top-right, bottom-right, bottom-left四个角。


各浏览器对border-radius的支持



因为这种圆角技术是CSS3里出现的,老式浏览器或较早期的浏览器中用到这个属性时需要在CSS里添加浏览器引擎前缀(vendor prefixes)。会是{prefix}-border-radius这样一个样子,而具体各种浏览器引擎前缀是下面这样的写法:

  1. -moz-border-radius: 20px;
  2. -webkit-border-radius: 20px;
  3. -o-border-radius: 20px;

  4. /* 火狐浏览器 */
  5. -moz-border-radius-topleft:15px; /* top left corner */
  6. -moz-border-radius-topright:50px; /* top right corner */
  7. -moz-border-radius-bottomleft:15px; /* bottom left corner */
  8. -moz-border-radius-bottomright:50px; /* bottom right corner */
  9. -moz-border-radius:10px 15px 15px 10px;  /* shorthand topleft topright bottomright bottomleft */

  10. /* webkit引擎的浏览器 */
  11. -webkit-border-top-left-radius:15px; /* top left corner */
  12. -webkit-border-top-right-radius:50px; /* top right corner */
  13. -webkit-border-bottom-left-radius:15px; /* bottom left corner */
  14. -webkit-border-bottom-right-radius:50px; /* bottom right corner */
复制代码

       基本上,你需要对每种浏览器引擎做各自的声明,加上这些讨厌的稍微不同的代码来保证完全支持border-radius。但是,如果你使用的是最新版的浏览器,包括火狐、谷歌、IE等,你不需要使用这些前缀,因为这个技术已经很成熟,在各种最新版的浏览器里已经受到了普遍支持。


让IE支持border-radius


       直到IE9才有对border-radius属性的支持,相信很多Web开发人员和Web应用设计人员都很沮丧。在IE9里,最重要的一个点是使用edge META 标记:



  1. <meta http-equiv="X-UA-Compatible" content="IE=edge" />
  2. <style>
  3. border-top-right-radius: 7px;
  4. border-top-left-radius: 7px;
  5. border-bottom-right-radius: 2px;
  6. border-bottom-left-radius: 2px;
  7. </style>
复制代码

        如果你的IE比较老,不支持border-radius,有很多其它的技术可以弥补这个缺陷,我遇到过的最好的一个解决方法是使用一个很小的JavaScript程序包,叫做CurvyCorners。这个CurvyCorners用javaScript动态的生成很多div标记,用这些div标记来绘出圆角效果,甚至支持消除锯齿功能。


CurvyCorners的用法很简单。第一步是在页面中引入CurvyCorners.js脚本:


  1. <!-- SIMPLY INCLUDE THE JS FILE! -->
  2. <script type="text/javascript" src="curvy.corners.trunk.js">
  3. </script>
复制代码

        CurvyCorners会在DOM元素里寻找具有border-radius属性的元素,然后依次给它们制作出圆角效果。不需要辅助图片。你甚至可以设置指定元素的弧度半径:


  1. var settings = {
  2.         tl: { radius: 12 },
  3.         tr: { radius: 12 },
  4.         bl: { radius: 12 },
  5.         br: { radius: 12 },
  6.         antiAlias: true
  7. };
  8. /* moooo */
  9. $('.round').each(function(rd) {
  10.   curvyCorners(settings,rd);
  11. });
复制代码

       我强烈建议你应该指定需要使用圆角的元素,因为让脚本搜索整个页面来寻找需要圆角处理的元素是一个很耗CPU的过程,而且这个过程是每个页面加载时都会执行。

观看演示


       我强烈建议你应该指定需要使用圆角的元素,因为让脚本搜索整个页面来寻找需要圆角处理的元素是一个很耗CPU的过程,而且这个过程是每个页面加载时都会执行。


关键词:CSS、CSS3教程、html5

【CSS3圆角的制作】相关文章

1. CSS3圆角的制作

2. CSS3圆角的实现教程

3. 如何让IE浏览器支持CSS3圆角

4. 兼容所有浏览器的CSS3圆角

5. CSS3圆角详解:border-radius

6. CSS3系列教程:边框半径和圆角

7. CSS3实现圆角效果

8. CSS3 HTML5实例一(圆角)

9. 纯CSS3实现圆角按钮

10. 利用CSS3制作动画效果

本文来源:https://www.51html5.com/a1038.html

点击展开全部

﹝CSS3圆角的制作﹞相关内容

「CSS3圆角的制作」相关专题

其它栏目

也许您还喜欢