CSSだけで<select>をカスタマイズする
Form系要素スタイルの初期化
ブラウザのForm系要素の初期スタイルをはがすときには、appearance: none
をあてつつ、background
やborder
などのリセットをする。
select {
-moz-appearance: none;
-webkit-appearance: none;
appearance: none;
border-radius: 0;
border: 0;
margin: 0;
padding: 0;
background: none transparent;
vertical-align: middle;
font-size: inherit;
color: inherit;
box-sizing: content-box;
}
しかし<select>
だと、WebKit系のを除けば、-moz-apperance
としているFirefoxでさえも、選択のUIボタンが残っちゃう。
IE10
Firefox25
Opera12.16
overflow
でごまかす
先に結果をみせるとこんな感じ。
マークアップ例
<div class="custom">
<select name="options">
<option value="option-1">Option</option>
</select>
</div>
CSS(必要な部分のみ抜粋)
.custom {
overflow: hidden; /* 伸ばした分を隠す */
}
.custom > select {
width: 130%; /* UI分を伸ばす */
}
と、シンプルに対応できる。今のところは困ってない。
他のやり方
Firefoxには、
select {
-moz-appearance: none;
text-indent: 0.01px;
text-overflow: '';
}
IE10には、
select::-ms-expand {
display: none;
}
ってのがあるそう。
Codepen
Author And Source
この問題について(CSSだけで<select>をカスタマイズする), 我々は、より多くの情報をここで見つけました https://qiita.com/hiloki@github/items/844726db4128ebb0fdd8著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .