スマホでselectのテキストをセンタリングしたようなものを作る
いろいろ参考にしたけど、CSS だけでやるより JS 使ったほうが(個人的に)楽だったという話です。
作りたかったのは、こんなセレクトボックス。
Qiita:スマホでselectのテキストは左右中央にできるのか も参考にしたけど、max-device-width
で iOS と Android を判別する点が好みでなく、CSS だけでやるのはやめた。
やってること
- label と select を並べて置く
- select を透明にし、label に重ねる
- select 変更時に label に選択内容を反映
コードは下記です。
HTML
<ul>
<li>
<label for="age">年代</label>
<select name="age" id="age">
<option value="">年代</option>
<option value="10">10代</option>
<option value="20">20代〜</option>
</select>
</li>
...
CSS
li {
list-style: none;
position: relative;
margin-bottom: 10px;
}
label, select {
display: block;
width: 200px;
height: 30px;
line-height: 30px;
}
label {
background-color: #fff;
color: #0ad;
border: 1px #0ad solid;
border-radius: 15px;
text-align: center;
}
label:after {
content: ">";
transform: rotate(90deg);
display: inline-block;
margin-left: 10px;
}
select {
position: absolute;
top: 0;
opacity: 0;
}
label:after
は FontAwesome 使えば回転しなくていいですね。
jQuery
$('select').on('change', function () {
var id = $(this).attr('id');
$("label[for='"+id+"']").text($('#'+id+' option:selected').text());
});
Author And Source
この問題について(スマホでselectのテキストをセンタリングしたようなものを作る), 我々は、より多くの情報をここで見つけました https://qiita.com/nyu/items/7ad11c6b95210837182e著者帰属:元の著者の情報は、元の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 .