このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docs コミュニティーについてもっと知り、仲間になるにはこちらから。

View in English Always switch to English

caret

Experimental: これは実験的な機能です。
本番で使用する前にブラウザー互換性一覧表をチェックしてください。

caret一括指定CSS プロパティで、挿入キャレットの外見や動作を単一の宣言で設定します。

試してみましょう

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">テキストフィールドを編集:</label>
    <input id="example-element" type="text" value="サンプルテキスト" />
  </div>
</section>
div {
  text-align: left;
}

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

構成要素のプロパティ

このプロパティは以下の CSS プロパティの一括指定です。

構文

css
/* 個別の値 */
caret: red; /* caret-color のみ */
caret: block; /* caret-shape のみ */
caret: manual; /* caret-animation のみ */

/* 2 つの値 */
caret: red manual; /* caret-color + caret-animation */
caret: block auto; /* caret-shape + caret-animation */
caret: underscore orange; /* caret-shape + caret-color */

/* 3 つの値 */
caret: bar manual red; /* caret-shape + caret-animation + caret-color */
caret: block auto #00ff00; /* caret-shape + caret-animation + caret-color */

/* グローバル値 */
caret: inherit;
caret: initial;
caret: revert;
caret: revert-layer;
caret: unset;

caret プロパティは、構成要素のプロパティから 1 つ、2 つ、3 つの値として指定します。値は任意の順序で指定可能で、省略された値は初期値に設定します。

caret-color

キャレットの色を設定します。

caret-animation

キャレットが点滅するかどうかを制御します。

caret-shape

キャレットの視覚的な形状を設定します。

解説

caret 一括設定により、挿入位置を示すキャレットのプロパティを単一の宣言で設定することができるため、挿入位置のキャレットの外観と動作を完全に独自のカスタマイズすることができます。

値の解決

一括指定で値が除外された場合は、初期値にリセットされます。

  • caret-color: autocurrentColor に解決)
  • caret-animation: auto (キャレットが点滅する)
  • caret-shape: auto (ブラウザーが定義した形状)

順序の独立

一部の CSS 一括指定とは異なり、caret プロパティは値を任意の順序で受け入れます。ブラウザーは値の型に基づいて、どの値がどのプロパティに適用されるかを決定します。

  • <color> の値は caret-color に適用されます。
  • auto/manual のキーワードは caret-animation に適用されます。
  • 形状のキーワード (bar, block, underscore) は caret-shape に適用されます。

公式定義

初期値一括指定の次の各プロパティとして
適用対象elementsThatAcceptInput
継承あり
計算値一括指定の次の各プロパティとして
  • caret-color: auto は仕様通りに計算され、 <color> 値は color プロパティで定義されたように計算される。
  • caret-shape: 指定通り
アニメーションの種類一括指定の次の各プロパティとして

形式文法

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

<caret-color> =
auto |
<color>

<caret-animation> =
auto |
manual

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

アニメーションキャレットのあるレトロなターミナル

この例では、caret 一括指定を使用して複数のキャレットプロパティを組み合わせ、古いボーダーベースの手法を置き換える方法を示すヴィンテージ風ターミナルインターフェイスを作成します。

caret 一括指定の主な利点は、複数のプロパティを 1 つの宣言で組み合わせられることです。ここでは形状を block に設定し、デフォルトの点滅を無効化し、色を green に設定する、これらすべてを 1 行で実現しています。

HTML

html
<label for="terminal">コマンドを入力</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;
  }
}

結果

仕様書

Specification
CSS Basic User Interface Module Level 4
# caret-color
CSS Basic User Interface Module Level 4
# propdef-caret-animation
CSS Basic User Interface Module Level 4
# valdef-caret-animation-manual
CSS Basic User Interface Module Level 4
# valdef-caret-shape-auto
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-animation-auto
CSS Basic User Interface Module Level 4
# valdef-caret-shape-underscore
CSS Basic User Interface Module Level 4
# propdef-caret-shape
CSS Color Module Level 4
# valdef-color-transparent
CSS Color Module Level 4
# valdef-color-currentcolor

ブラウザーの互換性

関連情報