SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

jQuery UI/プラグインの活用

セレクトボックスをスタイリングできるjQueryプラグイン「customSelect.js」

「jQuery プラグイン」の利用(23)

セレクトボックスをミニマルなデザインでスタイリングできる「Minimalect」

 Minimalectは、セレクトボックスにミニマルなデザインを簡単に適用できるjQueryプラグインです。

 図8のように、シンプルで美しいデザインのデフォルトテーマと、展開時の選択肢が吹き出し風デザインのBubbleテーマが用意されています。

図8 Minimalectサンプル(sample02.html)
図8 Minimalectサンプル(sample02.html)

Minimalectを入手する

 まずは、Minimalectは、MITライセンスで配布されており、公式ページから入手できます。

HTMLから参照させ、プラグインを実行する

 ダウンロードしたファイルを展開して、jquery.minimalect.js(通常版)またはjquery.minimalect.min.js(縮小版)をHTMLから参照させます。続いてこのプラグインで使用するCSSファイルも参照させましょう。jquery.minimalect.css(通常版)とjquery.minimalect.min.css(縮小版)がありますが、Internet Explorerで表示が崩れるため、後でカスタマイズしやすいように、ここでは通常版を使用しました。

リスト6 HTMLから外部ファイルを参照させる/HTML(sample01.html)
<!-- jQueryの読込 -->
<script src="http://code.jquery.com/jquery-1.11.1.min.js"></script>
<!-- custumSelec.min.jsの読込 -->
<script type="text/javascript" src="js/jquery.minimalect.js"></script>
<!-- minimalect.cssの読込 -->
<link rel="stylesheet" type="text/css" href="css/jquery.minimalect.css" media="screen" />

 サンプルでは、デフォルトテーマを適用するselect要素に「sample01」というID名を、Bubbleテーマを適用するselect要素には「sample02」というID名を付けました。

リスト7 セレクトボックス/HTML(sample02.html)
<h2>デフォルトテーマ</h2>
<form>
  <select id="sample01">
     <option>選択肢1</option>
     <option>選択肢2</option>
     <option>選択肢3</option>
     <option>選択肢4</option>
     <option>選択肢5</option>
  </select>
</form>
<h2>Bubbleテーマ</h2>
<form>
  <select id="sample02">
     <option>選択肢1</option>
     <option>選択肢2</option>
     <option>選択肢3</option>
     <option>選択肢4</option>
     <option>選択肢5</option>
   </select>
</form>

 後はjQueryのセレクタでselect要素を指定し、プラグインを実行するだけです。次のように指定すると、デフォルトのテーマを適用できます。

リスト8 実行用のスクリプト/JavaScript(sample02.html)
<script type="text/javascript">
$(function(){
  $("#sample01").minimalect();
});
</script>

 オプションで、bubbleテーマを指定し、プレースホルダーのテキストに「選択項目がありません」を指定するには、次のように記述します。

リスト9 実行用のスクリプト/JavaScript(sample02.html)
<script type="text/javascript">
$(function(){
  $("#sample01").minimalect();
  $("#sample02").minimalect({ theme: "bubble", placeholder: "選択項目がありません。" });
});
</script>

 以上が基本的な使い方になりますが、Internet Explorer 11では、右側の三角形やプレースホルダーのテキストの位置がずれて表示されるという問題があります。

図9 IEでは三角形やプレースホルダーの表示が崩れる
図9 IEでは三角形やプレースホルダーの表示が崩れる

 右側の三角形のCSSセレクタは「.minict_wrapper:after」、プレースホルダーは「.minict_wrapper span:empty:before」です。バグの原因となっているのは、これらをセレクタとしているルールセットのうち、line-heightの値の単位がremの箇所です。remとpxの2つの宣言があるので、pxを残し、remの方を削除またはコメントアウトして無効にしましょう。

リスト10 IEで表示がずれるバグを回避する/CSS(jquery.minimalect.css)
.minict_wrapper:after {
~中略~
  line-height: 23px;
  /*line-height: 1.5rem; IE用コメントアウト*/}
.minict_wrapper span:empty:before {
  line-height: 23px;
  /*line-height: 1.5rem; IE用コメントアウト*/}

 以上で、Internet Explorer 11でも問題なく表示されます。jquery.minimalect.cssをカスタマイズすれば、オリジナルのスタイリングもできるでしょう。

まとめ

 現在のところセレクトボックスをCSSのみでスタイリングするには限界があります。CSSを駆使してトリッキーな方法でデザインするよりも、軽くて実装が簡単なjQueryプラグインを使う方がスマートだと言えるでしょう。セレクトボックスを自分で簡単にスタイリングしたい場合には、customSelect.jsを、あらかじめ用意された選択肢まで美しいデザインを簡単に適用したい場合にはMinimalectを、用途に合わせて選択してみてください。

この記事は参考になりましたか?

連載通知を行うには会員登録(無料)が必要です。
既に会員の方はを行ってください。
jQuery UI/プラグインの活用連載記事一覧

もっと読む

この記事の著者

山田 祥寛(ヤマダ ヨシヒロ)

静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for Visual Studio and Development Technologies。執筆コミュニティ「WINGSプロジェクト」代表。主な著書に「独習シリーズ(Java・C#・Python・PHP・Ruby・JSP&サーブレットなど)」「速習シリーズ(ASP.NET Core・Vue.js・React・TypeScript・ECMAScript、Laravelなど)」「改訂3版JavaScript本格入門」「これからはじめるLaravel実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

WINGSプロジェクト 宮本麻矢(ミヤモト マヤ)

WINGSプロジェクトについて>有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。 2026年時点での登録メンバは約50名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂きたい。著書記事多数。 RSS X: @WingsPro_info(公式)、@WingsPro_info/wings(メンバーリスト) Facebook

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/8023 2014/09/22 14:00

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー