2016-12-23 13 views
1

私はこのselectボックスにoptionタグを書式化しようとしていますが、それをクリックするとオプションタグは選択ボックスよりも広いものの、同じでなければなりません。それはCSSを介して起こることは可能ですか?選択ドロップダウンで「オプション」値のスタイルを設定するにはどうすればよいですか?

ここでは、現在進行中です:あなたはまた、ご希望の背景画像が含まれている擬似要素と協力して何ができるかhttp://codepen.io/anon/pen/aBrzqz

.search { 
 
    border: 1px solid #ccc; 
 
    width: 250px; 
 
    overflow: hidden; 
 
    background: #fafafa url("http://www.honigwine.com/assets/images/global/tabs/arrow-down.png") no-repeat 90% 50%; 
 
    font-family: 'Open Sans', sans-serif; 
 
    font-size: 16px; 
 
    float: left; 
 
} 
 
.search select { 
 
    padding: 10px 18px; 
 
    height: 55px; 
 
    width: 110%; 
 
    border: none; 
 
    box-shadow: none; 
 
    background: transparent; 
 
    cursor: pointer; 
 
} 
 
.search select .option { 
 
    padding: 10px 18px; 
 
    width: 250px; 
 
}
<div class="search"> 
 
    <select> 
 
    <option value="" class="option">Choose something</option> 
 
    <option value="">One</option> 
 
    <option value="">Two</option> 
 
    <option value="">Three</option> 
 
    </select> 
 
</div>

+1

歴史的に、私は 'Option' HTMLタグをスタイルするのは非常に難しいと思っていますが、CSS3はほとんどの*ブラウザで適度にこれを行うことができます。トータル入力オーバーホールスタイリングには、さまざまなJavascriptプラグインがあります。これらの両方は、このトピックに関する他の質問に取り組んでいます。 – Martin

+0

それは確かに駄目です。 – Knu

+1

[HTMLの "選択"のスタイルを設定する方法は?](http://stackoverflow.com/questions/7208786/how-to-style-the-option-of-a-html-select) – TylerH

答えて

2

CSSの最後のスタイルは、デフォルトのドロップダウンaroowを隠すだけのカスタム1を示しています。

.search { 
 
    border: 1px solid #ccc; 
 
    width: 250px; 
 
    overflow: hidden; 
 
    background: #fafafa url("http://www.honigwine.com/assets/images/global/tabs/arrow-down.png") no-repeat 90% 50%; 
 
    font-family: 'Open Sans', sans-serif; 
 
    font-size: 16px; 
 
    float: left; 
 
} 
 
.search select { 
 
    padding: 10px 0px; 
 
    height: 55px; 
 
    width: 100%; 
 
    border: none; 
 
    box-shadow: none; 
 
    background: transparent; 
 
    cursor: pointer; 
 
} 
 
.search select .option { 
 
    padding: 10px 0px; 
 
    width:100%; 
 
} 
 
select { 
 
-webkit-appearance: none; 
 
-moz-appearance: none; 
 
appearance: none; 
 
}
<div class="search"> 
 
    <select> 
 
    <option value="" class="option">Choose something</option> 
 
    <option value="">One</option> 
 
    <option value="">Two</option> 
 
    <option value="">Three</option> 
 
    </select> 
 
</div>

+0

がありがとうございましたが、残念ながらこれもデフォルトの矢印が表示されますが、カスタムのままにしておきたいと思います。 – Smithy

+0

私はそれを世話し、私がそれを投稿するとすぐに答えを編集しました、あなたはそれを今受け入れてください、ありがとうございます – ab29007

+0

それです!私はこの外観の属性について知らなかった...ありがとう! – Smithy

0

.search { 
 
    position: relative; 
 
    border: 1px solid #ccc; 
 
    width: 250px; 
 
    font-family: 'Open Sans', sans-serif; 
 
    font-size: 16px; 
 
    float: left; 
 
} 
 
.search:after { 
 
    content: ''; 
 
    position: absolute; 
 
    top: 0; 
 
    left: 100%; 
 
    width: 10%; 
 
    height: 100%; 
 
    background: #fafafa url("http://www.honigwine.com/assets/images/global/tabs/arrow-down.png") no-repeat 90% 50%; 
 
} 
 
.search select { 
 
    padding: 10px 18px; 
 
    height: 55px; 
 
    width: 110%; 
 
    border: none; 
 
    box-shadow: none; 
 
    background: transparent; 
 
    cursor: pointer; 
 
} 
 
.search select .option { 
 
    padding: 10px 18px; 
 
    width: 250px; 
 
}
<div class="search"> 
 
    <select> 
 
    <option value="" class="option">Choose something</option> 
 
    <option value="">One</option> 
 
    <option value="">Two</option> 
 
    <option value="">Three</option> 
 
    </select> 
 
</div>

+0

これは残念なことにデフォルトの矢印を表示させますが、私はカスタムを維持したいと考えています – Smithy

+1

Sryは質問を誤読しました。スニペット – SvenL

0

はまあ、別のあなたは、あなたのbackground positionを設定し、以下のようにtopimgすることにより、その選択矢印を非表示にすることができますselectnoneappearanceを設定する1 optionあり

.search { 
 
    border: 1px solid #ccc; 
 
    width: 250px; 
 
    overflow: hidden; 
 
    background: #fafafa url("http://www.honigwine.com/assets/images/global/tabs/arrow-down.png") no-repeat 100.4% 48%; 
 
    font-family: 'Open Sans', sans-serif; 
 
    font-size: 16px; 
 
    float: left; 
 
} 
 

 
.search select { 
 
    padding: 10px 18px; 
 
    height: 55px; 
 
    width: 100%; 
 
    border: none; 
 
    box-shadow: none; 
 
    background: transparent; 
 
    cursor: pointer; 
 
} 
 

 
.search > select > .option { 
 
    padding: 10px 18px; 
 
     width: 250px; 
 
}
<div class="search"> 
 
    <select> 
 
\t \t \t  <option value="" class="option">Choose something</option> 
 
\t \t \t  <option value="">One</option> 
 
\t \t \t  <option value="">Two</option> 
 
\t \t \t  <option value="">Three</option> 
 
\t \t \t </select> 
 
</div>

+0

@Smithyこれもうまくいく:-) – frnt

関連する問題