border是一个复合属性,可以用来设置元素边框的宽度、样式和颜色。
如果只用该复合属性定义单个参数的话,那么其他两个参数的默认值会自动生效。
border-top、border-right、border-bottom和border-left用来设置四个不同方向上的边框,其他方面同border一样,不再赘述。
该属性用来定义边框的宽度,其取值可为长度值(不允许赋值),或者为关键字thin(1px)、medium(3px)和thick(5px)。
如果提供一个参数,则作用于四边;如果提供两个参数,则第一个参数作用于上下两边,第二个参数作用于左右两边;如果提供三个参数,则第一个用于上边,第二个用于左右两边,第三个用于下边;如果提供四个参数,则按照上右下左的顺序作用于四边。
如果border-style为none或者hidden,则border-width的最终值将为0。
border-top-width、border-right-width、border-bottom-width和border-left-width分别用来单独设置四边的边框宽度,其他同border-width一样,不再赘述。
该属性用来设置边框的样式,其取值如下所示。
如果提供一个参数,则作用于四边;如果提供两个参数,则第一个参数作用于上下两边,第二个参数作用于左右两边;如果提供三个参数,则第一个用于上边,第二个用于左右两边,第三个用于下边;如果提供四个参数,则按照上右下左的顺序作用于四边。
如果border-width为0,则该属性将不起作用。
border-top-style、border-right-style、border-bottom-style和border-left-style分别用来单独设置四边的边框样式,其他同border-style一样,不再赘述。
该属性用来设置边框颜色。
如果提供一个参数,则作用于四边;如果提供两个参数,则第一个参数作用于上下两边,第二个参数作用于左右两边;如果提供三个参数,则第一个用于上边,第二个用于左右两边,第三个用于下边;如果提供四个参数,则按照上右下左的顺序作用于四边。
如果border-width为0或者border-style为none,则该属性将不起作用。
border-top-color、border-right-color、border-bottom-color和border-left-style分别用来单独设置四边的边框颜色,其他同border-color一样,不再赘述。
该属性用来设置边框的圆角效果。其取值可以为长度值或者百分比,均不允许负值。
该属性的参数形式是“水平半径/垂直半径”,其中每种半径又对应1到4个参数。如果代表垂直半径的参数省略的话,则默认等于第一个参数。
针对每种半径,如果提供一个参数,则作用于四角;如果提供两个参数,则第一个参数作用于上左和下右,第二个参数作用于上右和下左;如果提供三个参数,则第一个用于上左,第二个用于上右和下左,第三个用于下右;如果提供四个参数,则按照上左、上右、下右和下左的顺序作用于四角。
border-top-left-radius、border-top-right-radius、border-bottom-right-radius和border-bottom-left-radius分别用来单独设置四角的圆角效果,其他同border-radius一样,不再赘述。
该属性用来设置元素的阴影效果。其默认值为none,表示无阴影。
除了取值为none以外,还可以取值为一系列的长度值,长度值的意义如下。
在设置长度值时,还可以加上颜色值设置阴影的颜色。如果加上inset值,则该阴影类型为内阴影,不设置inset值则为外阴影。
需要注意的是,阴影是不占据空间的。
该属性是一个复合属性,用来设置元素边框的背景图,以及背景图的分割方式,设置了背景图的边框厚度,边框背景图的扩展和边框背景图的平铺方式。
可以理解为border-image的优先级高于border设置的边框,当border-image设置的背景图不可见时,就会显示border所设置的边框。
该属性用来设置边框背景图的来源。默认取值为none,表示无背景图片。或者取值为url路径或者创建的渐变色。
该属性用来设置边框背景图的分割方式。分割的方法为根据上右下左四个方位来分割图像,把图像分成4个角、4条边和中间区域。
该属性的值为数值或者百分比(以包含块为参照进行计算),表示的是分割时四条边的宽度,中间区域不会对元素进行填充,除非加上fill关键字。
该属性用来指定使用多宽的边框来承载被裁剪后的背景图像。其默认值为1,取值可为长度值、百分比或者数值,均不允许负值。
该属性用来设置边框背景图扩展。即图像会在原来的基础上往外扩展一定的长度再显示。
其默认取值为0,可取长度值或浮点数值,均不允许负值。
该属性用来设置边框图像的填充方式。其取值如下。
如果提供两个参数,则一个用于水平方向,一个用于垂直方向。如果提供一个参数,则用于两个方向。
border相关的属性有一些特殊的使用场景,简单介绍一下。
经常看到一些网页上有图标是三角形的,这样的效果可以轻松用border来实现。将元素的宽高均设为0,然后设置元素的一边的border可见,其他边框为透明,则可以创建出一个三角形。
因为边框阴影可以设置多重,所以通过设置多重相同形状的阴影,并设置各阴影的颜色逐渐变淡或变深和定位到元素的各个方向,最后旋转元素本身就可以看到loading效果了。