我的编程空间,编程开发者的网络收藏夹
学习永远不晚

css3 border-image边框图像的的示例分析

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

css3 border-image边框图像的的示例分析

css3 border-image边框图像的的示例分析,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

前言

对于这个border-image属性已经不是什么新奇的事情了,也是一个老生长谈的话题。这是属性从很多年前已经出现了,但一直形单影只的,似乎不被看好,但是假如你对此深入研究之,想必其用处还是多多,不过很可惜到目前为止对于浏览器支持还不比其他css3属性多,特别是IE,只有IE11以上才支持,详情请移步 border-image兼容性 。不过很好,对于纯正的现代浏览器和移动浏览器支持度还是非常牛逼哄哄的,所以今天就来详解一下这个属性的各个值。
border-image摘要
其实我[border-image属性]是用来给元素边框添加背景图像,在某些时候,利用这个 border-image 可以轻松绘制一些比较复杂的小部件。并且我是 border-image-source border-image-slice border-image-width border-image-outset border-image-repeat 的简写值。只不过为了方便简写,毕竟你懂得,我们家族 border-* 都是有简写值,假如作为新生儿没有,那看的人估计都醉了。
哦,对了,忘记跟你说了,我的作用就是用来代替 border-style 值的。值得注意的是假如 border-image 值是none的话,那么背景图像将不会显示,同时, 将会显示 border-style 的值。 那么我的详细简写值如下所示:

属性名称:border-image
值:<&lsquo;border-image-source&rsquo;> || <&lsquo;border-image-slice&rsquo;> [ / <&lsquo;border-image-width&rsquo;> | / <&lsquo;border-image-width&rsquo;>? / <&lsquo;border-image-outset&rsquo;> ]? ||<&lsquo;border-image-repeat&rsquo;>
初始值:详见各个属性
应用于:所有元素,除表单元格 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;}


如你所见,这正是我的一个简写值。请不要头晕哦,虽然是一长串的各种英文单词,但是你对我恐怕也不陌生哒  QQ表情可爱
,想想css属性当中有哪些是跟图片相关的,反正我是想到了 background 属性值了。css当中引入图像的属性的属性值不外乎有:图片地址 background-image 、图片重复 background-repeat 、图片平铺方式 background-attachment 等。因此对于边框图像也是大同小异滴啦。下面我们就一一分析这些单独的属性值。

css3 border-image边框图像的的示例分析

 
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&hellip;;第二个值为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

css3 border-image边框图像的的示例分析

 
左上角、右上角、右下角、左下角为4个橙色菱形,顶部区域、右侧区域、底部区域、左侧区域为4个土黄菱形,中间块(贱称第九区)为透明块。刚刚也说过了,这个border-image-slice就是一个切片的作用,把图像直接切开,中间不留痕迹,假如给定这个属性值: border-image-slice:27 27 27 27 那么它代表的意思是距离顶部内偏移区域27px处横切一刀

css3 border-image边框图像的的示例分析

 
接着距离右侧内偏移区域27px竖切一刀

css3 border-image边框图像的的示例分析

 
紧接着距离底部内偏移区域27px横切一刀

css3 border-image边框图像的的示例分析

 
接着距离左侧内偏移区域27px竖切一刀

css3 border-image边框图像的的示例分析

 
那么给定图像切片 border-image-slice:27 27 27 27 完整动态图如下:

css3 border-image边框图像的的示例分析

 
这几刀下来把我分成了9个部分,因此我被9宫格也就此由来

css3 border-image边框图像的的示例分析

 
所以被切割的部位都分布在盒子边框这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
}

效果:

css3 border-image边框图像的的示例分析

 
对此我的理解是如下步骤:

css3 border-image边框图像的的示例分析

 
详情请点击: 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
}


效果:

css3 border-image边框图像的的示例分析

对此我的理解是如下步骤:

详情请点击: slice切片的值比边框宽度小

因此,我所了解的四个顶角的变化其实是带有拉伸功能的,当然假如说盒子边框和被切图片宽度相等,那么这样就不会有拉伸的效果。

说说fill值

fill值是一个可选属性值,假如指定这个值,那么第九区就会出现,假如不指定,那么第九区就被外星人攻占,隐藏起来!(楼下会有demo&darr;)

两点注意:

1、slice不允许设置负值,设置负值和设置大于盒子的高度或者宽度都被100%,(楼下有demo&darr;)

2、slice切过的区域有可能会重叠,如果右切和左切的值之和&ge;盒子的宽度,那么顶部区域(5号)和底部区域(7号)为空白(楼下有demo&darr;),反之亦然。
能不能控制图片边框的宽度,而不是每次都要调试盒子边框宽度?当然是有,下面就来介绍这个 border-image-width 这个可选属性值
边框图片宽度border-image-width

我叫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成为图片边框宽度。
}

css3 border-image边框图像的的示例分析

 边框图片外凸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

css3 border-image边框图像的的示例分析

 
我叫border-image-repeat,顾名思义,我的作用就让边框背景是否重复,默认值为stretch,是拉伸的意思,4个角4个区域分别做水平和垂直方向的拉伸,来填补边框的间隙;repeat是就是让4个角4个区域做完水平和垂直方向的复制图像,做CTRL+V运动,把边框之间的空隙填满;而round[环绕]是把4个角和4个区域分成均等区域,然后用背景图片切好能铺满整个边框空隙,不能多也不能少,正好合适。听说下面有demo&darr;:

代码如下:


.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;
}

效果如下:

css3 border-image边框图像的的示例分析

 
应用
对于应用来说,这个边框图片太强大了的,随便一折腾就可以弄出奇形怪状的边框来,使得边框不在拘泥于那些传统的线框。不管你是调slice值,还是repeat值、或者是outset值都可以变化很多新花招,刚刚我们其实在做demo展示的时候已经展现出来,那么下面我就用来一个一张图片构造最简单的我们的圆弧长方形。
用到图片:

css3 border-image边框图像的的示例分析

 
效果如下:

代码如下:


border-image-repeat

关于css3 border-image边框图像的的示例分析问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注编程网行业资讯频道了解更多相关知识。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

css3 border-image边框图像的的示例分析

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

css内边框的示例分析

这篇文章主要介绍css内边框的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!1、说明内边框是用box-sizing属性设置的。box-sizing属性允许您以特定的方式定义匹配某个区域的特定元素。可通过将bo
2023-06-15

Python OpenCV图像识别的示例分析

小编给大家分享一下Python OpenCV图像识别的示例分析,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!一、人脸识别主要有以下两种实现方法:1、哈尔(Haar)级联法:专门解决人脸识别而推出的传统算法;实现步骤:创建H
2023-06-29

python中pytorch图像识别的示例分析

这篇文章将为大家详细讲解有关python中pytorch图像识别的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。一、数据集爬取现在的深度学习对数据集量的需求越来越大了,也有了许多现成的数据集可供大
2023-06-29

HTML5中Canvas图像模糊的示例分析

这篇文章给大家分享的是有关HTML5中Canvas图像模糊的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。1、最近在用h6的canvas画动画,发现图像特别模糊。后来终于找到罪魁祸首是
2023-06-09

使用Matlab处理图像的示例分析

小编给大家分享一下使用Matlab处理图像的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!小伙伴们可能会遇到这样一个情况,填写某些信息的时候不仅需要对图片
2023-06-19

PyQt5中图形视图框架的示例分析

这篇文章将为大家详细讲解有关PyQt5中图形视图框架的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。1.QGraphicsItem图元类图元可以是文本、图片,规则几何图形或者任意自定义图形。该类已
2023-06-29

Docker镜像的示例分析

这篇文章主要为大家展示了“Docker镜像的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Docker镜像的示例分析”这篇文章吧。一:思维导图二:镜像的生命周期三:镜像的组织结构四:镜像
2023-06-04

Python中图像量化处理的示例分析

小编给大家分享一下Python中图像量化处理的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!一.图像量化处理原理量化(Quantization)旨在将图像
2023-06-29

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录