首页 / CSS 入门教程 / 轮廓outline

CSS 入门教程

轮廓outline

本教程共 44 篇 · 第 13 篇 · 更新于 2026-07-29 · 约 8 分钟阅读

outline轮廓边框区别outline-offset

13. 轮廓outline

本节目标:掌握 outline 属性的用法,理解轮廓与边框的区别。

轮廓是什么

轮廓是绘制在元素边框外围的一条线。它不占据空间,也不影响元素尺寸。

.box {
  border: 2px solid #333;
  outline: 2px solid red;
}

上面这段代码,盒子有一个 2px 的灰色边框,外面再套一个 2px 的红色轮廓。

轮廓与边框的区别

轮廓和边框看起来很像,但有几个关键区别:

特性边框 border轮廓 outline
位置贴着元素边缘画在边框外侧
占空间占据空间,影响尺寸不占空间,不影响尺寸
形状跟随 border-radius跟随 border-radius(现代浏览器)
单边可以单独设置四边只能画完整一圈
用途装饰、分隔元素突出显示、焦点提示

现代浏览器中,outline 会跟随 border-radius 显示圆角效果。但在一些旧版本浏览器中可能显示为矩形。

轮廓三要素

和边框一样,轮廓也由三部分组成:

.box {
  outline-style: solid;   /* 样式 */
  outline-width: 3px;     /* 宽度 */
  outline-color: red;     /* 颜色 */
}

轮廓样式 outline-style

.dotted { outline-style: dotted; }   /* 点线 */
.dashed { outline-style: dashed; }   /* 虚线 */
.solid  { outline-style: solid; }    /* 实线 */
.double { outline-style: double; }   /* 双线 */
.none   { outline-style: none; }     /* 无轮廓 */

轮廓宽度 outline-width

.thin   { outline-width: thin; }     /* 约 1px */
.medium { outline-width: medium; }   /* 约 3px */
.thick  { outline-width: thick; }    /* 约 4px */
.px     { outline-width: 5px; }      /* 精确控制 */

轮廓颜色 outline-color

.red  { outline-color: red; }
.blue { outline-color: #3498db; }
.inv  { outline-color: invert; }  /* 反色,自动对比 */

invert 是一个特殊值,它会自动选择与背景对比明显的颜色。常用于无障碍场景。

简写属性 outline

和 border 一样,outline 也支持简写:

/* outline: 宽度 样式 颜色 */
outline: 2px solid red;

/* 只写样式,宽度和颜色用默认值 */
outline: solid;

样式必须写

和 border 一样,outline-style 必须设置。不写样式,轮廓不会显示。

轮廓偏移 outline-offset

outline-offset 可以在轮廓和边框之间加一段间距:

.box {
  border: 2px solid #333;
  outline: 2px solid red;
  outline-offset: 10px;  /* 轮廓往外偏移 10px */
}

这段间距是透明的,会露出底色。

实际用途

轮廓最常见的用途是表单元素的焦点提示:

/* 输入框获得焦点时的蓝色光圈 */
input:focus {
  outline: 2px solid #3498db;
  outline-offset: 2px;
}

浏览器默认会给焦点元素加轮廓,这是无障碍设计的重要部分。

不要轻易去掉焦点轮廓

很多开发者会写 outline: none 去掉默认的焦点光圈。这对键盘用户不友好。如果要自定义,记得提供替代的焦点样式。