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, der sichtbaren Markierung, die in bearbeitbaren Elementen erscheint, um anzuzeigen, wo der nächste Buchstabe 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
/* 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 je nach Kontext variieren.
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 ein 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 eingefügt wird, wenn Sie tippen. Verschiedene Formen des Carets können visuelles Feedback über den aktuellen Bearbeitungsmodus geben oder visuelle Anpassungen ermöglichen.
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 bis zum Zeilenende. Dies ist das Standardverhalten in den meisten modernen Anwendungen.
- Überschreibmodus (auch "Überschreibmodus" genannt): Neue Zeichen ersetzen bestehende Zeichen an der Caret-Position, anstatt zwischen ihnen eingefügt zu werden. Dieser Modus wird oft mit der Einfügen-Taste umgeschaltet.
Verschiedene Caret-Formen haben traditionelle Verwendungen, zum Beispiel:
- Bar Carets sind zwischen 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 Schreibmaschinentexteingaben oder Unterstrichen.
Caret-Positionierung und Verhalten
Die caret-shape Eigenschaft 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 leiste Carets horizontal und underscore Carets positionieren sich entsprechend der Schreibrichtung.
Formale Definition
| Anfangswert | auto |
|---|---|
| Anwendbar auf | elementsThatAcceptInput |
| 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 eine Vintage-Terminalschnittstelle erstellt wird, indem caret-shape: block mit animierter Caret-Farbe verwendet wird, wobei die alte Technik der Verwendung von Rändern ersetzt wird.
Der Schlüssel ist die Verwendung der modernen Caret-Eigenschaften anstelle der alten Randtechnik. Wir setzen das Caret auf Blockform, deaktivieren das Standardblinken 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
Konsolenschnittstelle mit underscore Caret
Dieses Beispiel demonstriert die Verwendung von caret-shape: underscore, um eine konsolenartige 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
| Specification |
|---|
| CSS Basic User Interface Module Level 4> # propdef-caret-shape> |
Browser-Kompatibilität
Siehe auch
caret-color,caret-animationcaretKurzschreibweise- CSS grundlegende Benutzeroberfläche Modul