CSS outline
The CSS outline
property is a shorthand property to specify all outline properties.
Unlike an element's border (e.g. set using border
or its associated properties), an element's outline does not take up extra space and it can be non-rectangular.
The outline is always on top of a box, and it does not influence the position or size of the box, or of any other boxes. Therefore, displaying or suppressing outlines does not cause reflow or overflow.
User agents typically render an outline on elements in the :focus
state.
Syntax
These values are explained below.
Possible Values
- outline-color
-
outline-color
property. This can be any valid color value, or theinvert
keyword. - outline-style
-
outline-style
property. This can be any of the above values. - outline-width
-
outline-width
property. This can be a non-negative length value, or any of thethin
,medium
, andthick
keywords.
In addition, all CSS properties also accept the following CSS-wide keyword values as the sole component of their property value:
initial
- Represents the value specified as the property's initial value.
inherit
- Represents the computed value of the property on the element's parent.
unset
- This value acts as either
inherit
orinitial
, depending on whether the property is inherited or not. In other words, it sets all properties to their parent value if they are inheritable or to their initial value if not inheritable.
General Information
- Initial Value
- Depends on the value of the individual properties (i.e.
outline-width
,outline-style
, andoutline-color
). The initial value for these properties is as follows:- <outline-width>
medium
- <outline-style>
none
- <outline-color>
invert
- Applies To
- All elements
- Inherited?
- No
- Media
- Visual
- Animatable
- Yes (see example)
Example Code
Accessibility Considerations
The CSS spec warns against removing the outline on elements in the :focus
state:
Keyboard users, in particular people with disabilities who may not be able to interact with the page in any other fashion, depend on the outline being visible on elements in the
:focus
state, thus authors must not make the outline invisible on such elements without making sure an alternative highlighting mechanism is provided.
Official Specifications
- CSS Basic User Interface Module Level 3 (CSS3 UI) (W3C Candidate Recommendation, 02 March 2017)
- CSS Level 2.1 (W3C Recommendation 07 June 2011)