css3 border img 边框图片
摘自http://www.html-js.com/article/CSS3-tutorial-css3borderimage-frame-image-Xiangjie-on
border-image摘要
其实我[border-image属性]是用来给元素边框添加背景图像,在某些时候,利用这个 border-image可以轻松绘制一些比较复杂的小部件。并且我是 border-image-source border-image-slice border-image-widthborder-image-outsetborder-image-repeat 的简写值。只不过为了方便简写,毕竟你懂得,我们家族 border-* 都是有简写值,假如作为新生儿没有,那看的人估计都醉了。
哦,对了,忘记跟你说了,我的作用就是用来代替 border-style 值的。值得注意的是假如 border-image 值是none的话,那么背景图像将不会显示,同时, 将会显示border-style的值。 那么我的详细简写值如下所示:
| 属性名称: | <dfn id="border-image">border-image</dfn> |
|---|---|
| 值: | <‘border-image-source’> || <var><‘border-image-slice’></var> [ / <var><‘border-image-width’></var> | / <var><‘border-image-width’></var>? / <var><‘border-image-outset’></var> ]? || <var><‘border-image-repeat’></var> |
| 初始值: | 详见各个属性 |
| 应用于: | 所有元素,除表单元格 border-collapse 是 collapse外. |
| 是否继承: | 否 |
| 百分比: | N/A |
| 媒体: | visual |
| 计算值: | 详见各个属性 |
| 动画: | 详见各个属性 |
所以,我的完整写法是
.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;}
如你所见,这正是我的一个简写值。请不要头晕哦,虽然是一长串的各种英文单词,但是你对我恐怕也不陌生哒
,想想css属性当中有哪些是跟图片相关的,反正我是想到了 background 属性值了。css当中引入图像的属性的属性值不外乎有:图片地址background-image、图片重复background-repeat、图片平铺方式background-attachment等。因此对于边框图像也是大同小异滴啦。下面我们就一一分析这些单独的属性值。 
border-image有六大属性值,分别是:图片地址border-image-source、图片切片border-image-slice、图片宽度border-image-width、图片外凸border-image-outset、图片重复border-image-repeat
图片地址border-image-source
| 属性名称: | border-image-source |
|---|---|
| 值: | none | image |
| 初始值: | none |
我叫引入图片地址属性,我这个属性的属性值是比较好理解滴,因为就只有两个属性值嘛,初始值是none,假如设置了none,那么我们的盒子边框就会应用 border-style 的值;假如你想要设置一个外部链接地址的图片进来那么代码可以直接写到:
.border-image{
border:20px solid #000;
border-image-source:url(border.png); //目测我会长得很丑比 ~ .~,不信你试试
}
图片切片border-image-slice
| 属性名称: | border-image-slice |
|---|---|
| 值: | [ < number> |< percentage>]{1,4} && fill? |
| 初始值: | none |
我叫border-image-slice,指定边框图像顶部、右侧、底部、左侧内偏移量。我的没有具体的单位值,比如像px、em统统不能应用在我身上,你只要给我一个单纯的数字即可,当然了你也可以按照百分比来给我设置滴啦。我的作用就是把边框图像切成9个区域:4个角、4边区域和一个中间部位,前辈们都谦虚称作9宫格,但是我悄悄跟你说哦,假如说不应用fill这个可选属性值的话,那么中间第九块格子被当做透明不见,相当于中间那块被哪条狗吃了呢!
第一个值为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
左上角、右上角、右下角、左下角为4个橙色菱形,顶部区域、右侧区域、底部区域、左侧区域为4个土黄菱形,中间块(贱称第九区)为透明块。刚刚也说过了,这个border-image-slice就是一个切片的作用,把图像直接切开,中间不留痕迹,假如给定这个属性值:border-image-slice:27 27 27 27 那么它代表的意思是距离顶部内偏移区域27px处横切一刀

接着距离右侧内偏移区域27px竖切一刀 
紧接着距离底部内偏移区域27px横切一刀 
接着距离左侧内偏移区域27px竖切一刀 
那么给定图像切片border-image-slice:27 27 27 27完整动态图如下: 
这几刀下来把我分成了9个部分,因此我被9宫格也就此由来 
所以被切割的部位都分布在盒子边框这9个地方,如上所示。对应的,被分隔的图像只能在边框宽度(border-width)内活动,什么意思呢,比如盒子边框为border-width:54px 分割图片为border-image-slice:27,因为图像4个顶角的宽度和高度都只有27px,但是盒子的边框是54px,因此图片就要被水平方向和垂直方向拉伸到切好跟盒子边框宽度等同,即27px的图像拉伸到54px停止,再往前就不行了!这点上,跟 鑫哥 的解释有点不太一样,因为他觉得这个是视觉中盲点,被分隔的顶角图像只是分配到边框的4个顶角,不会平铺,不会重复、不会拉伸(这点跟我说得不符合),引用原文如下:
橙红色的四个边角的菱形区域称为“角边框图片”,在border-image中,角边框图片是没有任何展示效果的,不会平铺,不会重复,也不会拉伸,有点类似于视觉中盲点的意思。
为了证明我的观点,我用了两个demo来展示一下,
demo1:当盒子边框宽度比被切图片边框大的时候,如下代码
.border-image{
border:54px solid #000; //盒子边框为54px
border-image-source:url(border.png);
border-image-slice:27 27 27 27; //边框图片被切成9个区域,其中4个顶角的大小为 27*27px
}
效果:

对此我的理解是如下步骤:
详情请点击:slice切片的值比边框宽度大
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↓),反之亦然。 更多详情,请各位爷轻戳:demo
css3 border img 边框图片的更多相关文章
- CSS3的新增边框属性
一.CSS3 新增的边框属性 属性 版本 简介 border-image CSS3 设置或检索对象的边框使用图像来填充 border-image-source CSS3 设置或检索对象的边框是否用图像 ...
- 第 23 章 CSS3 边框图片效果
学习要点: 1.属性初探 2.属性解释 3.简写和版本 主讲教师:李炎恢 本章主要探讨 HTML5 中 CSS3 中边框图片背景的效果,通过这个新属性让边框更加的丰富多彩. 一.属性解释 CSS3 提 ...
- Retina视网膜屏中CSS3边框图片像素虚边的问题
虽然CSS3新增了这个功能,但是在W3school里面并没有给出具体详细的解释,还好网上不乏大神给你我们很全面的解释其中的原理-css3:border-image边框图像详解 边框图片的原理是四个角不 ...
- CSS3之边框图片border-image
CSS3中有关border的属性,还有很多,今天我将为大家介绍一个很好玩的属性——Border-image.有了CSS3之边框图片Border-image,我们可以轻松搞定圆角,轻松搞定很多之前难搞的 ...
- 第八十节,CSS3边框图片效果
CSS3边框图片效果 学习要点: 1.属性初探 2.属性解释 3.简写和版本 本章主要探讨HTML5中CSS3中边框图片背景的效果,通过这个新属性让边框更加的丰富多彩. 一.属性解释 CSS3 ...
- CSS3 02. 边框、边框圆角、边框阴影、边框图片、渐变、线性渐变、径向渐变、背景、过渡transition、2D转换
边框圆角 border-radius 每个角可以设置两个值,x值.y值 border-top-left-radius:水平半径 垂直半径 border-radius:水平半径/垂直半径 border- ...
- CSS3总结一:border(边框)
Border-CSS1的属性 Border-CSS1:border Border-CSS1:border-style Border-CSS1:border-width Border-CSS1:bord ...
- CSS3边框图片-像素虚边的问题
虽然CSS3新增了这个功能,但是在W3school里面并没有给出具体详细的解释,还好网上不乏大神给你我们很全面的解释其中的原理-css3:border-image边框图像详解 边框图片的原理是四个角不 ...
- 【CSS3】---为边框应用图片 border-image
为边框应用图片 border-image 顾名思义就是为边框应用背景图片,它和我们常用的background属性比较相似.例如: background:url(xx.jpg) 10px 20px no ...
随机推荐
- HDU1023 Train Problem II【Catalan数】
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1023 题目大意: 一列N节的火车以严格的顺序到一个站里.问出来的时候有多少种顺序. 解题思路: 典型 ...
- android缩放动画的两种实现方法
在android开发.我们会常常使用到缩放动画,普通情况下缩放动画有两种实现方式.一种是直接通过java代码去实现,第二种是通过配置文件实现动画,以下是两种动画的基本是用法: Java代码实现: // ...
- 对AWS的计费有点糊涂
对AWS的计费有点糊涂 今天收到亚马逊的账单,就两笔 1. US West (Oregon) Region Elastic IP Addresses $0.005 per Elastic IP ...
- setting.system-全局属性的设定
SystemProperties跟Settings.System 1 使用 SystemProperties.get如果属性名称以“ro.”开头,那么这个属性被视为只读属性.一旦设置,属性值不能改变. ...
- Font Awesome 图标如何使用
Font Awesome 图标如何使用 一.总结 一句话总结:Font Awesome字体图标非常好用,直接引入font-awesome.css,然后就可以直接使用了,使用的时候是用的i标签. 1.字 ...
- amazeui学习笔记一(开始使用3)--兼容性列表compatibility
amazeui学习笔记一(开始使用3)--兼容性列表compatibility 一.总结 1.不要用ie做前端测试,不要碰ie,尽量用google 浏览器: 按照微软官方的说法,IE 开发者工具中的浏 ...
- 自己动手开发jQuery插件全面解析 jquery插件开发方法
jQuery插件的开发包括两种: 一种是类级别的插件开发,即给jQuery添加新的全局函数,相当于给jQuery类本身添加方法.jQuery的全局函数就是属于jQuery命名空间的函数,另一种是对象级 ...
- 前端面试题(计算机网络/http/https)
(前端面试题大全,持续更新) 输入url的一系列过程 http缓存(缓存生效的情况),拓展下 get与post的异同,POST一般可以发送什么类型的文件 jsonp有什么不好的地方 http请求头(h ...
- ASP.NET MVC 入门4、Controller与Action
原帖地址:http://www.cnblogs.com/QLeelulu/archive/2008/10/04/1303672.html Controller是MVC中比較重要的一部分.差点儿全部的业 ...
- SpringMVC,采用的是SpringJDBC
上一次复习搭建了SpringMVC+Mybatis,这次搭建一下SpringMVC,采用的是SpringJDBC,没有采用任何其他的ORM框 架,SpringMVC提供了一整套的WEB框架,所以如果想 ...