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-decoration
property is to be used to achieve the former visual aspect of the<u>
element.