選択項目にスタイルを追加するための純粋なcss(スクリプトなし)
2022-01-15 21:43:50
通常、ul,li でモックすることで、select のデフォルトスタイルを変更します。
このようにデフォルトのselectスタイルを変更するJqueryプラグインはたくさんあります。
その後、外国の方が書かれたブログで、cssのスタイルを使ってselectの外にdivを追加し、selectの幅を親divの幅より小さく設定し、divのbackgroundプロパティを設定してselectのデフォルト矢印のスタイルを変えているのを読んだことがあります。
この方法は、スクリプトを書かずに、純粋にcssだけで実現できる方法なので、悪くないと思います。
ただし、この方法には欠点があり、IEシリーズではオプションを選択すると背景色がブロックされる、IE7-IE10ではこのバグがある。
Operaでは、set divの背景画像が表示されない、つまりselectのドロップダウン矢印が表示されないが、これはどういう原因によるものかは不明。
以下のコード
<div class="select_style">
<select name="select">
<option>AAAAAAAAAAAA</option>
<option>BBBBBBBBBBBB</option>
<option selected>CCCCCCCCCCCCCC</option>
<option>DDDDDDDDDDDD</option>
</select>
</div>
.select_style {width:240px; height:30px; overflow:hidden; background:url(. /images/arrow.png) no-repeat 215px;
border:1px solid #ccc;
-moz-border-radius: 5px; /* Gecko browsers */
-webkit-border-radius: 5px; /* Webkit browsers */
border-radius:5px;
}
.select_style select { padding:5px; background:transparent; width:268px; font-size: 16px; border:none; height:30px;
-webkit-appearance: none; /*for Webkit browsers*/
}
このようにデフォルトのselectスタイルを変更するJqueryプラグインはたくさんあります。
その後、外国の方が書かれたブログで、cssのスタイルを使ってselectの外にdivを追加し、selectの幅を親divの幅より小さく設定し、divのbackgroundプロパティを設定してselectのデフォルト矢印のスタイルを変えているのを読んだことがあります。
この方法は、スクリプトを書かずに、純粋にcssだけで実現できる方法なので、悪くないと思います。
ただし、この方法には欠点があり、IEシリーズではオプションを選択すると背景色がブロックされる、IE7-IE10ではこのバグがある。
Operaでは、set divの背景画像が表示されない、つまりselectのドロップダウン矢印が表示されないが、これはどういう原因によるものかは不明。
以下のコード
コピーコード
コードは以下の通りです。
<div class="select_style">
<select name="select">
<option>AAAAAAAAAAAA</option>
<option>BBBBBBBBBBBB</option>
<option selected>CCCCCCCCCCCCCC</option>
<option>DDDDDDDDDDDD</option>
</select>
</div>
コピーコード
コードは以下の通りです。
.select_style {width:240px; height:30px; overflow:hidden; background:url(. /images/arrow.png) no-repeat 215px;
border:1px solid #ccc;
-moz-border-radius: 5px; /* Gecko browsers */
-webkit-border-radius: 5px; /* Webkit browsers */
border-radius:5px;
}
.select_style select { padding:5px; background:transparent; width:268px; font-size: 16px; border:none; height:30px;
-webkit-appearance: none; /*for Webkit browsers*/
}
関連
-
html-webpack-plugin' を使用して html ページをインメモリで生成するプラグインです。
-
入力ボックスのカーソルサイズ表示に矛盾がある場合の対処法
-
html doctypeの役割の紹介
-
cssを使ったhtmlフォームコントロールの美化(フォームビューティフィケーション)の詳細例
-
html2canvasを用いたBaiduマップによるDom要素の画像化処理ソリューション
-
htmlにおけるアンカーポイントの応用
-
入力ボックスのオートコンプリートをオフにする
-
dl,dt,ddはどのような場合に使用するのが適切ですか?
-
あまり使われないけど便利なXhtmlタグ
-
HTMLテキストエスケープのヒント
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
htmlページにミュージックビデオを追加する例
-
HTMLテーブルのマウスドラッグ&ドロップによる並べ替え機能
-
htmlのmarquee属性について説明します。
-
IE、Firefox、Chromeの各ブラウザでスペースが不規則に表示される。
-
ページ内ジャンプの手法を実現するためのタグのname属性とid属性
-
HTMLにアンダーラインを設定する方法?htmlテキストアンダーラインメソッド
-
画像ボタンをリセットフォームボタンとして使用する方法
-
URLを入力したときにバックグラウンドで起こること
-
デザイナーはコードを書くことを学ぶ必要があるのか?
-
HTMLの基本的なディレクトリの問題(相対パスと絶対パスの違い)