試一試
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;
}
語法
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;
值
auto-
預設值。瀏覽器決定插入符的形狀。這通常遵循平臺約定,並可能根據上下文而變化。
bar-
插入符在插入點顯示為一條細的垂直線,位於字元之間而不是字元上方。
block-
插入符顯示為一個矩形,與插入點後的下一個字元重疊。如果沒有字元,則顯示在最後一個字元之後。
underscore-
插入符在插入點後的下一個字元下方顯示為一條細的水平線。如果沒有字元,則顯示在最後一個字元之後。
描述
插入符是閃爍的游標,指示鍵入時文字將插入的位置。不同的插入符形狀可以提供有關當前編輯模式的視覺反饋或提供視覺自定義。
編輯模式和插入符形狀
文字編輯器通常以兩種模式之一執行
- 插入模式:新字元插入到插入符位置,將現有文字推到行尾。這是大多數現代應用程式中的預設行為。
- 改寫模式(也稱為“覆蓋模式”):新字元替換插入符位置的現有字元,而不是插入在它們之間。此模式通常透過 Insert 鍵切換。
不同的插入符形狀有傳統用途,例如
- 豎線插入符位於字元之間,在現代介面中最常見。
- 塊狀插入符覆蓋下一個字元,通常用於終端應用程式或指示改寫模式。
- 下劃線插入符出現在字元下方,可用於某些設計美學,例如模仿打字機或下劃線文字輸入樣式。
插入符定位和行為
caret-shape 屬性影響插入符的視覺渲染方式,但不改變其在文字中的邏輯位置。無論其視覺形狀如何,插入符始終表示字元之間的插入點。
與書寫模式的互動
插入符形狀適應文字的 writing-mode。在垂直書寫模式下,豎線插入符變為水平,下劃線插入符根據文字方向進行適當定位。
正式定義
正式語法
caret-shape =
auto |
bar |
block |
underscore
示例
帶有動畫插入符的復古終端
此示例展示瞭如何使用 caret-shape: block 和動畫插入符顏色建立復古終端介面,取代了使用邊框的舊技術。
關鍵部分是使用現代插入符屬性而不是舊的基於邊框的技術。我們將插入符設定為塊狀,停用預設閃爍,並建立我們自己的自定義動畫。
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;
}
}
結果
帶有下劃線插入符的控制檯介面
此示例演示瞭如何使用 caret-shape: underscore 建立控制檯式介面,其中下劃線插入符補充了終端美學。
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;
}
結果
規範
| 規範 |
|---|
| CSS Basic User Interface Module Level 4 # propdef-caret-shape |
瀏覽器相容性
載入中…