JavaScript PR

jquery.custom-select.jsを使ってセレクトボックスをカスタマイズする方法【IE6も対応】

記事内に商品プロモーションを含む場合があります

セレクトボックスまでデザインにあわせて欲しいと要望があった際に使用しました。
デフォルトのセレクトボックスでイイじゃんって、何度も心の中で思ってました。
jquery.custom-select.jsを使ってセレクトボックス(select)をカスタマイズする方法をご紹介します。IE6にも対応してます。

セレクトボックス(select)をカスタマイズするCSSの記述

※select.cssファイルを読み込みます。必要に応じて変更して下さい。

<link rel="stylesheet" href="select.css" type="text/css" media="all" />
<style type="text/css">
<!--
body{
	font-size: 12px;
	font-family:Verdana,"Hiragino Kaku Gothic Pro","ヒラギノ角ゴ Pro W6",Osaka,"MS Pゴシック",Arial,sans-serif;
	color:#000000;
	margin:0;
	padding:0;
}
h1{
	font-size:16px;
	font-weight:normal;
	line-height:1.2em;
	text-align:center;
	padding:15px 0;
}
a{
	font-size:16px;
	text-decoration:none;
}
p{
	text-align:center;
}
#idWrap{
	width:235px;
	margin:0 auto;
	text-align:center;
}
-->
</style>

select.cssファイルの調整

CSSファイル内13行目以降

/* Custom Select */
dl.custom-select {
position:relative;
width:78px;
height: 31px;
font-size: 12px;
text-align: left;
}

上記以降のサイズやpadding、背景画像等を調整します。

jquery.custom-select.jsを使ったJavaScriptの記述

※jquery.min.js(1.6系)とjquery.custom-select.jsファイルを読み込みます。$.customSelect()を記述します。

<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"></script>
<script type="text/javascript" src="jquery.custom-select.js"></script> 
<script type="text/javascript">
    $(function() {
		$.customSelect();
    });
</script>

jquery.custom-select.jsファイル内の調整

ファイル内4行目辺りの

$('select[name^=yyyy], select[name^=mm]').each(function() {

「yyyy」「mm」がセレクトボックスのname値になるので適当に設定します。

セレクトボックスをカスタマイズするHTMLの記述

※カスタマイズしたいセレクトボックス(select)name=”yyyy”とname=”mm”を用意しました。

<select name="yyyy" id="yyyy">

<option value="2012">2012</option>

<option value="2013">2013</option>

<option value="2014">2014</option>

</select>
<select name="mm" id="mm">

<option value="01">01</option>

<option value="02">02</option>

<option value="03">03</option>

<option value="04">04</option>

<option value="05">05</option>

<option value="06">06</option>

<option value="07">07</option>

<option value="08">08</option>

<option value="09">09</option>

<option value="10">10</option>

<option value="11">11</option>

<option value="12">12</option>

</select>

セレクトボックスをカスタマイズするjsのデモページ

セレクトボックスをカスタマイズするjsのデモ

ここまでカスタムする必要あるんですかねと思ってしまいますが、このこだわりがあるから、良いモノができるんでしょうね。
なるべく時間とコストが許す限り期待には応えたいです。

 
※流用される場合は自己責任でお願いします。
 デモページタグ内のGoogleアナリティクスタグは流用しないで下さい。