The HTML <u> element renders text with an underline, a line under the baseline of its content. In HTML5, this element represents a span of text with an unarticulated, though explicitly rendered, non-textual annotation, such as labeling the text as being a proper name in Chinese text (a Chinese proper name mark), or labeling the text as being misspelled.
| Content categories | Flow content, phrasing content, palpable content. |
|---|---|
| Permitted content | Phrasing content. |
| Tag omission | None, both the starting and ending tag are mandatory. |
| Permitted parents | Any element that accepts phrasing content. |
| Permitted ARIA roles | Any |
| DOM interface | HTMLElement Up to Gecko 1.9.2 (Firefox 4) inclusive, Firefox implements the HTMLSpanElement interface for this element. |
Attributes
This element only includes the global attributes.
Usage notes
As with all pure styling elements, <u> was deprecated in HTML 4 and XHTML 1, but was then re-introduced in HTML5 with other semantics. If you want to underline text in a non-semantic manner, you should use a <span> element, or another semantically appropriate element, and style it with the CSS text-decoration property, with the underline value.
Tip: Avoid using the <u> element where it could be confused for a hyperlink.
Note: The HTML 5 specification reminds developers that other elements are almost always more appropriate than <u>.
Example
The following are examples of how elements other than <u> should be used instead.
<u>Today's Special</u>: Salmon<br /> <span style="text-decoration:underline;">Today's Special</span>: Salmon <!-- Here <span> is used as the underlining is purely decorative and it is applied with CSS -->
Today's Special: Salmon
Today's Special: Salmon
<p><u>All</u> of that is explained in <u>Dive into Python</u></p> <p><em>All</em> of that is explained in <i>Dive into Python</i></p> <!-- Here the "All" is marked as stressed, using <em>, while "Dive into Python" is marked as a name using <i> -->
All of that is explained in Dive into Python.
All of that is explained in Dive into Python.
Due to the default styling of <em> and <i> they have been displayed in italics, however CSS can be used to style those elements with a normal font style and underline.
Specifications
| Specification | Status | Comment |
|---|---|---|
| WHATWG HTML Living Standard The definition of '<u>' in that specification. |
Living Standard | |
| HTML5 The definition of '<u>' in that specification. |
Recommendation | |
| HTML 4.01 Specification The definition of '<b>' in that specification. |
Recommendation |
See Also
- The
<span>,<i>,<em>, and<cite>elements are, depending on the case, to be used instead. - The CSS
text-decorationproperty is to be used to achieve the former visual aspect of the<u>element.