CSS セレクターを使用して「テキスト」タイプの入力フィールドをターゲットにするにはどうすればよいですか?
9 に答える
input[type=text]
または、フォーム内のテキスト入力に制限する
form input[type=text]
または、特定の形式にさらに制限するには、id があると仮定しますmyForm
#myForm input[type=text]
注意: これは IE6 ではサポートされていないため、IE6 用に開発する場合は、IE7.js を使用するか (Yi Jiang が提案したように)、すべてのテキスト入力にクラスを追加し始めます。
参照: http://www.w3.org/TR/CSS2/selector.html#attribute-selectors
デフォルトの属性値は属性セレクターで常に選択できるとは限らないことが指定されているため、テキスト入力がレンダリングされるマークアップの他のケースをカバーしようとすることができます。
input:not([type]), /* type attribute not present in markup */
input[type=""], /* type attribute present, but empty */
input[type=text] /* type is explicitly defined as 'text' */
それでも、型が定義されていても、無効な値があり、それが type="text" にフォールバックする場合は、このままです。使用できることをカバーするために、他の既知のタイプのいずれでもないすべての入力を選択します
input:not([type=button]):not([type=password]):not([type=submit])...
しかし、このセレクターは非常にばかげており、可能なタイプのリストはHTML に新しい機能が追加されて増加しています。
注意::not
疑似クラスは IE9 以降でのみサポートされています。
ここで属性セレクターを使用できます。
input[type="text"] {
font-family: Arial, sans-serif;
}
これは IE7 以降でサポートされています。IE6 をサポートする必要がある場合は、IE7.jsを使用してこのサポートを追加できます。
詳細については、http: //reference.sitepoint.com/css/attributeselectorを参照してください。
私は通常、メインのスタイルシートでセレクターを使用してから、すべての入力タイプにクラスを追加する ie6 固有の .js (jquery) ファイルを作成します。例:
$(document).ready(function(){
$("input[type='text']").addClass('text');
)};
そして、クラスを使用して ie6 固有のスタイルシートで私のスタイルを複製します。そうすれば、実際のマークアップは少しきれいになります。
テーブルの行フィールドに入力タイプのテキスト フィールドがありました。私はコードでそれをターゲットにしています
.admin_table input[type=text]:focus
{
background-color: #FEE5AC;
}