CSS3 border 属性详解

CSS3中border属性有几个非常重要的子属性,本文来逐步说明。

border-image

CSS3中可以通过border-image来设置边框的背景图片,同时还有几个相关的子属性来配合使用。

属性列表:

  • border-image-source:用在边框的图片路径

  • border-image-slice:图片边框向内偏移量

  • border-image-width:图片边框的宽度

  • border-image-outset:图片边框区域超出边框的量

  • border-image-repeat:图像边框是否应平铺(repeated)、铺满(rounded)或拉伸(stretched)

这些属性可以简写在border-image中,实例如下:

1
2
3
border-image:url(border.png) 30 30 round;
-webkit-border-image:url(border.png) 30 30 round;/* Ghrome and Safari */
-o-border-image:url(border.png) 30 30 round /* Opear */

border-radius

border-radius用于给元素添加圆角边框。border-radius有四个分属性,分别是border-top-left-radiusborder-top-right-radiusborder-bottom-right-radiusborder-bottom-left-radius,按照顺时针顺序,从左上角、右上角、右下角、左下角。

常见写法:

1
border-radius: 25px;

解释:这种写法,是指四个角的圆弧水平和垂直半径都是25px,也就是说这个角是1/4个圆弧。
等价于这种写法:

1
2
3
4
border-top-left-radius:25px 25px;
border-top-right-radius:25px 25px;
border-bottom-right-radius:25px 25px;
border-bottom-left-radius:25px 25px;

border-radius:left right;

如果right的值为空,则跟left值一样。

border-radius还有一种写法是以#’/‘来区分,前面是四个角的水平半径,后面是四个角的垂直半径

1
border-radius: 25px 25px 10px 20px / 25px 25px 10px 20px;

此种写法等价于:

1
2
3
4
border-top-left-radius:25px 25px;
border-top-right-radius:25px 25px;
border-bottom-right-radius:10px 10px;
border-bottom-left-radius:20px 20px;

如果border-radius采用水平半径和垂直半径分开的写法:

  • 只写了两个值:则top-left和bottom-right共用前一个值,top-right和bottom-left共用后一个值

  • 只写了三个值:则top-left和bottom-right分别采用第一个和最后一个值,中间的值由top-right和bottom-left共用

  • 只写了一个值:则四个角共用 一个值

  • 写了四个值,则四个角按照top-left、top-right、bottom-right、bottom-left的顺序取值

box-shadow

box-shadow用来向边框添加一个或多个阴影。

语法如下:
box-shadow: h-shadow v-shadow blur spread color inset;

注释 : box-shadow 向框添加一个或多个阴影。该属性是由逗号分隔的阴影列表,每个阴影由 2-4 个长度值、可选的颜色值以及可选的 inset 关键词来规定。省略长度的值是 0。

解释:

  • h-shadow: 必需。水平阴影的位置,允许负值。

  • v-shadow: 必需。垂直阴影的位置,允许负值。

  • blur: 可选。模糊距离。

  • spread: 可选。阴影的尺寸。

  • color: 可选。阴影的颜色。

  • inset: 可选。将外部阴影(outset)改为内部阴影。

常见写法:

1
box-shadow:10px 10px 10px #aaaaaa;

CSS3 background 属性详解

CSS3中对background属性做了一些修改,本文将对这些修改做进一步的说明。

多背景图片

css3之前的background只能设置一张背景图片,本次css3将background的背景图片修改成可以使用多图片当背景.

1
background-image:url('left.jpg'),url('right.jpg'),url('right.jpg')

background-image有几种可能的取值,默认值是none。

取值:

  • none:无背景图

  • url:使用绝对或相对地址指定背景图像

  • linear-gradient:使用线性渐变创建背景图像(CSS3新增)

  • radial-gradient:使用径向(放射性)渐变创建背景图片(CSS3新增)

  • repeating-linear-gradient:使用重复的线性渐变创建背景图片(CSS3新增)

  • repeating-radial-gradient:使用重复的径向(放射性)渐变创建背景图片(CSS3新增)

background-origin

这个origin属性需要结合background-position一起使用,默认情况下,background-position是指背景图片铺开时是从content区域的左上角开始,而这个background-origin就规定了background-positionborderpaddingcontent中的哪个开始。

取值:

  • padding:背景图像相对于内边距框来定位,默认值也是padding.

  • border:背景图像相对于边框盒来定位

  • content:背景图片相对于内容框来定位

注意 : 如果设置了background-attached:fixed,则background-origin属性无效。

background-clip

此属性规定背景的裁剪区域,默认值也是有paddingbordercontent-box.
不同于background-origin,background-clip的默认值为border,也就是背景默认从边框盒开始裁剪。

background-clipbackground-origin的区别:

前者是规定背景从哪个地方开始裁剪,后者是规定背景从哪里开始绘制,也就是背景绘制时的参照点,因为background-position属性的值经常会是10px 20px这种,这里的10px,20px就必然会需要一个参照物,添加背景时先根据background-origin规定的区域做为参照物绘制,绘制完毕后根据background-clip的值来相应的裁剪。

background-size

此属性规定背景图片的大小,可能取值为:

  • length:设置背景图像的宽度和高度,第一个值为宽度,第二个值为高度,如果第二个不填,默认为auto

  • percentage:以父元素百分比来设置背景图像的宽度和高度,第一个为宽度,第二个为高度,如果第二个不填,默认值为auto

  • cover:把背景图像扩展至足够大,以使背景图片完全覆盖背景区域,**

    背景图像的某些部分可能无法显示在背景定位区域中,因为图像被放大了。**

  • contain:把背景图片扩展至最大尺寸,以使其宽度和高度完全适应内容区域。背景图片扩展至最大尺寸后,如仍未完全适应内容区域的话,多出的部分会留白。

Multiple backgrounds

可以将background的各个子属性集中写在background中,默认的顺序为:

background: background-image background-origin background-clip background-repeat background-size background-position

多重背景图像时,用逗号,隔开,例子如下:

1
background:url(image/multiple-backgrounds.png) left top no-repeat,url(img/multiple-backgrounds.png) -320px bottom no-repeat, url(img/multiple-backgrounds.png) -640px top repeat-y;