大纲

Avatar of Sara Cope
Sara Cope

DigitalOcean 为您旅途的每个阶段提供云产品。 立即开始使用 $200 免费积分!

CSS 中的 outline 属性在元素外部绘制一条线。 它类似于 border,但

  1. 它始终围绕所有边,您无法指定特定边
  2. 它不是 盒子模型 的一部分,因此它不会影响元素或相邻元素的位置(非常适合调试!)

其他一些小细节包括它不尊重 border-radius(我认为这很有道理,因为它不是边框),并且它不总是矩形的。 例如,如果轮廓围绕具有不同字号的内联元素,Opera 将在整个元素周围绘制一个交错的框。

它通常用于可访问性目的,以在使用 Tab 键导航时突出显示链接,而不影响定位,并且以不同于悬停的方式。

a:focus {
  outline: 1px dashed red;
}

简写

outline: [ <outline-width> || <outline-style> || <outline-color> ] | inherit

它采用与边框相同的属性,但使用“outline-”代替。

以上简写可以写成

a:focus {
  outline-width: 1px;
  outline-style: dashed;
  outline-color: red;
}

笔记

  • 您无法仅在元素的一侧(或两侧、三侧)设置轮廓。 只能设置所有边。 没有像 border 那样使用 outline-topoutline-rightoutline-bottomoutline-left
  • 尝试在任何网站上打开控制台并运行 document.head.insertAdjacentHTML("beforeend", "<style>* { outline: 1px solid red; }</style>"); - 您将看到很多网站的结构。
  • outline 默认用于 :focus 样式。 请记住,如果您要删除 outline 样式,例如 a:focus { outline: 0; },您需要使用其他一些视觉上不同的样式将其添加回来。

更多信息

浏览器支持

ChromeSafariFirefoxOperaIEAndroidiOS
任何1.2+1.5+7+8+任何3.1+