::first-line (:first-line)

The ::first-line CSS pseudo-element applies styles to the first line of a block-level element. Note that the length of the first line depends on many factors, including the width of the element, the width of the document, and the font size of the text.

/* Selects the first line of a <p> */
p::first-line {
  color: red;
}

Note: CSS3 introduced the ::first-line notation (with two colons) to distinguish pseudo-classes from pseudo-elements. Browsers also accept :first-line, introduced in CSS2.

Allowable properties

Only a small subset of CSS properties can be used with the ::first-line pseudo-element:

Syntax

/* CSS3 syntax */
::first-line

/* CSS2 syntax */
:first-line

Examples

HTML

<p>Styles will only be applied to the first line of this paragraph.
After that, all text will be styled like normal. See what I mean?</p>

<span>The first line of this text will not receive special styling
because it is not a block-level element.</span>

CSS

::first-line {
  color: blue;
  text-transform: uppercase;

  /* WARNING: DO NOT USE THESE */
  /* Many properties are invalid in ::first-line pseudo-elements */
  margin-left: 20px;
  text-indent: 20px;
}

Result

Specifications

Specification
CSS Pseudo-Elements Module Level 4 (CSS Pseudo-Elements 4)
# first-line-pseudo

Browser compatibility

BCD tables only load in the browser

See also