7/11/2012, 1:48:30 AM
在css3中新增了border-image属性,用来定义边框的背景,它有很多的子属性,比较难理解与操作的便是border-image-slice属性,border-image-slice定义了如如何slice背景图像,使之以不同的方式装饰边框。
borde-image-slice属性值比较特殊,也是需要小心控制的地方。
-webkit-border-image:url(slice.png) a b c d ; /*兼容webkit引擎*/ -moz-border-image:url(slice.png) a b c d ; /*兼容gecko引擎*/ -o-border-image:url(slice.png) a b c d ; /*兼容presto引擎*/ border-image:url(slice.png) a b c d ; /*兼容标准的用法*/
首先看这个demo(下面的图都来自于demo)
a.如果你看到空白页面,很是遗憾ie系列的浏览器并不支持border-image属性,不知道到了ie10会不会支持。
b.其他内核的浏览器对border-image-slice在其私有前缀下的解释基本相同,如图
c.FF和Opera对border-image并不解释,但是Chrome却对其解释并且解释很是“标准”,而且如果你的css3代码中有标准的写法,Chrome会选择解释标准的border-image。
由上图可以看出box内部的部分全部被清空这样看着更加像是一个边框。
d.因为偶尔也会用用金山的猎豹浏览器,以前一位同时webkit内核的浏览器,应该会跟Chrome很“神似”,但是今天才发现,两个浏览器还是不一样的。
当borde-image-slice 属性值中a+c或b+d的值大于背景图的尺寸后,同样是webkit内核浏览器,Chrome和猎豹浏览器解释不同的,猎豹浏览器的解释更加倾向于从一个边框的角度去渲染呈现,而其他浏览器的呈现方式则有点死板。而且在猎豹浏览器中无论是对私有前缀-webkit和标准模式下的解释都是一样的。
e.最后说说border-image的另一个子属性repeat在标准模式下和浏览器私有属性的不同解释
上图中前者是在border-image:url(slice1.png) 27 9 27 27 repeat;下的效果,后者是-webkit(-moz/-o)-border-image:url(slice1.png) 27 9 27 27 repeat;下的效果,可以看出,各个浏览器私有属性中其repeat是从中间开始的,而在标准的css3代码下,只是repeat边框部分。