Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.

View in English Always switch to English

caret-shape

Limited availability

This feature is not Baseline because it does not work in some of the most widely-used browsers.

Experimentell: Dies ist eine experimentelle Technologie
Überprüfen Sie die Browser-Kompatibilitätstabelle sorgfältig vor der Verwendung auf produktiven Webseiten.

Die caret-shape CSS Eigenschaft legt die Form des Einfüge-Carets fest, dem sichtbaren Marker, der in bearbeitbaren Elementen erscheint, um anzuzeigen, wo das nächste Zeichen eingefügt oder gelöscht wird.

Probieren Sie es aus

caret-shape: auto;
caret-shape: bar;
caret-shape: block;
caret-shape: underscore;
<section class="default-example container" id="default-example">
  <div>
    <label for="example-element">Edit text field:</label>
    <input id="example-element" type="text" value="Sample text" />
  </div>
</section>
div {
  text-align: left;
}

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

Syntax

css
/* Keyword values */
caret-shape: auto;
caret-shape: bar;
caret-shape: block;
caret-shape: underscore;

/* Global values */
caret-shape: inherit;
caret-shape: initial;
caret-shape: revert;
caret-shape: revert-layer;
caret-shape: unset;

Werte

auto

Der Standardwert. Der Browser bestimmt die Form des Carets. Dies folgt in der Regel den Plattformkonventionen und kann sich je nach Kontext ändern.

bar

Das Caret erscheint als dünne vertikale Linie an der Einfügestelle, zwischen den Zeichen positioniert anstatt über ihnen.

block

Das Caret erscheint als Rechteck, das das nächste Zeichen nach der Einfügestelle überlappt. Wenn kein Zeichen folgt, erscheint es nach dem letzten Zeichen.

underscore

Das Caret erscheint als dünne horizontale Linie unter dem nächsten Zeichen nach der Einfügestelle. Wenn kein Zeichen folgt, erscheint es nach dem letzten Zeichen.

Beschreibung

Das Einfüge-Caret ist der blinkende Cursor, der anzeigt, wo Text beim Tippen eingefügt wird. Unterschiedliche Caret-Formen können visuelles Feedback über den aktuellen Bearbeitungsmodus geben oder eine visuelle Anpassung bieten.

Bearbeitungsmodi und Caret-Formen

Texteditoren arbeiten typischerweise in einem von zwei Modi:

  • Einfügemodus: Neue Zeichen werden an der Caret-Position eingefügt und bestehender Text wird ans Ende der Zeile verschoben. Dies ist das Standardverhalten in den meisten modernen Anwendungen.
  • Überschreibmodus (auch "Obertippmodus" genannt): Neue Zeichen ersetzen die bestehenden Zeichen an der Caret-Position, anstatt zwischen ihnen eingefügt zu werden. Dieser Modus wird oft mit der Einfg-Taste umgeschaltet.

Verschiedene Caret-Formen haben traditionelle Verwendungen, zum Beispiel:

  • Strich-Carets sind zwischen Zeichen positioniert und in modernen Schnittstellen am häufigsten.
  • Block-Carets überlagern das nächste Zeichen und werden häufig in Terminalanwendungen oder zur Anzeige des Überschreibmodus verwendet.
  • Unterstrich-Carets erscheinen unter Zeichen und können für bestimmte Designästhetiken nützlich sein, wie das Nachahmen von Schreibmaschinenstilen oder unterstrichenem Texteingabestil.

Positionierung und Verhalten des Carets

Die Eigenschaft caret-shape beeinflusst, wie das Caret visuell dargestellt wird, ändert jedoch nicht seine logische Position im Text. Das Caret repräsentiert immer den Einfügepunkt zwischen Zeichen, unabhängig von seiner visuellen Form.

Interaktion mit Schreibmodi

Die Caret-Form passt sich dem writing-mode des Textes an. In vertikalen Schreibmodi werden Strich-Carets horizontal, und Unterstrich-Carets positionieren sich entsprechend gemäß der Textausrichtung.

Formale Definition

Anfangswertauto
Anwendbar aufelementsThatAcceptInput
VererbtJa
Berechneter Wertwie angegeben
Animationstypby computed value type

Formale Syntax

caret-shape = 
auto |
bar |
block |
underscore

Beispiele

Retro-Terminal mit animiertem Caret

Dieses Beispiel zeigt, wie man eine Vintage-Terminal-Oberfläche mit caret-shape: block und animierter Caret-Farbe erstellt, wobei die alte Technik der Verwendung von Rändern ersetzt wird.

Der wichtigste Teil ist die Verwendung der modernen Caret-Eigenschaften anstelle der alten randbasierten Technik. Wir setzen das Caret auf Blockform, deaktivieren das standardmäßige Blinken und erstellen unsere eigene benutzerdefinierte Animation.

HTML

html
<label for="terminal">Enter a command</label>
<div class="old-screen">
  <span>></span>
  <textarea id="terminal" class="terminal-input"></textarea>
</div>

CSS

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

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

Ergebnis

Konsolenoberfläche mit Unterstrich-Caret

Dieses Beispiel demonstriert die Verwendung von caret-shape: underscore, um eine Konsolenstil-Oberfläche zu erstellen, bei der das Unterstrich-Caret die Terminalästhetik ergänzt.

HTML

html
<label for="console">Enter a command</label>
<div class="console-demo">
  <div class="console-output">
    <p>user@host:css-ui-4 $ ls -a</p>
    <p>. .. Overview.bs Overview.html</p>
  </div>
  <div class="console-input">
    <span class="prompt">user@host:css-ui-4 $ </span>
    <input type="text" id="console" class="console" value="cd" />
  </div>
</div>

CSS

css
.console {
  caret-shape: underscore;
}

Ergebnis

Spezifikationen

Specification
CSS Basic User Interface Module Level 4
# propdef-caret-shape

Browser-Kompatibilität

Siehe auch