複数のアイテムを持つselect要素があります。最初のアイテムの色を変更したいのですが、選択ドロップダウンをクリックすると色が表示されるようです。私が欲しいのは、ページがロードされたときに色(グレーなど)を変更して、ユーザーが最初のオプションの色が異なることを確認できるようにすることです。
こちらの例をご覧ください... http://jsbin.com/acucan/4/
css:
select{
width: 150px;
height: 30px;
padding: 5px;
color: green;
}
select option { color: black; }
select option:first-child{
color: green;
}
html:
<select>
<option>Item1</option>
<option>Item2</option>
<option>Item3</option>
</select>
これはどうですか:
select{
width: 150px;
height: 30px;
padding: 5px;
color: green;
}
select option { color: black; }
select option:first-child{
color: green;
}
最初の項目がプレースホルダー(空の値)として使用され、選択がrequired
の場合、:invalid
疑似クラスを使用してそれをターゲットにできます。
select {
-webkit-appearance: menulist-button;
color: black;
}
select:invalid {
color: green;
}
<select required>
<option value="">Item1</option>
<option value="Item2">Item2</option>
<option value="Item3">Item3</option>
</select>
これを行うには、CSSを使用します。 JSFiddle
HTML:
<select>
<option>Text 1</option>
<option>Text 2</option>
<option>Text 3</option>
</select>
CSS:
select option:first-child { color:red; }
または、絶対にJavaScriptを使用する必要がある場合(このことはお勧めしません): JSFiddle
JavaScript:
$(function() {
$("select option:first-child").addClass("highlight");
});
CSS:
.highlight { color:red; }
私はこれを本当に望んでいました(プレースホルダーは選択ボックスとテキストボックスで同じように見えるはずです!)、そしてまっすぐなCSSはChromeで機能していませんでした。ここに私がやったことがあります:
まず、選択タグに.has-Prompt
クラスがあることを確認してください。
次に、このクラスをdocument.ready
のどこかに初期化します。
# Adds a class to select boxes that have Prompt currently selected.
# Allows for placeholder-like styling.
# Looks for has-Prompt class on select tag.
Mess.Views.SelectPromptStyler = Backbone.View.extend
el: 'body'
initialize: ->
@$('select.has-Prompt').trigger('change')
events:
'change select.has-Prompt': 'changed'
changed: (e) ->
select = @$(e.currentTarget)
if select.find('option').first().is(':selected')
select.addClass('Prompt-selected')
else
select.removeClass('Prompt-selected')
次に、CSSで:
select.Prompt-selected {
color: $placeholder-color;
}
オプションを選択すると、オプションが黒くなります。プレースホルダーに戻すと、プレースホルダーの色(この場合は赤)に戻ります。
http://jsfiddle.net/wFP44/166/
オプションには値が必要です。
$('select').on('change', function() {
if ($(this).val()) {
return $(this).css('color', 'black');
} else {
return $(this).css('color', 'red');
}
});
select{
color: red;
}
select option { color: black; }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select>
<option value="">Pick one...</option>
<option value="test1">Test 1</option>
<option value="test2">Test 2</option>
<option value="test3">Test 3</option>
</select>