搜索
首页web前端html教程第 23 章 CSS3 边框图片效果 - 水之原

学习要点:

1.属性初探

2.属性解释

3.简写和版本

 

主讲教师:李炎恢

 

本章主要探讨 HTML5 中 CSS3 中边框图片背景的效果,通过这个新属性让边框更加的丰富多彩。

 

一.属性解释

CSS3 提供了一个新的属性集合,用这几个属性可以嵌入图片形式的边框。这样,边框就可以自定义了。

1.border-image-source      //引入背景图片地址
2.border-image-slice         //切割引入背景图片
3.border-image-width       //边框图片的宽度
4.border-image-repeat     //边框背景图片的排列方式
5.border-image-outset     //边框背景向外扩张
6.border-image               //上面五个属性的简写方式

 

二.属性解释 

要实现边框背景,我们对图片也有一定的要求,否则效果不能完全体现出来。图片可以通过九宫格的切分来了解它。我们使用 W3C 官网上教学的图片来讲解一下。

如上图所示,九宫格并不一定要求每一个格子大小都相同。当然,如果相同的话,制作边框背景就相对容易一点。比如如下这张图片:

首先,用 Photoshop 软件分析一下这个标准九宫格的总体大小和每个格子的大小。最终得出图片总大小为 81px 正方形,四个角的大小为 27px 的正方形,其余五个角也是 27px。

那么,第一步:先创建一个盒子区域,大小为 400x400 的矩形。然后设置引入边框图像。

//引入边框图像

<span style="color: #800000;">border-image-source: url(border.png);</span>

单单只有这句话,webkit 引擎下的浏览器会在盒子区块的四个角看到一丁点图像的影子。而其他浏览器什么都看不到。这是由于没有设置边框背景图像的宽度导致的。

//设置边框图像宽度,上右下左,可以设置四个值

<span style="color: #800000;">border-image-width: 81px;</span>

这里设置的是边框图像的宽度,而不是边框宽度。当你设置边框宽度,你会发现,文本会偏移。而边框图像的宽度不会挤压文本。

//设置边框的宽度

<span style="color: #800000;">border-width: 20px;</span>

以上设置完毕后,支持边框背景图片的浏览器会在四个角落铺上这张图片的完整形式。这个时候需要通过引入切割属性来配置背景图片的显示方式。

//首先,边框图像宽度设置为 27px 和一个单格宽高一致 

<span style="color: #800000;">border-image-width: 27px;</span>

//设置切割属性的大小 

<span style="color: #800000;">border-image-slice: 27;</span>

这里的 27 不需要设置 px 像素,因为它默认就是像素。设置 27 之后,我们会发现边框的四个角正好是橘红色的四个角。那么你可以逐步放大或逐步放下这个值,来体验一下它的变化。

//从 27 逐步放大到 81,四个角都慢慢缩小,各自显示一个完整的图像

<span style="color: #800000;">border-image-slice: 81;</span>

//从 27 逐步缩小到 0,发现四个角都慢慢变大,配合 fill 整体显示一个完整图像

<span style="color: #800000;">border-image-slice: 0 fill;</span>

上面只是单独设置了一个像素表示四个边切割的大小,你也可以设置百分比、浮点值或者分别设置四个变的大小。

//33.5%差不多 27

<span style="color: #800000;">border-image-slice: 33.5%;</span>

//上下设置 27,左右设置 0

<span style="color: #800000;">border-image-slice: 27 0;</span>

如果想让边框背景向外扩张,那么可以进行扩张设置。

//向外扩张 20px,也可以是浮点值,比如 2.2

<span style="color: #800000;">border-image-outset: 20px;</span>

四个角设定好之后,我们要设定四个变的显示排列方式。使用 border-image-repeat 属性,有四个值提供使用,分别如下表:

属性

说明

stretch 

指定用拉伸方式填充边框背景图。默认值。

repeat

指定用平铺方式来填充边框背景图。当图片碰到边界时,如果超过则被截断。

round

指定用平铺方式来填充边框背景图。图片会根据边框的尺寸动态调整图片的大小,直至正好可以铺满整个边框。

space

指定用平铺方式来填充边框背景图。图片会根据边框的尺寸动态调整图片的之间的间距,直至正好可以铺满整个边框。

//拉伸方式填充,当然,通过上右下左设置四个边均可

<span style="color: #800000;">border-image-repeat: stretch;</span>

//平铺填充,超过则被截断

<span style="color: #800000;">border-image-repeat: repeat;</span>

//平铺填充,动态调整图片大小直至铺满

<span style="color: #800000;">border-image-repeat: round;</span>

//平铺填充,动态调整图片的间距直至铺满 

<span style="color: #800000;">border-image-repeat: space;</span>

//另一个按钮的小例子 

<span style="color: #800000;">div </span>{<span style="color: #ff0000;">
    width</span>:<span style="color: #0000ff;"> 400px</span>;<span style="color: #ff0000;">
    height</span>:<span style="color: #0000ff;"> 40px</span>;<span style="color: #ff0000;">
    border-image-source</span>:<span style="color: #0000ff;"> url(button.png)</span>;<span style="color: #ff0000;">
    border-image-width</span>:<span style="color: #0000ff;"> 10px</span>;<span style="color: #ff0000;">
    border-image-slice</span>:<span style="color: #0000ff;"> 10 fill</span>;<span style="color: #ff0000;">
    border-image-repeat</span>:<span style="color: #0000ff;"> stretch</span>;
}

 

三.简写和版本

//border-image 简写格式很简单,具体如下:

<span style="color: #800000;">border-image: ||  [ / | / ? /  ]? || </span><span style="font-family: verdana, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 1.5; background-color: #ffffff;"> </span>

//以上是手册上摘录的,转换成实际格式如下: 

<span style="color: #800000;">border-image: url(border.png) 27/27px round;</span><span style="font-family: verdana, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 1.5; background-color: #ffffff;"> </span>

对于支持的浏览器及版本如下表:

 

Opera

Firefox

Chrome

Safari

IE

部分支持需带前缀

11.5~12.1

3.5 ~ 14

4 ~ 14

3.1 ~ 5.1

支持需带前缀

支持不带前缀

15+

15+

15+

6+

11.0+

//兼容加上前缀

<span style="color: #800000;">-webkit-border-image: url(border.png) 27/27px round;
-moz-border-image: url(border.png) 27/27px round;
-o-border-image: url(border.png) 27/27px round;
border-image: url(border.png) 27/27px round;</span>
声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
为什么HTML标签对Web开发很重要?为什么HTML标签对Web开发很重要?May 02, 2025 am 12:03 AM

htmltagsareessentialforwebdevelopmentastheyandendenhancewebpages.1)heSdefinElayout,语义和互动性。2)SemantictagsiCtagSimproveCacsibilitieAndseo.3)pose poseriblesibilityAndseoandseo.3)poser

说明将一致的编码样式用于HTML标签和属性的重要性。说明将一致的编码样式用于HTML标签和属性的重要性。May 01, 2025 am 12:01 AM

一致的HTML编码风格很重要,因为它提高了代码的可读性、可维护性和效率。1)使用小写标签和属性,2)保持一致的缩进,3)选择并坚持使用单引号或双引号,4)避免在项目中混合使用不同风格,5)利用自动化工具如Prettier或ESLint来确保风格的一致性。

如何在 Bootstrap 4 中实现多项目轮播?如何在 Bootstrap 4 中实现多项目轮播?Apr 30, 2025 pm 03:24 PM

在Bootstrap4中实现多项目轮播的解决方案在Bootstrap4中实现多项目轮播并不是一件简单的事情。虽然Bootstrap...

deepseek官网是如何实现鼠标滚动事件穿透效果的?deepseek官网是如何实现鼠标滚动事件穿透效果的?Apr 30, 2025 pm 03:21 PM

如何实现鼠标滚动事件穿透效果?在我们浏览网页时,经常会遇到一些特别的交互设计。比如在deepseek官网上,�...

HTML 视频的播放控件样式怎么修改HTML 视频的播放控件样式怎么修改Apr 30, 2025 pm 03:18 PM

无法直接通过CSS修改HTML视频的默认播放控件样式。1.使用JavaScript创建自定义控件。2.通过CSS美化这些控件。3.考虑兼容性、用户体验和性能,使用库如Video.js或Plyr可简化过程。

在手机上使用原生select会带来哪些问题?在手机上使用原生select会带来哪些问题?Apr 30, 2025 pm 03:15 PM

在手机上使用原生select的潜在问题在开发移动端应用时,我们常常会遇到选择框的需求。通常情况下,开发者倾...

在手机上使用原生select的弊端是什么?在手机上使用原生select的弊端是什么?Apr 30, 2025 pm 03:12 PM

在手机上使用原生select的弊端是什么?在移动设备上开发应用时,选择合适的UI组件是非常重要的。许多开发者�...

如何使用Three.js和Octree优化房间内第三人称漫游的碰撞处理?如何使用Three.js和Octree优化房间内第三人称漫游的碰撞处理?Apr 30, 2025 pm 03:09 PM

使用Three.js和Octree优化房间内第三人称漫游的碰撞处理在Three.js中使用Octree实现房间内的第三人称漫游并添加碰�...

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

mPDF

mPDF

mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

适用于 Eclipse 的 SAP NetWeaver 服务器适配器

适用于 Eclipse 的 SAP NetWeaver 服务器适配器

将Eclipse与SAP NetWeaver应用服务器集成。

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)