一、border-image属性简介

在CSS入门阶段,我们学习了border-style属性,也知道边框只有实线、虚线等几种简单的样式。如果我们想要为边框添加漂亮的背景图片,该怎么做呢?

在CSS3中,我们可以使用border-image属性为边框添加背景图片。现在所有主流浏览器最新版本都支持border-image属性。

语法:

说明:

border-image属性需要定义3个方面的内容。

  • (1)图片路径。
  • (2)切割宽度:四条边的切割宽度,依次为上边、右边、下边、左边(顺时针)。
  • (3)平铺方式:有3种取值,分别为repeat、round和stretch。

在本节所有例子中,我们都是使用图所示的这张90px×90px的图片作为边框的背景图片。

举例:

<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title></title> <style type="text/css"> div { width:210px; height:150px; border:30px solid gray; border-image:url(img/border.png) 30 repeat; } </style> </head> <body> <div></div> </body> </html>

浏览器预览效果如下图所示。

分析:

从预览效果我们可以知道,位于4个角的数字1、3、7、9还是乖乖地位于4个角。然后4条边框的2、4、6、8会不断地平铺。

分析:

从预览效果我们可以知道,位于4个角的数字1、3、7、9还是乖乖地位于4个角。然后4条边框的2、4、6、8会不断地平铺。

对于border-image属性,我们总结如下:

  • (1)在制作边框背景图片时,应该制作4条边,中间部分需要挖空。
  • (2)边框背景图片每条边的宽度跟对应的边框宽度(即border-width)应该相同。

举例:平铺方式

<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title></title> <style type="text/css"> div { width:170px; height:110px; line-height:110px; text-align: center; border:30px solid gray; margin-top:20px; } /*第1个div平铺方式为:repeat*/ #div1{border-image:url(img/border.png) 30 repeat;} /*第2个div平铺方式为:round*/ #div2{border-image:url(img/border.png) 30 round;} /*第3个div平铺方式为:stretch*/ #div3{border-image:url(img/border.png) 30 stretch;} </style> </head> <body> <div id="div1">repeat</div> <div id="div2">round</div> <div id="div3">stretch</div> </body> </html>

浏览器预览效果如下图所示.

分析:

border-image属性的平铺方式有3种:repeat、round、stretch。

  • (1)取值为repeat时,表示4条边的小方块会不断重复,超出元素部分将会被剪切掉。
  • (2)取值为round时,表示4条边的小方块会铺满。为了铺满,边框图片会压缩或拉伸。
  • (3)取值为stretch时,表示4条边的小方块会拉伸,边长有多长就拉多长。

二、border-image的派生子属性

border-image属性可以分开,分别为4条边设置相应的背景图片,这4条边的属性如下表所示。

border-image的派生子属性
子属性 说明
border-top-image 定义上边框背景图片
border-bottom-image 定义下边框背景图片
border-left-image 定义左边框背景图片
border-right-image 定义右边框背景图片