CSS 边框(Border)和轮廓(outline)

1. CSS 边框属性

属性描述
border简写属性,用于把针对四个边的属性设置在一个声明。
border-style用于设置元素所有边框的样式,或者单独地为各边设置边框样式。
border-width

简写属性,用于为元素的所有边框设置宽度,或者单独地为各边边框设置宽度。可以指定长度值,比如 2px 或 0.1em(单位为 px, pt, cm, em 等),或者使用 3 个关键字之一,它们分别是 thick 、medium(默认值) 和 thin。

border-color简写属性,设置元素的所有边框中可见部分的颜色,或为 4 个边分别设置颜色。
border-bottom简写属性,用于把下边框的所有属性设置到一个声明中。
border-bottom-colo设置元素的下边框的颜色。
border-bottom-style设置元素的下边框的样式。
border-bottom-width设置元素的下边框的宽度。
border-left简写属性,用于把左边框的所有属性设置到一个声明中。
border-left-color设置元素的左边框的颜色。
border-left-style设置元素的左边框的样式。
border-left-width设置元素的左边框的宽度。
border-right简写属性,用于把右边框的所有属性设置到一个声明中。
border-right-color设置元素的右边框的颜色。
border-right-style设置元素的右边框的样式。
border-right-width设置元素的右边框的宽度。
border-top简写属性,用于把上边框的所有属性设置到一个声明中。
border-top-color设置元素的上边框的颜色。
border-top-style设置元素的上边框的样式。
border-top-width设置元素的上边框的宽度。

1.1 边框样式

边框样式属性指定要显示什么样的边界。border-style属性用来定义边框的样式。

它拥有以下几个值:

  • none: 默认无边框
  • dotted: 定义一个点线边框
  • dashed: 定义一个虚线边框
  • solid: 定义实线边框
  • double: 定义两个边框。 两个边框的宽度和 border-width 的值相同
  • groove: 定义3D沟槽边框。效果取决于边框的颜色值
  • ridge: 定义3D脊边框。效果取决于边框的颜色值
  • inset:定义一个3D的嵌入边框。效果取决于边框的颜色值
  • outset: 定义一个3D突出边框。 效果取决于边框的颜色值

2.2 边框宽度

通过 border-width 属性为边框指定宽度。为边框指定宽度有两种方法:可以指定长度值,比如 2px 或 0.1em(单位为 px, pt, cm, em 等),或者使用 3 个关键字之一,它们分别是 thick 、medium(默认值) 和 thin。

2.3 边框颜色

border-color属性用于设置边框的颜色。可以设置的颜色,有三种方法指定颜色:

  • name - 指定颜色的名称,如 "red"
  • RGB - 指定 RGB 值, 如 "rgb(255,0,0)"
  • Hex - 指定16进制值, 如 "#ff0000"

2.4  边框单独设置

border属性可以设置边框宽度,边框样式和边框颜色

border:5px solid red;
//宽度5px,样式solid实线,边框颜色红色。
//border:border-width border-stytle border-color

因为边框有四个边,所以边框分为四部分。可以单独设置每个边的样式。分为top,right,bottom,left四部分。

各个属性可以有1-4个值:

1个属性值:默认全部边框是这个属性值

2个属性值:默认上和底的边框属性为第一个值,左右边框的属性为第二个值。

3个属性值:上边框是第一个值,左右边框是第二个之,底边框是第三个值。

4个属性值:分别是上,右,底,左边框的属性值。

2. CSS 轮廓

轮廓是绘制于元素周围的一条线,位于边框边缘的外围,可起到突出元素的作用,指定元素轮廓的样式、颜色和宽度。

outline是不占空间的,既不会增加额外的width或者height(这样不会导致浏览器渲染时出现reflow或是repaint)。

属性说明
outline在一个声明中设置所有的轮廓属性outline-color
outline-style
outline-width
inherit
outline-color 设置轮廓的颜色color-name
hex-number
rgb-number
invert
inherit
outline-style 设置轮廓的样式

none
dotted
dashed
solid
double
groove
ridge
inset
outset
inherit

outline-width 设置轮廓的宽度thin
medium
thick
length
inherit

与边框类似,可参考上面边框属性