私は現在CSSスタイルを適用しているHTMLを管理できないプロジェクトに取り組んでいます。そして、HTMLは、要素を区別するのに十分なidとクラスの宣言がないという意味で、あまりラベル付けされていません。
だから、私はidやclass属性を持たないオブジェクトにスタイルを適用できる方法を探しています。
時々、フォーム項目は "name"または "value"属性を持ちます。
<input type="submit" value="Go" name="goButton">
Name = "goButton"に基づいてスタイルを適用する方法はありますか? 「値」はどうですか?
Googleの検索では、「名前」や「値」などの広範な用語がWebページに表示されるあらゆる種類のインスタンスが検索されるため、これを見つけるのは困難です。
私は答えがノーだと疑うようなものです...しかし、おそらく誰かが巧妙なハックを持っている?
何かアドバイスは大歓迎です。
属性セレクタinput[name="goButton"] { }
を使うことができます。 IE6ではサポートされていないことに注意してください。
更新日:2016年には、IE6が機能しなくなったため、ほぼ必要に応じて使用できます。 http://quirksmode.org/css/selectors/
テキスト入力例
input[type=text] {
width: 150px;
}
input[name=myname] {
width: 100px;
}
属性セレクタを使用することはできますが、mederが言ったようにIE6では機能しません。そのためのJavaScript回避策があります。チェック Selectivizr
属性セレクタの詳細については、 http://www.css3.info/preview/attribute-selectors/ を参照してください。
/* turns all input fields that have a name that starts with "go" red */
input[name^="go"] { color: red }
将来のグーグルのために、FYI(@mederによる答えの中の方法)はname属性を持つどんな要素でも使うことができるので、xyz
という名前の<iframe>
があるとしましょう、そしてあなたは以下のように規則を使うことができます。
iframe[name=xyz] {
display: none;
}
name
属性は、以下の要素で使用できます。
<button>
<fieldset>
<form>
<iframe>
<input>
<keygen>
<map>
<meta>
<object>
<output>
<param>
<select>
<textarea>
そのとき私があなたの質問を理解すれば、
はい、そのIDまたは名前が利用可能であれば、個々の要素のスタイルを設定できます。
例えば.
idが利用可能ならば、uは以下のように要素を制御できます
<input type="submit" value="Go" name="goButton">
var v_obj = document.getElementsById('goButton');
v_obj.setAttribute('style','color:red;background:none');
そうでなければ、nameが利用可能ならば、uは以下のように要素を制御できます。
<input type="submit" value="Go" name="goButton">
var v_obj = document.getElementsByName('goButton');
v_obj.setAttribute('style','color:red;background:none');
タグなしで[name=elementName]{}
を使用することもまたうまくいきます。この名前を持つすべての要素に影響します。
例えば:
<input type=text name=test>
<div name=test></div>
[name=test]{
width: 100px;
}
これはクエリーセレクターにとって完璧な仕事です...
var Set1=document.querySelectorAll('input[type=button]'); // by type
var Set2=document.querySelectorAll('input[name=goButton]'); // by name
var Set3=document.querySelectorAll('input[value=Go]'); // by value
その後、見つかった要素を操作するためにこれらのコレクションをループすることができます。