CSS Outline 属性


CSS的 outline 属性用于在元素的边框外部绘制一条线。例如,

h1 {
    border: 10px solid black;
    outline: 10px solid orange;
}

浏览器输出

CSS Outline Example

这里,outline 属性在 h1 元素的边框外部添加了一条 10px 的实线橙色边框。

outline 属性具有以下相关属性:

  • outline-style:指定轮廓的样式
  • outline-width:指定轮廓的宽度
  • outline-color:指定轮廓的颜色
  • outline:一个简写属性,用于同时指定 outline-styleoutline-widthoutline-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;
}

浏览器输出

CSS Outline Different Values Example

上面的示例展示了 outline-style 属性不同值的输出。

注意outline-style: noneoutline-style: hidden 的区别在于,none 完全移除轮廓,而 hidden 隐藏轮廓但仍占用空间。

outline-style: hidden 更受推荐,因为它还可以保持元素的焦点并增强可访问性。


CSS outline-width 属性

outline-width 属性用于指定轮廓的宽度。

outline-width 属性值可以用长度单位(如 pxpt 等)指定,或者使用关键字 thinmediumthick 指定。

让我们看一个例子,

<!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;
}

浏览器输出

CSS Outline Width Example

注意:为了让其他所有与轮廓相关的属性正常工作,我们需要指定 outline-style 属性。


CSS outline-color 属性

outline-color 属性用于指定元素轮廓的颜色。

outline-color 属性的值可以用任何颜色格式指定,例如颜色名称、HEXHSLRGB

让我们看一个例子,

<!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 Color Example

CSS outline 简写属性

outline 简写属性用于在单个声明中指定 outline-styleoutline-widthoutline-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;
}

浏览器输出

CSS Outline Shorthand Example

在上面的例子中:

outline: 10px solid orange;

等同于:

outline-style: solid;
outline-width: 10px;
outline-color: orange;

简写 outline 属性至少需要 outline-style 值才能工作。

注意:

  • outline 属性与 border 属性不同,尽管它接受与边框相同的属性并产生类似输出。
  • border 属性不同,outline 属性没有为元素的各个侧面提供轮廓的属性。

    例如,我们可以为每个侧面提供边框,如 border-topborder-right 等,但我们不能为每个侧面提供像 outline-top 或 outline-right 这样的轮廓。
  • border 属性不同,outline 属性不是盒模型的一部分。因此,轮廓的宽度不会影响元素的大小(宽度或高度)。

我们的高级学习平台,凭借十多年的经验和数千条反馈创建。

以前所未有的方式学习和提高您的编程技能。

试用 Programiz PRO
  • 交互式课程
  • 证书
  • AI 帮助
  • 2000+ 挑战