caret-shape CSS property
Eingeschränkt verfügbar
Diese Funktion ist nicht Baseline, da sie in einigen der am weitesten verbreiteten Browser nicht funktioniert.
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, also des sichtbaren Markers, der in editierbaren Elementen erscheint, um anzuzeigen, wo das nächste Zeichen eingefügt oder gelöscht wird.
Die caret-shape-Eigenschaft kann auch als Teil der caret-Kurzschrift-Eigenschaft festgelegt werden.
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
/* 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 typischerweise den Plattform-Konventionen und kann je nach Kontext variieren.
bar-
Das Caret erscheint als dünne vertikale Linie am Einfügepunkt, die zwischen den Zeichen und nicht über ihnen positioniert ist.
block-
Das Caret erscheint als Rechteck, das das nächste Zeichen nach dem Einfügepunkt ü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 dem Einfügepunkt. 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 schieben vorhandenen Text zum Zeilenende. Dies ist das Standardverhalten in den meisten modernen Anwendungen.
- Überschreibmodus (auch "overwrite mode" genannt): Neue Zeichen ersetzen vorhandene Zeichen an der Caret-Position, anstatt zwischen ihnen eingefügt zu werden. Dieser Modus wird häufig mit der Einfügen-Taste umgeschaltet.
Unterschiedliche Caret-Formen haben traditionelle Anwendungen, zum Beispiel:
- Bar-Carets sind zwischen den Zeichen positioniert und sind in modernen Schnittstellen am häufigsten.
- Block-Carets überlagern das nächste Zeichen und werden oft in Terminalanwendungen oder zur Anzeige des Überschreibmodus verwendet.
- Underscore-Carets erscheinen unter den Zeichen und können für bestimmte Designästhetiken nützlich sein, wie das Nachahmen von Schreibmaschinen- oder Unterstrich-Text-Eingabestilen.
Caret-Positionierung und Verhalten
Die caret-shape-Eigenschaft beeinflusst, wie das Caret visuell gerendert wird, ändert jedoch nicht seine logische Position im Text. Das Caret stellt immer den Einfügepunkt zwischen Zeichen dar, unabhängig von seiner visuellen Form.
Interaktion mit Schreibmodi
Die Caret-Form passt sich dem writing-mode des Textes an. In vertikalen Schreibmodi werden Bar-Carets horizontal, und Underscore-Carets positionieren sich entsprechend der Textausrichtung.
Formale Definition
| Anfangswert | auto |
|---|---|
| Anwendbar auf | Text or elements that accept text input |
| Vererbt | Ja |
| Berechneter Wert | wie angegeben |
| Animationstyp | by computed value type |
Formale Syntax
caret-shape =
auto |
bar |
block |
underscore
Beispiele
>Retro-Terminal mit animiertem Caret
Dieses Beispiel zeigt, wie man eine Vintage-Terminaloberfläche mit caret-shape: block und animierter Caret-Farbe erstellt und damit die alte Technik der Verwendung von Rändern ersetzt.
Der Kernpunkt ist die Verwendung moderner Caret-Eigenschaften anstelle der alten randbasierten Technik. Wir stellen das Caret auf Blockform, deaktivieren das standardmäßige Blinken und erstellen unsere eigene benutzerdefinierte Animation.
HTML
<label for="terminal">Enter a command</label>
<div class="old-screen">
<span>></span>
<textarea id="terminal" class="terminal-input"></textarea>
</div>
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
Konsoleninterface mit Underscore-Caret
Dieses Beispiel demonstriert die Verwendung von caret-shape: underscore, um eine Konsolen-ähnliche Schnittstelle zu erstellen, bei der das Underscore-Caret das Terminalästhetik ergänzt.
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
.console {
caret-shape: underscore;
}
Ergebnis
Spezifikationen
| Spezifikation |
|---|
| CSS Basic User Interface Module Level 4> # propdef-caret-shape> |
Browser-Kompatibilität
Siehe auch
caret-color,caret-animationcaretKurzschrift- Grundlegendes Benutzeroberflächenleitfaden (CSS) Moduls