Web/CSS/ first-line

From Get docs


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;
}

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 Status Comment
CSS Pseudo-Elements Level 4The definition of '::first-line' in that specification. Working Draft Defines more strictly where ::first-letter can occur.

Generalizes allowed properties to typesetting, text decoration, and inline layout properties and opacity. Defines the inheritance of ::first-letter.

CSS Text Decoration Module Level 3The definition of 'text-shadow with ::first-line' in that specification. Candidate Recommendation Allows the use of text-shadow with ::first-letter.
Selectors Level 3The definition of '::first-line' in that specification. Recommendation Introduction of the two-colon syntax.
CSS Level 2 (Revision 1)The definition of '::first-line' in that specification. Recommendation No change.
CSS Level 1The definition of '::first-line' in that specification. Recommendation Initial definition, using the one-colon syntax.

Browser compatibility

Update compatibility data on GitHub

Desktop Mobile
Chrome Edge Firefox Internet Explorer Opera Safari Android webview Chrome for Android Firefox for Android Opera for Android Safari on iOS Samsung Internet
::first-line

Chrome Full support 1

Notes'

Full support 1

Notes'

Notes' Before Chrome 62, the text-transform property does not work on ::first-line pseudo-elements. See Chromium bug 129669. Full support 1

Notes' Alternate Name'

Notes' Before Chrome 62, the text-transform property does not work on ::first-line pseudo-elements. See Chromium bug 129669. Alternate Name' Uses the non-standard name: :first-line

Edge Full support 12


Full support 12


Full support 12

Alternate Name'

Alternate Name' Uses the non-standard name: :first-line

Firefox Full support 1


Full support 1


Full support 1

Alternate Name'

Alternate Name' Uses the non-standard name: :first-line

IE Full support 9


Full support 9


Full support 5.5

Alternate Name'

Alternate Name' Uses the non-standard name: :first-line

Opera Full support 7

Notes'

Full support 7

Notes'

Notes' From Opera 15 to Opera 49 (exclusive), the text-transform property does not work on ::first-line or :first-line pseudo-elements. See Chromium bug 129669. Full support 3.5

Notes' Alternate Name'

Notes' From Opera 15 to Opera 49 (exclusive), the text-transform property does not work on ::first-line or :first-line pseudo-elements. See Chromium bug 129669. Alternate Name' Uses the non-standard name: :first-line

Safari Full support 1

Notes'

Full support 1

Notes'

Notes' The text-transform property does not work for ::first-line or :first-line pseudo-elements. See WebKit bug 3409. Full support 1

Notes' Alternate Name'

Notes' The text-transform property does not work for ::first-line or :first-line pseudo-elements. See WebKit bug 3409. Alternate Name' Uses the non-standard name: :first-line

WebView Android Full support ≤37

Notes'

Full support ≤37

Notes'

Notes' Before WebView 62, the text-transform property does not work on ::first-line pseudo-elements. See Chromium bug 129669. Full support ≤37

Notes' Alternate Name'

Notes' Before WebView 62, the text-transform property does not work on ::first-line pseudo-elements. See Chromium bug 129669. Alternate Name' Uses the non-standard name: :first-line

Chrome Android Full support 18

Notes'

Full support 18

Notes'

Notes' Before Chrome 62, the text-transform property does not work on ::first-line pseudo-elements. See Chromium bug 129669. Full support 18

Notes' Alternate Name'

Notes' Before Chrome 62, the text-transform property does not work on ::first-line pseudo-elements. See Chromium bug 129669. Alternate Name' Uses the non-standard name: :first-line

Firefox Android Full support 4


Full support 4


Full support 4

Alternate Name'

Alternate Name' Uses the non-standard name: :first-line

Opera Android Full support 10.1

Notes'

Full support 10.1

Notes'

Notes' From Opera 15 to Opera 49 (exclusive), the text-transform property does not work on ::first-line or :first-line pseudo-elements. See Chromium bug 129669. Full support 10.1

Notes' Alternate Name'

Notes' From Opera 15 to Opera 49 (exclusive), the text-transform property does not work on ::first-line or :first-line pseudo-elements. See Chromium bug 129669. Alternate Name' Uses the non-standard name: :first-line

Safari iOS Full support 1

Notes'

Full support 1

Notes'

Notes' The text-transform property does not work for ::first-line or :first-line pseudo-elements. See WebKit bug 3409. Full support 1

Notes' Alternate Name'

Notes' The text-transform property does not work for ::first-line or :first-line pseudo-elements. See WebKit bug 3409. Alternate Name' Uses the non-standard name: :first-line

Samsung Internet Android Full support 1.0

Notes'

Full support 1.0

Notes'

Notes' Before Samsung Internet 8.0, the text-transform property does not work on ::first-line pseudo-elements. See Chromium bug 129669. Full support 1.0

Notes' Alternate Name'

Notes' Before Samsung Internet 8.0, the text-transform property does not work on ::first-line pseudo-elements. See Chromium bug 129669. Alternate Name' Uses the non-standard name: :first-line

Legend

Full support  
Full support
See implementation notes.'
See implementation notes.
Uses a non-standard name.'
Uses a non-standard name.


See also