CSS1にきちんと対応していれば、 オプション選択の項目に画像を入れることが出来ます。この機能を使えば、 今までのように黒丸やアラビア数字といった記号的文字ではなく、画像ファイルによるマーカーが使えます。 しかも、スクリプトによる複雑な処理は必要ありません。 HTMLも無駄のないすっきりしたものになります。
01 <SELECT>
02 <OPTION>select 01</OPTION>
03 <OPTION>select 02</OPTION>
04 <OPTION>select 03</OPTION>
05 <OPTION>select 04</OPTION>
06 <OPTION>select 05</OPTION>
07 </SELECT>
ご覧の通り、基本的なことしか記述していません。次のコードが重要です。
01 OPTION
02 {
03 display:list-item;
04 list-style-position:inside;
05 list-style-image:url(marker.gif);
06 }
項目をリスト項目として扱うようにしています。このプロパティの値によって、ブラウザによる表示などが変化します。
リスト項目のマーカーの位置を指定しています。このようにすることで、項目の頭にマーカーが入ります。 デフォルトの outside ではマーカーははみ出してしまいます。
マーカーとして使う画像ファイルを指定しています。指定のし方は background-image などと同じです。 画像サイズは項目の高さに影響するので、あまり高さのある画像は使用しないほうがいいでしょう。 基本的には、アイコン程度のサイズ(32*32)が限界だと思います。