テキスト入力フィールドのCSSセレクター?


回答:


674
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以降でのみサポートされています。


41
むしろ、その後、いくつかのチュートリアルのWebサイトの実際の標準を引用するための1
サイムVIDAS

7
ありがとうございました。私は人々がグーグル...またはw3schoolsでポップアップする最初のものを引用することに気づきました。
Alin Purcaru、2010年

ええ、それは一種の迷惑です
–ime Vidas

IE6で動作しますか?クロスブラウザーソリューションの場合、私はHTML開発のために吸うクラス(.input-text、.input-submitなど)を追加することを好む傾向がありますが、CSSとJavaScriptが少し良くなります。
zzzzBov 2010年

1
@MubasharAhmad回答を更新しました。ご覧のとおり、IE9を超えるブラウザをターゲットにしている場合にのみ回避策があります。
Alin Purcaru、2013

37

ここで属性セレクターを使用できます。

input[type="text"] {
    font-family: Arial, sans-serif;
}

これはIE7以降でサポートされています。IE6をサポートする必要がある場合は、IE7.jsを使用してサポートを追加できます。

詳細については、http//reference.sitepoint.com/css/attributeselectorを参照してください。


注意してください。正しい汎用フォントファミリはsans-serifではなくsan-serifです。
フォルカー・E.

14

私は通常、メインのスタイルシートでセレクターを使用してから、すべての入力タイプにクラスを追加するie6固有の.js(jquery)ファイルを作成します。例:

$(document).ready(function(){
  $("input[type='text']").addClass('text');
)};

そして、クラスを使用して、ie6固有のスタイルシートで私のスタイルを複製します。そうすれば、実際のマークアップが少しクリーンになります。


それは非常に遅い
Hidayt Rahman 2018

8

:textセレクタを使用して、テキストタイプのすべての入力を選択できます

作業フィドル

$(document).ready(function () {
    $(":text").css({    //or $("input:text")
        'background': 'green',
        'color':'#fff'
    });
});

:textjQuery拡張であり、CSS仕様の一部ではありません。:textを使用するクエリは、ネイティブDOM querySelectorAll()メソッドによって提供されるパフォーマンスの向上を利用できません。最新のブラウザでより良いパフォーマンスを得るには、[type="text"]代わりにを使用してください。これはで機能しIE6+ます。

$("[type=text]").css({  // or $("input[type=text]")
    'background': 'green',
    'color':'#fff'
});

CSS

[type=text] // or input[type=text] 
{
    background: green;
}

2

テーブルの行フィールドに入力タイプのテキストフィールドがありました。コードでターゲットにしています

.admin_table input[type=text]:focus
{
    background-color: #FEE5AC;
}

0

@Amirが上記に投稿したように、今日の最良の方法-クロスブラウザーでIE6を残す-は

[type=text] {}

誰も(下のCSSの特異性を言及していない理由 である こと が重要?)これまでのところ、[type=text] 特徴 0,0,1,0の代わりに、0,0,1,1とinput[type=text]

パフォーマンスに関しては、これ以上悪影響はありません。

セレクターの特異性を下げてリリースされたv4.0.0を正規化します。


0

属性セレクターを使用して、CSSで入力タイプのテキストをターゲットにします

input[type=text] {
background:gold;
font-size:15px;
 }


-1

属性セレクターは、入力によく使用されます。これは属性セレクターのリストです:

[title] title属性を持つすべての要素が選択されます。

[title = banana] title属性の「banana」値を持つすべての要素。

[title〜= banana] title属性の値に「banana」を含むすべての要素。

[title | = banana] title属性の値が「banana」で始まるすべての要素。

[title ^ = banana] title属性の値が「banana」で始まるすべての要素。

[title $ = banana] title属性の値が「banana」で終わるすべての要素。

[title * = banana] title属性の値がサブストリング「banana」を含むすべての要素。

リファレンス:https : //kolosek.com/css-selectors/

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.