CSS3 -- 圆角(Border-radius)

1、CSS2、CSS3圆角的区别、优缺点

  在CSS2传统的圆角生成方案中,都需要使用多张圆角图片做为背景,分别应用到每个角上;(背景图片合并 -- 两种方法:一、在需要圆角的元素标签中加四个空标签,再对这4个应用了圆角背景的标签进行定位到相应的位置。二、背景横铺  背景竖铺)。

  CSS3中的border-radius,省去制作圆角图片的时间。 

      减少维护的工作量。图片文件的生成、更新、编写网页代码,这些工作都不再需要了。

  提高网页性能。由于不必再发出多余的HTTP请求,网页的载入速度将变快。

  增加视觉可靠性。某些情况下(网络拥堵、服务器出错、网速过慢等等),背景图片会下载失败,导致视觉效果不佳。CSS3就不会发生这种情况。

2、border-radius语法、取值

border-radius : 0 | none | <length>{1,4} [/ <length>{1,4} ]?

<length>: 由浮点数字和单位标识符组成的长度值。不可为负值。

3、border-radius说明

  CSS3圆角属性:border-radius(含义是"边框半径")。属性提 -- 所有合法的CSS度量值都可以使用:em、ex、pt、px、百分比等。

  值顺序(遵循TRBL原则): 左上top-left、右上top-right、右下bottom-right、左下bottom-left。

可拆分:
border-top-left-radius: <length> <length> //左上角 border-top-right-radius: <length> <length> //右上角 border-bottom-right-radius:<length> <length> //右下角 border-bottom-left-radius:<length> <length> //左下角

4、border-radius兼容

  border-radius只有在以下版本的浏览器:Firefox4.0+、Safari5.0+、Google Chrome 10.0+、Opera 10.5+、IE9+支持border-radius标准语法格式,对于老版的浏览器,border-radius需要根据不同的浏览器内核添加不同的前缀,比说Mozilla (Firefox)内核需要加上“-moz”,而Webkit(Safari、Chrome)内核需要加上“-webkit”等。

1、Mozilla(Firefox, Flock等浏览器)
  -moz-border-radius: //简写
2、WebKit (Safari, Chrome等浏览器)
  -webkit-border-radius: //简写 3、Opera浏览器:
  border-radius: //简写 4、Trident (IE)
  IE
<9不支持border-radius;
  
IE9下没有私有格式,都是用border-radius,其写法和Opera是一样的,这里就不在重复。   为了最大程度的各浏览器(加上各种版本内核浏览器前缀)能支持border-radius属性,具体按照下边写法:   
    -moz-border-radius: none | <length>{1,4} [/ <length>{1,4} ]?   
    -webkit-border-radius: none |
<length>{1,4} [/ <length>{1,4} ]?   
    border-radius: none |
<length>{1,4} [/ <length>{1,4} ]?

  注意:border-radius一定要放置在-moz-border-radius和-webkit-border-radius后面。

技术分享

5、border-radius用法

border-radius: 水平 / 垂直   ( “/”前是指圆角的水平半径,而“/”后是指圆角的垂直半径,他们两都遵循TRBL的顺序原则。 “/”前后各自按TRBL顺序取值。)   

1、border-radius: 10px 15px 20px 30px / 20px 30px 10px 15px;    
===
  border-top-left-radius: 10px 20px;  
  border-top-right-radius: 15px 30px;
  
  border-bottom-right-radius: 20px 10px;
  
  border-bottom-left-radius: 30px 15px;
2、border-radius: 10px / 20px; 
===
  border-top-left-radius: 10px 20px;

  border-top-right-radius: 10px 20px;

  border-bottom-right-radius: 10px 20px;

  border-bottom-left-radius: 10px 20px;
3、border-radius: 10px 20px / 20px 10px;  ( top-left和bottom-right ;  top-right和bottom-left )
===
  border-top-left-radius: 10px 20px;
  border-bottom-right-radius: 10px 20px;

  border-top-right-radius: 20px 10px;

  border-bottom-left-radius: 20px 10px;
4、border-radius: 10px 20px 30px / 50px 60px;
===
  border-top-left-radius: 10px 50px;

  border-top-right-radius: 20px 60px;

  border-bottom-left-radius: 20px 60px;
  border-bottom-right-radius: 30px 50px;

注意几种特殊情况:
  1、对于border-radius还有一个内半径和外半径的区别,它主要是元素 边框值较大时,效果就很明显,当我们border-radius半径值小于或等于border的厚度时,我们边框内部就不具有圆角效果。
  2、border-radius能应用在各种元素中,但在img和table应用时会有点差别的。
    ===》 在img上应用border-radius到目前只有Firefox4.0+浏览器才正常,而在其他浏览器都不能对图片进行剪切。
技术分享
img {  border: 5px solid green;  border-radius: 15px;  }
    左图是在Safari5.0、Google Chrome 10.0、Opera11.1下的效果,我们可以看得出,图片根本就没有圆角效果,右图是在Firefox4.0下的效果,低于这个版本的和左图一样效果,如果需要达成一致效果,大家就必须放弃border-radius而采用CSS2制作圆角的老办法。

    ===》 table的样式属性border-collapse是collapse时,border-radius不能正常显示,只有border-collapse: separate;时才能正常显示。
技术分享
table {  border-collapse: collapse;  border: 2px solid red;  background: green;  border-radius: 15px;  }

 

提示:并非所有浏览器,都支持将圆角半径设为一个百分比值。因此,目前最安全的做法,就是将每个圆角边框的风格和宽度,都设为一样的值,并且避免使用百分比值。

 

整理自:(W3CPLUSCSS3的圆角Border-radius 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。