multi-select
ボックスに選択したjQuery
を使用しています。ただし、chosen.css
ファイルで事前定義されたスタイルは上書きが難しいため、chosen.css
を完全に削除することもあまり適切なオプションではない可能性があります。
これが私のフィドルです: https://jsfiddle.net/k1Lr0342/
HTML:
<select class="chosen" multiple="true" style="height: 34px; width: 280px">
<option>Choose...</option>
<option>jQuery</option>
<option selected="selected">MooTools</option>
<option>Prototype</option>
<option selected="selected">Dojo Toolkit</option>
</select>
css:
.chosen-choices {
border-radius: 3px;
box-shadow: inset 0px 1px 2px rgba(0,0,0,0.3);
border: none;
height: 34px !important;
cursor: text;
margin-top: 12px;
padding-left: 15px;
border-bottom: 1px solid #ddd;
width: 285px;
text-indent: 0;
margin-left: 30px;
}
.chosen-choices
ul
のcssを直接記述しようとしました。一部はborder-radius
やbox-shadow
のように機能します。ただし、その他:margin, height, padding, border
などはchosen.css
ファイルによって上書きされます。 1つのオプションは、機能しないすべての設定に!important
を置くことです。これはほとんどのもので機能しますが、まだ高さではありません。何かご意見は?
CSSは、より指定されたセレクターを使用するスタイルを受け入れます。
.chosen-container-multi .chosen-choices {
/*blah blah*/
}
.chosen-choices {
/* less specificity, this style might not work */
}
JQueryを使用してみてください。これが実際の動作です [〜#〜] jsfiddle [〜#〜]
$(".chosen-choices li").css("background","red");
Chosen.cssの.chosen-choices
を見ると、高さがauto!important
であることがわかります。これらの!important
を削除(またはコメント)してください。
ブラウザーの要素インスペクターを使用して、適用されたCSSを確認できます。私は個人的にChrome開発ツールを毎回使用しています。手間を大幅に省いてください。
少し遅れましたが、これに遭遇したので、私は答えると思いました。表示される選択された項目は、非表示の選択メニューに基づいているため、その直後のdiv内の要素を見つけて(選択によって作成された)、スタイルを設定する必要があります。これは、値がわかっていると想定してJqueryで実行できます。
$('.your-select-menu').next().find('.search-choice').each(function() {
if ($(this).text() === someValue) {
$(this).css("border-color", "#00b300");
}
})