04. CSS3边框 为边框添加图片 border-image

顾名思义就是为边框应用背景图片,它和我们常用的background属性比较相似。例如:

background:url(xx.jpg) 10px 20px no-repeat;

但是又比背景图片复杂一些。

想象一下:一个矩形,有四个边框。如果应用了边框图片,图片该怎么分布呢? 图片会自动被切割分成四等分。用于四个边框。

可以理解为它是一个切片工具,会自动把用做边框的图片切割。怎么切割呢?为了方便理解,做了一张特殊的图片,由 9 个矩形(70*70 像素)拼成的一张图(210*210 像素),并标注好序号,是不是像传说中的九宫图,如下:

CSS3 边框 为边框添加图片 border-image
我们把上图当作边框图片 来应用一下, 看一看是什么效果
根据border-image的语法:
border-image 的语法

#border-image{
   background:#F4FFFA;
   width:210px; height:210px; border:70px solid #ddd;
   border-image:url(borderimg.png) 70 repeat  
}

效果图:
CSS3 边框 为边框添加图片 border-image

从序号可以看出 div 的四个角分别对应了背景图片的四个角。而 2,4,6,8 被重复。5 在哪?因为是从四周向中心切割图片的所以,5 显示不出来。而在 chrome 浏览器中 5 是存在的,下图的样子:

CSS3 边框 为边框添加图片 border-image

repeat的意思就是重复,目前因为是刚好被整除,效果看不出来。如果改下 DIV 的宽高,再来看重复的效果:

repeat 重复的效果

边角部分为裁掉了,可见repeat就是一直重复,然后超出部分剪裁掉,而且是居中开始重复。

Round 参数:Round可以理解为圆满的铺满。为了实现圆满所以会压缩(或拉伸);

#border-image {
     width:170px;
     height:170px;
     border:70px solid;
     border-image:url(borderimg.png) 70 round;
 }

效果图:

Round 参数

可见图片被压扁了。

Stretch 很好理解就是拉伸,有多长拉多长。有多远“滚”多远。

border-image:url(borderimg.png) 70 stretch

效果图:

Stretch 属性效果

2,4,6,8 分别被拉伸显示。

注意:Chrome 下,中间部分也会被拉伸,webkit 浏览器对于round属性和repeat属性似乎没有区分,显示效果是一样的。

Firefox 26.0 下是可以准确区分的。

「点点赞赏,手留余香」

0

给作者打赏,鼓励TA抓紧创作!

微信微信 支付宝支付宝

还没有人赞赏,快来当第一个赞赏的人吧!

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
码云笔记 » 04. CSS3边框 为边框添加图片 border-image

发表回复