This article is in need of a technical review.

Summary

The border-width property sets the width of the border of a box. Using the shorthand property border is often more convenient.

  • Initial value the concatenation of the initial values of its longhand properties:
    • border-top-width: medium
    • border-right-width: medium
    • border-bottom-width: medium
    • border-left-width: medium
  • Applies to all elements. It also applies to ::first-letter.
  • Inherited no
  • Media visual
  • Computed value as each of the properties of the shorthand:
  • Animatable as each of the properties of the shorthand:
    • border-bottom-width: yes, as a length
    • border-left-width: yes, as a length
    • border-right-width: yes, as a length
    • border-top-width: yes, as a length
  • Canonical order the unique non-ambiguous order defined by the formal grammar

Syntax

/* border-width: width */
border-width: 5px;

/* horizontal | vertical */
border-width: 2px 1.5em;

/* top | horizontal | bottom */
border-width: 1px 2em 1.5cm;

/* top | right | bottom | left */
border-width: 1px 2em 0 4rem;

border-width: inherit;

Values

<br-width>
Is either a non-negative explicit <length> value or a keyword denoting the thickness of the bottom border. The keyword must be one of the following values:
thin
 
A thin border
medium
 
A medium border
thick
 
A thick border
The specification doesn't precisely define the thickness of each of the keywords, which is therefore implementation specific. Nevertheless, it requests that the thickness does follow the thin ≤ medium ≤ thick inequality and that the values are constant on a single document.
inherit
Is a keyword indicating that all four values are inherited from their parent's element calculated value.

Formal syntax

<br-width>{1,4}

where
<br-width> = <length> | thin | medium | thick

Examples

A mix of values and lengths

HTML

<p id="sval">
    one value: 6px wide border on all 4 sides</p>
<p id="bival">
    two different values: 2px wide top and bottom border, 10px wide right and left border</p>
<p id="treval">
    three different values: 0.3em top, 9px bottom, and zero width right and left</p>
<p id="fourval">
    four different values: "thin" top, "medium" right, "thick" bottom, and 1em right</p>

CSS

#sval {
    border: ridge #ccc;
    border-width: 6px;
}
#bival {
    border: solid red;
    border-width: 2px 10px;
}
#treval {
    border: dotted orange;
    border-width: 0.3em 0 9px;
}
#fourval {
    border: solid lightgreen;
    border-width: thin medium thick 1em;
}
p {
    width: auto;
    margin: 0.25em;
    padding: 0.25em;
}

Result

Specifications

Specification Status Comment
CSS Backgrounds and Borders Module Level 3
The definition of 'border-width' in that specification.
Candidate Recommendation No direct change, the <length> CSS data type extension has an effect on this property.
CSS Level 2 (Revision 1)
The definition of 'border-width' in that specification.
Recommendation Added the constraint that values' meaning must be constant inside a document.
CSS Level 1
The definition of 'border-width' in that specification.
Recommendation  

Browser compatibility

Feature Chrome Firefox (Gecko) Internet Explorer Opera Safari
Basic support 1.0 1.0 (1.7 or earlier) 4.0 3.5 1.0 (85)
Feature Android Firefox Mobile (Gecko) IE Phone Opera Mobile Safari Mobile
Basic support 2.0 1.0 (1.9.2) 6.0 11 3.0

See also

Document Tags and Contributors

Last updated by: Sebastianz,