需警惕CSS3属性的书写顺序

一、不同书写顺序示例

  首先是比较聪明和值得推荐的写法:

   1. .not-a-square { 
   2.     -webkit-border-radius: 10px;  
   3.     -moz-border-radius: 10px;  
   4.     border-radius: 10px;  
   5. } 

  下面就是我们可能不怎么在意的,可能会产生问题的书写顺序:

   1. .not-a-square { 
   2.     border-radius: 10px;  
   3.     -webkit-border-radius: 10px;  
   4.     -moz-border-radius: 10px;  
   5. }

  实际上,按照我们的逻辑思考,后面的书写也应该不会产生问题啊。比如说,火狐即支持border-radius: 10px;又支持-moz-border-radius: 10px;属性,后面的overwrite前面的也没有问题啊。但是,事实上,事情不是我们想的那么简单的。

1. 很久很久以前:浏览器即不宠幸前缀CSS3也不宠幸纯情CSS3(border-radius);

2. 不久之前:浏览器只宠幸前缀CSS3,不宠幸纯情的CSS3;

3. 现在:浏览器不仅宠幸前缀CSS3属性,还宠幸纯情CSS3属性;

4. 等到以后:前缀CSS3就回乡下带孩子了,浏览器只宠幸纯情CSS3属性。

  下图就是这种趋势的生动写照。

  二、实例说明

  理想总是美好的,现实总是惨淡的。当下,webkit核心的浏览器不仅支持border-radius属性,也支持-webkit-border-radius属性,这本身没什么,只是……见下面:

   1. .not-a-square { 
   2.    // 这两个家伙干的不是同一个活   
   3.    border-radius: 30px 10px;  
   4.    -webkit-border-radius: 30px 10px;  
   5. }

  当属性超过一个参数值的时候,不同的属性产生的作用是不一样的。

  纯情的那种写法(border-radius: 30px 10px),是让box左上和右下角为30像素圆弧,左下角和右上是10像素圆弧。而那种杂碎的前缀写法(-webkit-border-radius),则box渲染为每个角都是30像素宽10像素高的圆弧。

如下图所示:

  如果您现在使用的是最新的Chrome浏览器(我的是Chrome6.0.472.62),或者是(Safari4依旧扁平)Safari5,您可以狠狠地点击这里:

<a href="http://www.itniuboke.com/article/13965.html">CSS3</a>

不同书写属性影响demo,您就能看上上面截图所示的效果了。

  三、结语

  其实Border radius不是唯一的实例,CSS3中的background-image 渐变貌似也有同样的遭遇。我想,以后会有人吧这些差异全部罗列出来的。但是,无论怎样,把“纯情”的写法放在最后压轴总是更明智的。

 

转载出处:http://www.itniuboke.com/article/13965.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值