Cette page a été traduite à partir de l'anglais par la communauté. Vous pouvez contribuer en rejoignant la communauté francophone sur MDN Web Docs.

View in English Always switch to English

caret

Expérimental: Il s'agit d'une technologie expérimentale.
Vérifiez attentivement le tableau de compatibilité des navigateurs avant de l'utiliser en production.

La propriété raccourcie CSS caret définit l'apparence et le comportement du curseur d'insertion en une seule déclaration.

Exemple interactif

caret: red;
caret: block manual;
caret: underscore auto green;
caret: bar manual orange;
<section class="default-example container" id="default-example">
  <div>
    <label for="example-element">Modifier le champ de texte&nbsp;:</label>
    <input id="example-element" type="text" value="Exemple de texte" />
  </div>
</section>
div {
  text-align: left;
}

#example-element {
  font-size: 1.2rem;
  padding: 8px;
  width: 300px;
}

Propriétés constitutives

Cette propriété est une abréviation pour les propriétés CSS suivantes :

Syntaxe

css
/* Valeurs individuelles */
caret: red; /* seulement caret-color */
caret: block; /* seulement caret-shape */
caret: manual; /* seulement caret-animation */

/* Deux valeurs */
caret: red manual; /* caret-color + caret-animation */
caret: block auto; /* caret-shape + caret-animation */
caret: underscore orange; /* caret-shape + caret-color */

/* Trois valeurs */
caret: bar manual red; /* caret-shape + caret-animation + caret-color */
caret: block auto #00ff00; /* caret-shape + caret-animation + caret-color */

/* Valeurs globales */
caret: inherit;
caret: initial;
caret: revert;
caret: revert-layer;
caret: unset;

La propriété caret est définie avec une, deux ou trois valeurs issues des propriétés constitutives. Les valeurs peuvent être indiquées dans n'importe quel ordre, et les valeurs omises sont définies à leur valeur initiale.

Valeurs

caret-color

Définit la couleur du curseur.

caret-animation

Contrôle si le curseur clignote.

caret-shape

Définit la forme visuelle du curseur.

Description

La propriété abrégée caret permet de définir plusieurs propriétés du curseur en une seule déclaration, ce qui facilite la personnalisation complète de l'apparence et du comportement du curseur d'insertion.

Résolution des valeurs

Lorsque des valeurs sont omises dans la propriété abrégée, elles sont réinitialisées à leur valeur initiale :

  • caret-color : auto (équivaut à currentColor).
  • caret-animation : auto (le curseur clignote).
  • caret-shape : auto (forme déterminée par le navigateur).

Indépendance de l'ordre

Contrairement à certaines propriétés abrégées CSS, la propriété caret accepte les valeurs dans n'importe quel ordre. Le navigateur détermine à quelle propriété chaque valeur s'applique en fonction de son type :

  • Les valeurs <color> s'appliquent à caret-color.
  • Les mots-clés auto/manual s'appliquent à caret-animation.
  • Les mots-clés de forme (bar, block, underscore) s'appliquent à caret-shape.

Définition formelle

Valeur initialepour chaque propriété individuelle de la propriété raccourcie :
ApplicabilitéText or elements that accept text input
Héritéeoui
Valeur calculéepour chaque propriété individuelle de la propriété raccourcie :
Type d'animationpour chaque propriété individuelle de la propriété raccourcie :

Syntaxe formelle

caret = 
<'caret-color'> ||
<'caret-animation'> ||
<'caret-shape'>

<caret-color> =
auto |
<color>

<caret-animation> =
auto |
manual

<caret-shape> =
auto |
bar |
block |
underscore

Exemples

Terminal rétro avec curseur animé

Cet exemple crée une interface de terminal vintage en utilisant la propriété abrégée caret pour combiner plusieurs propriétés du curseur, montrant ainsi comment elle remplace les anciennes techniques basées sur les bordures.

Le principal avantage de la propriété abrégée caret est de combiner plusieurs propriétés en une seule déclaration. Ici, nous définissons la forme sur block, désactivons le clignotement par défaut et définissons la couleur sur green, le tout en une seule ligne.

HTML

html
<label for="terminal">Entrez une commande</label>
<div class="old-screen">
  <span>></span>
  <textarea id="terminal" class="terminal-input"></textarea>
</div>

CSS

css
.terminal-input {
  caret: block manual green;
  animation: vintage-caret 2s infinite;
}

@keyframes vintage-caret {
  0%,
  50% {
    caret-color: #00ad00;
  }
  75%,
  100% {
    caret-color: transparent;
  }
}

Résultat

Spécifications

Specification
CSS Basic User Interface Module Level 4
# caret-color
CSS Basic User Interface Module Level 4
# propdef-caret-shape
CSS Basic User Interface Module Level 4
# valdef-caret-animation-manual
CSS Basic User Interface Module Level 4
# valdef-caret-shape-bar
CSS Basic User Interface Module Level 4
# valdef-caret-shape-block
CSS Basic User Interface Module Level 4
# valdef-caret-shape-underscore
CSS Basic User Interface Module Level 4
# valdef-caret-animation-auto
CSS Basic User Interface Module Level 4
# valdef-caret-shape-auto
CSS Basic User Interface Module Level 4
# propdef-caret-animation
CSS Color Module Level 4
# valdef-color-currentcolor
CSS Color Module Level 4
# valdef-color-transparent

Compatibilité des navigateurs

Voir aussi