2012-11-22 19 views

答えて

1

我々はのDOMを選択するために、JSを使用することができます。

$('select').change(function() { 
    $('option').css('background', 'none'); 
    $('option:selected').css('backgroundColor', 'red'); 
}).change() 

<select> 
    <option>1111111</option> 
    <option>222222222</option> 
    <option>33333333</option> 
    <option>44444444</option> 
</select> 

デモ:http://jsfiddle.net/TxbVt/1/

+1

複数の選択では機能しません:( – t1gor

+0

これは私のための複数選択では機能しませんでした。 –

-3

できません。 <option>要素はCSSスタイルを受け入れません。

JavaScriptベースの方法を使用できます。多くの<select>置換スクリプトが利用可能です。

+1

ない私は怖い真の100%...現代のブラウザでは、これを許可しません。 FireFoxで試してみてください;)それは信頼性の高いクロスブラウザではありません。 – Pebbl

+0

ありがとう@Diodeus、Javascriptで下のようにスタイルを設定できますか? **選択済み{/ *テキストの色とフォントの太さ、赤と太字*/ 色:青; font-weight:bold; } ** – user9371102

+0

JavaScriptは標準の選択項目でこれを行うことはできません。参照してください:http://www.jankoatwarpspeed.com/post/2009/07/28/reinventing-drop-down-with-css-jquery.aspx –

0

以下は(スタイリングオプションタグを許可するブラウザ用)を動作するはずです、しかし、デフォルトを選択したスタイリングは、ほとんどの場合に上書きされます。ただし、これを無効にする方法を見つけることができるかもしれ:

CSS

select option.selected { 
    font-weight: bold; 
    color: red; 
} 

javascriptの

function highlight_options(field){ 
    var i,c; 
    for(i in field.options){ 
    (c=field.options[i]).className=c.selected?'selected':''; 
    } 
} 

マークアップ

<select onchange="highlight_options(this)" multiple="multiple"> 
    <option>One</option> 
    <option>Two</option> 
    <option>Three</option> 
</select> 
+0

ありがとう@pebbl、システムカラーは、http:// jsfiddleを上書きしています。net/rZuYz/ – user9371102

+0

@ VicKyAmr残念ながら私が言ったように。それを見れば、これを取り除くことはできません...少なくとも私が見つけた限り。すべてハイライトはoption要素のプロパティではないため、上のレイヤーです。しかし、境界やパディングのようにオーバーライドされていないスタイルにも影響を与えることができます。また、選択されていないオプションにもスタイルや背景画像を適用して、より魅力的なものにすることができます。 – Pebbl

+0

これはFFでは機能しません:( – t1gor

-1

ピュアCSSはここに役立つだろう:

option:checked 
2
<style> 
    .select2-container--default .select2-results__option[aria-selected=true] { 
     background-color: inherit; 
     color: lightgray; 
    } 
</style> 

をブロック内で独自のスタイルを追加します。

3

私たちは以下のCSSの助けを借りて簡単に行うことができます。

select option:checked{ background: #1aab8e -webkit-linear-gradient(bottom, #1aab8e 0%, #1aab8e 100%); }

関連する問題