# Outlines
# Overview
Outline is a line that goes around the element, outside of the border. In contrast to border
, outlines do not take any space in the box model. So adding an outline to an element does not affect the position of the element or other elements.
In addition, outlines can be non-rectangular in some browsers. This can happen if outline
is applied on a span
element that has text with different font-size
properties inside it. Unlike borders, outlines cannot have rounded corners.
The essential parts of outline
are outline-color
, outline-style
and outline-width
.
The definition of an outline is equivalent to the definition of a border:
An outline is a line around an element. It is displayed around the margin of the element. However, it is different from the border property.
outline: 1px solid black;
# outline-style
The outline-style
property is used to set the style of the outline of an element.
p {
border: 1px solid black;
outline-color: blue;
line-height: 30px;
}
.p1 {
outline-style: dotted;
}
.p2 {
outline-style: dashed;
}
.p3 {
outline-style: solid;
}
.p4 {
outline-style: double;
}
.p5 {
outline-style: groove;
}
.p6 {
outline-style: ridge;
}
.p7 {
outline-style: inset;
}
.p8 {
outline-style: outset;
}
HTML
<p class="p1">A dotted outline</p>
<p class="p2">A dashed outline</p>
<p class="p3">A solid outline</p>
<p class="p4">A double outline</p>
<p class="p5">A groove outline</p>
<p class="p6">A ridge outline</p>
<p class="p7">An inset outline</p>
<p class="p8">An outset outline</p>
# Syntax
- outline: outline-color outline-style outline-width | initial | inherit;
- outline-width: medium | thin | thick | length | initial | inherit;
- outline-style: none | hidden | dotted | dashed | solid | double | groove | ridge | inset | outset | initial | inherit;
# Parameters
Parameter | Details |
---|---|
dotted | dotted outline |
dashed | dashed outline |
solid | solid outline |
double | double outline |
groove | 3D grooved outline, depends on the outline-color value |
ridge | 3D ridged outline, depends on the outline-color value |
inset | 3D inset outline, depends on the outline-color value |
outset | 3D outset outline, depends on the outline-color value |
none | no outline |
hidden | hidden outline |
# Remarks
outline
is now described in Basic UI (opens new window), a CSS Module Level 3 (it was already described in REC CSS2.1)
Outline property is defined by default in browsers for focusable elements in :focus
state.
It shouldn't be removed, see http://outlinenone.com (opens new window) which states:
What does the outline property do? It provides visual feedback for links that have "focus" when navigating a web document using the TAB key (or equivalent). This is especially useful for folks who can't use a mouse or have a visual impairment. If you remove the outline you are making your site inaccessible for these people. (…)
Interesting related examples on Stack Overflow: