選択したテキストがドロップダウンに設定した幅に対して長すぎる場合は、選択したテキストをドロップダウンイメージエリアに表示しません。私はtext-overflow: clip;
またはoverflow: hidden
、span.selectInner
の中ではうまくいくと思っていますが、そうではありません。HTML Drowdownは画像の下に選択したテキストを表示します
span.selectInner
は、データが付加されています。ここでは、そのクラスを追加するスニペットは次のとおりです。
JS
$('.filterSelectWrap').append('<span class="selectInner">' + filter + '</span>');
HTML
<div class="selectWrapper">
<label class="selectLabel">Filter:</label>
<div class="innerSelectWrapper">
<div class="filterSelectWrap">
<select id="filterComboBox"></select>
</div>
</div>
</div>
CSS
.selectWrapper {
float: left;
margin: 0;
padding: 5px;
}
.innerSelectWrapper {
float: left;
width: 150px;
margin-left: 5px;
}
span.selectInner {
position: absolute;
display: block;
margin: 0;
padding: 0 0 0 5px;
width: 100%;
height: 22px; /* set same height */
line-height: 22px; /* set same height */
color: #333;
white-space: nowrap;
overflow: hidden;
text-align: left;
text-overflow: clip;
font-weight: normal;
font-size: 1em;
z-index: 901;
background: url('../images/arrow.png') no-repeat 100% -5px #fff; /* fallback bg image*/
background: url('../images/arrow.png') no-repeat 100% -5px, -webkit-linear-gradient(top, #fff, #9c9c9c);
background: url('../images/arrow.png') no-repeat 100% -5px, -moz-linear-gradient(top, #fff, #9c9c9c);
background: url('../images/arrow.png') no-repeat 100% -5px, -ms-linear-gradient(top, #fff, #9c9c9c);
background: url('../images/arrow.png') no-repeat 100% -5px, -o-linear-gradient(top, #fff, #9c9c9c);
background: url('../images/arrow.png') no-repeat 100% -5px, linear-gradient(top, #fff, #9c9c9c);
-webkit-border-radius: 4px;
-moz-border-radius: 4px;
-ms-border-radius: 4px;
-o-border-radius: 4px;
border-radius: 4px;
-webkit-box-shadow: 0 1px 3px rgba(0,0,0,0.3);
-moz-box-shadow: 0 1px 3px rgba(0,0,0,0.3);
-ms-box-shadow: 0 1px 3px rgba(0,0,0,0.3);
-o-box-shadow: 0 1px 3px rgba(0,0,0,0.3);
box-shadow: 0 1px 3px rgba(0,0,0,0.3);
}
select {
width: 100%;
height: 22px; /* set same height */
position: absolute;
left: 0;
z-index: 902;
padding: 0;
margin: 0;
border: 0 none;
float: none;
opacity: 0;
cursor: pointer;
-webkit-appearance: menulist-button;
}
はい、うまく動作します。 1つの問題。 CSSは読み込まれたときのマークアップに影響しますが、新しいアイテムを選択した場合、私は同じ問題に戻ります。新しく選択したテキストが非常に長い場合に備えて、新しいアイテムが選択されたときにCSSをリロードすることはできますか? – Wannabe
@Wannabe何かが選択されたときにJSイベントを取得し、その中で同じスクリプトを実行する必要があります。あなたが理解したいと思っています。 –
私はドロップダウンで項目を再読み込みして動作させました。それはあなたが意味することですか? – Wannabe