首页 web前端 html教程 CSS3 border-image介绍_html/css_WEB-ITnose

CSS3 border-image介绍_html/css_WEB-ITnose

Jun 21, 2016 am 08:49 AM

CSS3里border边框属性做了大幅扩展,其中border-image这个属性(顾名思义,就是可以给边框添加图片)理解和使用起来有点难度。本篇就介绍一下border-image。

先从基本的语法开始入手,例如border-image: url(border.png) 26 repeat stretch;。可以看出分成三个部分:url,剪裁位置,显示方式

首先是url,可以使用绝对或相对路径来加载边框图片,比较简单就不啰嗦了。

其次是剪裁位置,使用TRBL原则(top-right-bottom-left),上例中26就表示上右下左都剪裁26px。你可以设成26 52,就表示上下剪裁26px,左右剪裁52px。你也可以设成10 15 20 25表示上10px,右15px,下20px,左25px位置开始剪裁。单位不指定的话,默认是px像素,你也可以设成%百分比。比如一张50px * 50px的图片,你设成20%,就表示上右下左都剪裁10px。

经过上右下左剪裁后,好好一张图片就成了9宫格的样子。(9宫格大家都知道的吧?锤子手机界面就是9宫格)。一图胜千言

剪裁前该图片的尺寸是78px * 78px

经过border-image: url(border.png) 26;剪裁后成了9宫格

9宫格分为9个部分(这不是废话么…):上右,上中,上左,中右,中中,中左,下右,下中,下左。经剪裁后,9宫格最中心的部分,即中中,不会被显示出来,会被丢弃。能显示的就是9宫格周围那一圈。其中四个角(图中红色菱形部分)就分别固定在border的四个角。即上右部分就显示在border的右上角,同理上左,下右,下左部分就分别显示在border的左上角,右下角,左下角。剩下4个部分上中,中右,中左,下中(图中蓝色菱形部分)的显示效果需要结合显示方式。

显示方式分stretch拉伸,repeat重复,round平铺。默认值是stretch拉伸。你需要对9宫格的上中和下中设置水平显示方式,对中右和中左设置垂直显示方式。

stretch拉伸最容易理解。但round平铺和repeat重复比较搞,有什么区别呢?round会改变9宫格部分的原始尺寸,而repeat重复会保留9宫格部分的原始尺寸,然后居中开始往两边无脑重复。

比如水平平铺(9宫格里上中,下中部分平铺),垂直拉伸(9宫格里中右,中左部分拉伸),所谓一图胜千言:

.border-image {    width: 120px;    height: 80px;    border: 26px solid;    border-image: url(border.png) 26 round stretch;}<div class="border-image"></div>
登录后复制

垂直stretch拉伸效果一目了然。水平round平铺会改变9宫格部分的原始尺寸,例中div长度是120px,9宫格裁剪后一个蓝色菱形是26px,因此可以显示4.6个蓝色菱形,四舍五入会显示5个蓝色菱形,每个菱形被缩小成了24px。

那我们试试将水平改成repeat重复,看看有什么差别,所谓一图胜千言:

.border-image {    width: 120px;    height: 80px;    border: 26px solid;    border-image: url(border.png) 26 repeat stretch;}<div class="border-image"></div>
登录后复制

repeat重复会保留9宫格部分的原始尺寸(每个蓝色菱形仍旧26px),然后居中开始往两边无脑重复,最终显示4.6个蓝色菱形

水平和垂直如果是同样值,不必重复敲代码:border-image: url(border.png) 26 round;即可。等价于border-image: url(border.png) 26 round round;。因为显示方式的默认值是stretch拉伸。所以border-image: url(border.png) 26;等价于border-image: url(border.png) 26 stretch stretch;

用法介绍完了,有什么用呢?这就得发挥想象力了。比如一些漂亮的页面效果。原始png图:

用border-image给div的边框加上该图片后,该div的效果:

最后根据Can I Use显示该属性在IE上有兼容性问题,只有IE11才开始支持。(对于IE,或曰对于微软我早已无力吐槽)

其他浏览器最新版,直接用border-image没问题。但旧版需要加上前缀,参考MDN通常这样写:

-moz-border-image:url("border.png") 30 30 repeat; /* Old Firefox */ -webkit-border-image:url("border.png") 30 30 repeat; /* Safari */ -o-border-image:url("border.png") 30 30 repeat; /* Opera */ border-image:url("border.png") 30 30 repeat;
登录后复制
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解锁Myrise中的所有内容
4 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

&gt; gt;的目的是什么 元素? &gt; gt;的目的是什么 元素? Mar 21, 2025 pm 12:34 PM

本文讨论了HTML&lt; Progress&gt;元素,其目的,样式和与&lt; meter&gt;元素。主要重点是使用&lt; progress&gt;为了完成任务和LT;仪表&gt;对于stati

&lt; datalist&gt;的目的是什么。 元素? &lt; datalist&gt;的目的是什么。 元素? Mar 21, 2025 pm 12:33 PM

本文讨论了html&lt; datalist&gt;元素,通过提供自动完整建议,改善用户体验并减少错误来增强表格。Character计数:159

HTML5中跨浏览器兼容性的最佳实践是什么? HTML5中跨浏览器兼容性的最佳实践是什么? Mar 17, 2025 pm 12:20 PM

文章讨论了确保HTML5跨浏览器兼容性的最佳实践,重点是特征检测,进行性增强和测试方法。

&lt; meter&gt;的目的是什么。 元素? &lt; meter&gt;的目的是什么。 元素? Mar 21, 2025 pm 12:35 PM

本文讨论了HTML&lt; meter&gt;元素,用于在一个范围内显示标量或分数值及其在Web开发中的常见应用。它区分了&lt; meter&gt;从&lt; progress&gt;和前

我如何使用html5&lt; time&gt; 元素以语义表示日期和时间? 我如何使用html5&lt; time&gt; 元素以语义表示日期和时间? Mar 12, 2025 pm 04:05 PM

本文解释了HTML5&lt; time&gt;语义日期/时间表示的元素。 它强调了DateTime属性对机器可读性(ISO 8601格式)的重要性,并在人类可读文本旁边,增强Accessibilit

如何使用HTML5表单验证属性来验证用户输入? 如何使用HTML5表单验证属性来验证用户输入? Mar 17, 2025 pm 12:27 PM

本文讨论了使用HTML5表单验证属性,例如必需的,图案,最小,最大和长度限制,以直接在浏览器中验证用户输入。

视口元标签是什么?为什么对响应式设计很重要? 视口元标签是什么?为什么对响应式设计很重要? Mar 20, 2025 pm 05:56 PM

本文讨论了视口元标签,这对于移动设备上的响应式Web设计至关重要。它解释了如何正确使用确保最佳的内容缩放和用户交互,而滥用可能会导致设计和可访问性问题。

&lt; iframe&gt;的目的是什么。 标签?使用时的安全考虑是什么? &lt; iframe&gt;的目的是什么。 标签?使用时的安全考虑是什么? Mar 20, 2025 pm 06:05 PM

本文讨论了&lt; iframe&gt;将外部内容嵌入网页,其常见用途,安全风险以及诸如对象标签和API等替代方案的目的。

See all articles