CSS的 outline
属性用于在元素的边框外部绘制一条线。例如,
h1 {
border: 10px solid black;
outline: 10px solid orange;
}
浏览器输出

这里,outline
属性在 h1
元素的边框外部添加了一条 10px
的实线橙色边框。
outline 属性具有以下相关属性:
outline-style
:指定轮廓的样式outline-width
:指定轮廓的宽度outline-color
:指定轮廓的颜色outline
:一个简写属性,用于同时指定outline-style
、outline-width
和outline-color
我们将在下面简要介绍每个属性。
CSS outline-style 属性
outline-style
属性用于指定元素轮廓的样式。
outline-style
属性的可能值如下:
solid
:创建一条实线轮廓dotted
:创建由点组成的轮廓dashed
:创建由虚线组成的轮廓double
:创建两条平行线的轮廓groove
:创建具有雕刻感 3D 效果的轮廓ridge
:创建具有浮雕感 3D 效果的轮廓inset
:创建具有凹陷感 3D 效果的轮廓outset
:创建具有凸起感 3D 效果的轮廓none
:不显示轮廓hidden
:轮廓被隐藏
让我们看一个例子,
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<link rel="stylesheet" href="style.css" />
<title>CSS outline-style</title>
</head>
<body>
<p class="solid">outline-style: solid;</p>
<p class="dotted">outline-style: dotted;</p>
<p class="dashed">outline-style: dashed;</p>
<p class="none">outline-style: none;</p>
<p class="hidden">outline-style: hidden;</p>
</body>
</html>
/* creates a solid outline */
p.solid {
outline-style: solid;
}
/* creates a dotted outline */
p.dotted {
outline-style: dotted;
}
/* creates a dashed outline */
p.dashed {
outline-style: dashed;
}
/* no outline is created */
p.none {
outline-style: none;
}
/* hides the outline */
p.hidden {
outline-style: hidden;
}
/* adds 8px padding to all p */
p {
padding: 8px;
}
浏览器输出

上面的示例展示了 outline-style
属性不同值的输出。
注意:outline-style: none
和 outline-style: hidden
的区别在于,none
完全移除轮廓,而 hidden
隐藏轮廓但仍占用空间。
outline-style: hidden
更受推荐,因为它还可以保持元素的焦点并增强可访问性。
CSS outline-width 属性
outline-width
属性用于指定轮廓的宽度。
outline-width
属性值可以用长度单位(如 px
、pt
等)指定,或者使用关键字 thin
、medium
和 thick
指定。
让我们看一个例子,
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<link rel="stylesheet" href="style.css" />
<title>CSS outline-width</title>
</head>
<body>
<p class="first">outline-width: 4px;</p>
<p class="second">outline-width: 8px;</p>
</body>
</html>
p {
padding: 8px;
outline-style: solid;
}
p.first {
outline-width: 4px;
}
p.second {
outline-width: 8px;
}
浏览器输出

注意:为了让其他所有与轮廓相关的属性正常工作,我们需要指定 outline-style
属性。
CSS outline-color 属性
outline-color
属性用于指定元素轮廓的颜色。
outline-color
属性的值可以用任何颜色格式指定,例如颜色名称、HEX
、HSL
和 RGB
。
让我们看一个例子,
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<link rel="stylesheet" href="style.css" />
<title>CSS outline-color</title>
</head>
<body>
<p class="first">outline-color: blue;</p>
<p class="second">outline-color: orange;</p>
</body>
</html>
p {
outline-style: solid;
outline-width: 8px;
padding: 8px;
}
p.first {
outline-color: blue;
}
p.second {
outline-color: orange;
}
浏览器输出

CSS outline 简写属性
outline
简写属性用于在单个声明中指定 outline-style
、outline-width
和 outline-color
属性。
简写 outline
属性的语法如下:
outline: outline-width outline-style outline-color inherit;
让我们看一个例子,
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<link rel="stylesheet" href="style.css" />
<title>CSS outline</title>
</head>
<body>
<p>
This paragraph has a solid outline of 10px width and having orange
color.
</p>
</body>
</html>
p {
outline: 10px solid orange;
padding: 8px;
}
浏览器输出

在上面的例子中:
outline: 10px solid orange;
等同于:
outline-style: solid;
outline-width: 10px;
outline-color: orange;
简写 outline
属性至少需要 outline-style
值才能工作。
注意:
outline
属性与border
属性不同,尽管它接受与边框相同的属性并产生类似输出。
- 与
border
属性不同,outline
属性没有为元素的各个侧面提供轮廓的属性。
例如,我们可以为每个侧面提供边框,如border-top
、border-right
等,但我们不能为每个侧面提供像 outline-top 或 outline-right 这样的轮廓。 - 与
border
属性不同,outline
属性不是盒模型的一部分。因此,轮廓的宽度不会影响元素的大小(宽度或高度)。