css3学习之border-image

目前我测试的浏览器有Firefox,chrome可以支持,ie8  360 遨游都是ie内核均不支持,据说safari是支持的,可我的 i pod touch不在身边,没法测试了

全部代码如下

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>css3 9分格测试</title>
<style type="text/css">
.test{
width:200px;
height:100px;
-webkit-border-image:url(window.png) 14 14 14 14 stretch stretch;
-moz-border-image:url(window.png) 14 14 14 14 stretch stretch;
border-width: 14px 14px 14px 14px;
}
</style>
</head>

<body>
<div class="test">测试</div>
</body>
</html>

 

用到的图片下载地址 点击打开链接

 

下面讲一下border-image用法:

上面代码中的

-webkit-border-image是为了支持chrome和safari,因为这2个浏览器都是以webkit为核心

 -moz-border-image是为了支持firefox浏览器

 

border-width: 14 14px;  是为了设置4个边框的值,本来应该是用border-image-width设置的,可是目前这个设置是无效的,只能用border-width设置,完整的写法是 border-width:14px 14px 14px 14px,也是按照顺时针 上右下左 来设置的 ,上下一样的就可以并写,左右一样也可以并写

 

url(window.png) 14 14 14 14 stretch stretch

url()是设置图片路径,后面4个数字是上右下左的距离,也就是取4个顶角用的,这里要注意只能是纯数字不可以加px并且这个值不可以大过图片的高和宽

最后面的两个stretch stretch分别是设置水平和垂直方向对背景图片的处理方式,这里说的背景图片是指,4个顶角被截取后剩余的部分,也就是没有转角的直线部分

比如我的图片是100*100的,我设置的4个转角是14高宽,那么剩余的部分就是100-14*2=72,这个部分是用来被指派去作为背景图片的

 

借助这张图可以理解,4个顶角就是图中 左上,右上,左下, 右下,4个被用来做背景图的就是 上 下 左 右 分别在两头转角中间部分的图片

 

对背景图片处理方式有3种   拉伸 stretch 重复 repeat 平铺 round  默认是拉伸 stretch

 

拉伸 stretch 很好理解,就是把原来的背景图以原来的宽度拉伸到容器需要的宽度

火狐firefox下的表现

 谷歌chrome下的表现

 

重复 repeat 也好理解,就是把原来的宽度copy多份一直到容器的边缘(背景图片的默认宽度是不变的,比如72)

这样可能造成的结果如下(实际上发现,firefox和chrome的表现结果是不一致的)

火狐firefox下的表现

谷歌chrome下的表现

 

虽然都是把背景图片以默认宽度去填充,但是貌似起始位置和填充方式是不同的,火狐的应该是按照我的理解去做的,但是chrome好像就不太好理解

 

最后说平铺 round

平铺大致上和重复repeat是差不多,区别就是在copy背景图去填充容器的时候,他会改变背景图默认的宽度高度去适应容器 ,也就是说不是以72去copy,而是以要填充的容器的大小去改变背景图片的大小,也就是说重复的话,可能原来72的背景图复制3份不够填充,但是4份又超过容器宽度,那么最后是3个多一点,也就是说你看到的有不完整的一份copy,而平铺的话则不会,因为背景图已经被改变了宽度去适应容器了,最后看到的一定是个整数

最后的视觉效果如下

火狐firefox下的表现(请仔细对比上面使用重复 repeat的那张图,第三条红色的分界线是清晰的,而这张是模糊的,说明大小已经被改变)

谷歌chrome下的表现(请对比上面使用重复 repeat的那张图,应该是一模一样的)

 

firefox使用平铺后,改变了背景图大小,导致灰色和红色之间的分界线模糊了

而chrome好像重复和平铺是一个效果。。。所以谷歌的支持还是不够完美

 

结论就是,目前只有火狐是完美支持了这个CSS3的新特性

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值