--- title: '::first-line (:first-line)' slug: 'Web/CSS/::first-line' tags: - CSS - Pseudo-element - Reference translation_of: 'Web/CSS/::first-line' ---
Le pseudo-élément ::first-line
applique la décoration à la première ligne d'un élément. La quantité de texte sur la première ligne dépend de nombreux facteurs, comme la largeur des éléments ou du document, mais aussi de la taille du texte. Comme tous les pseudo-éléments, les sélecteurs contenant ::first-line
ne ciblent pas un élément HTML réel.
/* Sélectionne la première ligne */ /* d'un élément <p> */ ::first-line { color: red; text-transform: uppercase; }
Une première ligne n'a de sens que dans une boîte de type bloc, et ainsi le pseudo-élément ::first-line
n'a d'effet que sur les éléments dont {{cssxref("display")}} à une valeur de block
, inline-block
, table-cell
ou table-caption
. Dans tous les autres cas, ::first-line
n'a pas d'effet.
Seul un sous-ensemble de propriétés CSS peut être utilisé dans un bloc de déclaration contenant un sélecteur CSS utilisant le pseudo-élément ::first-line
:
Comme cette liste sera étendue dans le futur, il est recommandé de ne pas utiliser d'autres propriétés dans un bloc de déclaration, de manière à ce que le CSS reste pérenne.
:first-line
est le seul choix viable ; sinon,::first-line
est préféré.{{csssyntax}}
text-transform
Toutes les lettres de la première ligne de chaque paragraphe sont en majuscules.
p::first-line { text-transform: uppercase; }
<p> Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore. </p>
{{EmbedLiveSample('text-transform', 250, 100)}}
margin-left
Ici, l'effet est nul car margin-left
ne peut pas être appliquée sur ce pseudo-élément.
p::first-line { margin-left: 20px; }
<p> Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore. </p>
{{EmbedLiveSample('margin-left', 250, 100)}}
text-indent
Là encore, l'effet est nul, text-indent
ne peut pas être appliqué sur ce pseudo-élément.
p::first-line { text-indent: 20px; }
<p> Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore. </p>
{{EmbedLiveSample('text-indent', 250, 100)}}
Spécification | État | Commentaires |
---|---|---|
{{SpecName('CSS4 Pseudo-Elements', '#first-line-pseudo', '::first-line')}} | {{Spec2('CSS4 Pseudo-Elements')}} | La définition est affinée pour indiquer où ce pseudo-élément peut correspondre. Les propriétés possibles sont généralisées (fontes, décoration, disposition en ligne et {{cssxref("opacity")}}). Définit l'héritage de ::first-letter . |
{{SpecName('CSS3 Text Decoration', '#text-shadow', 'text-shadow with ::first-line')}} | {{Spec2('CSS3 Text Decoration')}} | La propriété {{cssxref("text-shadow")}} peut être utilisée avec ::first-letter . |
{{SpecName('CSS3 Selectors', '#first-line', '::first-line')}} | {{Spec2('CSS3 Selectors')}} | La définition de « première ligne » a été reformulée. La syntaxe utilise désormais deux fois le caractère deux-points. |
{{SpecName('CSS2.1', 'selector.html#first-line-pseudo', '::first-line')}} | {{Spec2('CSS2.1')}} | Aucune modification. |
{{SpecName('CSS1', '#the-first-line-pseudo-element', '::first-line')}} | {{Spec2('CSS1')}} | La définition initiale qui utilise la syntaxe avec un seul caractère deux-points. |
{{Compat("css.selectors.first-line")}}