CSS クラスを介してタグのselected属性を設定することは可能ですか?option
スタイルシートで次のようなことが可能かどうか疑問に思っています:
option.selected {
selected: true;
}
次にHTMLで:
<option class="selected">
selectedこれは、属性を設定するのと同じ効果があります。この技術は可能ですか?
CSS クラスを介してタグのselected属性を設定することは可能ですか?option
スタイルシートで次のようなことが可能かどうか疑問に思っています:
option.selected {
selected: true;
}
次にHTMLで:
<option class="selected">
selectedこれは、属性を設定するのと同じ効果があります。この技術は可能ですか?
いいえ、CSS は表示のみを変更し、コンテンツは変更しません (ただし、CSS3 はコンテンツの一部の変更をサポートしていますが、値の選択はサポートしていません)。HTML を直接変更できない場合は、JavaScript を使用する必要があります。
option[selected] {background-color:skyblue;color:white;}
以前にマークされた選択を表示したい場合-結果を表示した後のユーザーからの変更とは関係なく、古い選択はsykblueのままで、新しい変更はdarkblueになります。
CSS 経由ではありませんが、javascript 経由で実現できます。
function setSelects() {
var allSelects = document.getElementsByTagName("select");
for (var i = 0; i < allSelects.length; i++) {
for (var j = 0; j < allSelects[i].options.length; j++) {
if (allSelects[i].options[j].className == "selected") {
allSelects[i].selectedIndex = j;
}
}
}
}
window.onload = setSelects;
他の人が指摘しているように、そもそも CSS クラスを介してそれを行う理由がわかりません。
JQuery を使用すると、これらの線に沿って何かを行うことができますが、CSS だけではできません。
はい、可能ですが、IEについてはわかりません
以下のコードは、デフォルトで選択されたアイテムのスタイルを変更します。
<style>
option[selected="selected"] {
color:red;
font-weight:bold
}
</style>
<select>
<option value="1">Txt</option>
<option value="2" selected="selected">Another Txt</option>
</select>
Selected は CSS プロパティではありません。http://www.w3.org/TR/CSS2/propidx.htmlで仕様を参照してください。