在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
我的作风:首先给大家作自我介绍 hello,大家好,我叫小黑,也叫xiaoho,目前喜欢并从事写页面。因为不喜欢在那些类似BBS型的论坛上发帖,所以之前在 html-js 上发表几篇戳文,现在申请了前端观察打字员,在这里谢谢神飞童鞋,虽然我不懂他是干嘛的~不过为什么选择在这里发表文章的缘由就是下面这句话:
复制代码 代码如下:.border-image-all{ border:27px solid #000; border-image:url(http://img.xiaoho.com/2014/09/border.png) 27 27 27 27 fill/27 27 27 27/27px 27px 27px 27px repeat;} 如你所见,这正是我的一个简写值。请不要头晕哦,虽然是一长串的各种英文单词,但是你对我恐怕也不陌生哒 QQ表情可爱 ,想想css属性当中有哪些是跟图片相关的,反正我是想到了 background 属性值了。css当中引入图像的属性的属性值不外乎有:图片地址 background-image 、图片重复 background-repeat 、图片平铺方式 background-attachment 等。因此对于边框图像也是大同小异滴啦。下面我们就一一分析这些单独的属性值。
复制代码 代码如下:.border-image{ border:20px solid #000; border-image-source:url(border.png); //目测我会长得很丑比 ~ .~,不信你试试 } 图片切片border-image-slice
第一个值为number,即纯数字作为单位计量,如1,2,3…;第二个值为percentage,即百分比作为单位;{1,4}表示前面的数字最少出现一次,最多出现4次,如 border-image-slice:27 border-image-slice:27 27 border-image-slice:27 27 27 border-image-slice:27 27 27 27 都是可以的,这个和 margin 的值大同小异,假如你还不懂这些缩写值具体代表什么,那么你不妨去看看前段时间写的一篇关于 margin的简写值 ,fill为可选属性值,假如指定,那么中间第九块不是透明块,假如不指定,那么为透明图片处理。 你们一定是很好奇,我具体是怎么工作机制的呢,就算csser指定了几个数字上去,但是压根就不懂他是怎么工作的,那就呵呵啦。所以下面带来详解: 图片用了w3c指定专用产品~一个81px的正方形位图,9个菱形图案,每个菱形图案为27*27px 复制代码 代码如下:.border-image{ border:54px solid #000; //盒子边框为54px border-image-source:url(border.png); border-image-slice:27 27 27 27; //边框图片被切成9个区域,其中4个顶角的大小为 27*27px } 效果: demo2: 当盒子边框宽度比被切图片边框小的时候,如下代码 复制代码 代码如下:.border-image{ border:14px solid #000; //盒子边框为14px border-image-source:url(border.png); border-image-slice:27 27 27 27; //边框图片被切成9个区域,其中4个顶角的大小为 27*27px } 效果: 对此我的理解是如下步骤: 详情请点击: slice切片的值比边框宽度小 因此,我所了解的四个顶角的变化其实是带有拉伸功能的,当然假如说盒子边框和被切图片宽度相等,那么这样就不会有拉伸的效果。 说说fill值 fill值是一个可选属性值,假如指定这个值,那么第九区就会出现,假如不指定,那么第九区就被外星人攻占,隐藏起来!(楼下会有demo↓) 两点注意: 1、slice不允许设置负值,设置负值和设置大于盒子的高度或者宽度都被100%,(楼下有demo↓) 2、slice切过的区域有可能会重叠,如果右切和左切的值之和≥盒子的宽度,那么顶部区域(5号)和底部区域(7号)为空白(楼下有demo↓),反之亦然。 我叫border-image-width,我的作用就是代替盒子本身的边框宽度border-width。假如指定,那么边框图片宽度就由我来做主,假如不指定,那么图片边框宽度就由盒子的边框宽度来固定。我可以用具体像素、数字(表示几倍)和百分比来表示,最少1个值,最多4个值,分别代表上右下左图片边框宽度,注意哦,相关代码如下: 复制代码 代码如下:.border-image{ border:20px solid #000; //盒子边框宽度为20px border-image-source:url(border.png); border-image-width:27px 1 10% 27px; //边框图片宽度设置为top:27px,right:1倍,bottom:10%,left:27px,因此这些值将代替20px成为图片边框宽度。 } 边框图片外凸border-image-outset 我叫border-image-outset,我的作用就让边框背景延伸到盒子外。有两个属性值length和number,前者是具体的像素单位,后者是数字,最少1个值,最多4个,分别代表上右下左图片边框向外延伸的距离,相关代码如下: 复制代码 代码如下:.border-image{ border:27px solid #000; //盒子边框宽度为27px border-image-source:url(border.png); border-image-outset:27px 27px 27px 27px; //边框图片向设置为27px,那么背景图将会从盒子最外边界向外上右下左各延伸27px。 } border-image-outset延伸之前和延伸之后 边框图片重复border-image-repeat 复制代码 代码如下:.border-image-stretch{ border:27px solid #000; border-image-source:url(http://img.xiaoho.com/2014/09/border.png); border-image-slice:27 27 27 27; border-image-repeat:stretch; }/*拉伸*/ .border-image-repeat{ border:27px solid #000; border-image-source:url(http://img.xiaoho.com/2014/09/border.png); border-image-slice:27 27 27 27; border-image-repeat:repeat; }/*重复*/ .border-image-round{ border:27px solid #000; border-image-source:url(http://img.xiaoho.com/2014/09/border.png); border-image-slice:27 27 27 27; border-image-repeat:round; }/*环绕*/ 效果如下: 复制代码 代码如下:border-image-repeat 更多详细demo,请点击: 仅仅是图片宽度改变demo展示 结语 好了,就这么多了,这个属性目前对于IE来说真是渣渣,但是手机端上的兼容性还是非常友好的,假如你不想用老旧的线来构造一个边框的话,那么就换一张图片来构造丰富的边框样式吧,你会发现,css3的世界真是非常强大的。
|
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论