フォーカスされた<input type='text'/>
のキャレットをスタイルします。具体的には、色と厚さ。
Webkitブラウザを使用している場合は、次のCSSスニペットに従ってキャレットの色を変更できます。 CSSで形式を変更できるかどうかはわかりません。
input,
textarea {
font-size: 24px;
padding: 10px;
color: red;
text-shadow: 0px 0px 0px #000;
-webkit-text-fill-color: transparent;
}
input::-webkit-input-placeholder,
textarea::-webkit-input-placeholder {
color: #ccc;
text-shadow: none;
-webkit-text-fill-color: initial;
}
以下に例を示します: http://jsfiddle.net/8k1k0awb/
「キャレット」はあなたが探している言葉です。ただし、これはブラウザーの設計の一部であり、CSSの把握の範囲内ではないと考えています。
ただし、JavascriptとCSS(---)を使用してキャレットの変更をシミュレートするに関する興味深い記事がありますhttp://www.dynamicdrive.com/forums/showthread.php?t = 1745 それは少しハックのようですが、おそらくタスクを達成する唯一の方法です。この記事の主なポイントは次のとおりです。
ビューアーのビュー外の画面のどこかにプレーンテキストエリアがあり、ユーザーが「偽の端末」をクリックすると、テキストエリアにフォーカスし、ユーザーが入力を開始すると、テキストエリアに入力したデータを追加します。私たちの「ターミナル」にそれはそれです。
ここ は実際のデモです
新しいcssプロパティcaret-color
があり、input
またはcontenteditable
エリアのキャレットに適用されます。サポートは拡大していますが、100%ではありません。これは色にのみ影響し、幅やその他の外観には影響しません。
input{
caret-color: rgb(0, 200, 0);
}
<input type="text"/>
CSS3では、これを行うためのネイティブな方法がありますが、既存の回答で示唆されているハックはありません: caret-color
プロパティ 。
以下に示すように、キャレットでできることはたくさんあります。 アニメーション化 でも可能です。
/* Keyword value */
caret-color: auto;
color: transparent;
color: currentColor;
/* <color> values */
caret-color: red;
caret-color: #5729e9;
caret-color: rgb(0, 200, 0);
caret-color: hsla(228, 4%, 24%, 0.8);
caret-color
プロパティは、Firefox 55およびChrome 60からサポートされています。SafariテクニカルプレビューおよびOperaでもサポートされています(ただし、まだEdgeにはありません)。現在のサポートテーブルを表示できます here 。
ここにあなたが私を探しているかもしれないいくつかのベンダーがあります
::-webkit-input-placeholder {color: tomato}
::-moz-placeholder {color: tomato;} /* Firefox 19+ */
:-moz-placeholder {color: tomato;} /* Firefox 18- */
:-ms-input-placeholder {color: tomato;}
フォーカスなど、さまざまな状態をスタイルすることもできます
:focus::-webkit-input-placeholder {color: transparent}
:focus::-moz-placeholder {color: transparent}
:focus:-moz-placeholder {color: transparent}
:focus:-ms-input-placeholder {color: transparent}
次のように、特定のトランジションを行うこともできます
::-VENDOR-input-placeholder {text-indent: 0px; transition: text-indent 0.3s ease;}
:focus::-VENDOR-input-placeholder {text-indent: 500px; transition: text-indent 0.3s ease;}
この方法で-webkit-text-fill-colorと一緒にcolorプロパティを使用するだけで十分です:
input {
color: red; /* color of caret */
-webkit-text-fill-color: black; /* color of text */
}
<input type="text"/>
WebKitブラウザー(キャレット用にシステムカラーがまだ使用されているiOS Safariでは動作しません)およびFirefoxでも動作します。
-webkit-text-fill-color CSSプロパティは、文字の文字の塗りつぶし色を指定します。このプロパティが設定されていない場合、colorプロパティの値が使用されます。 MDN
つまり、テキストの色をtext-fill-colorに設定し、キャレットの色を標準のcolorプロパティに設定します。サポートされていないブラウザでは、キャレットとテキストは同じ色(キャレットの色)になります。