Ниже представлено решение на JavaScript и CSS, с помощью которого можно было бы изменить внешний вид любой части выпадающего списка. При этом соблюдена кроссбраузерность, а также решена проблема, возникающая в IE 6 при перекрытии DIV`ом выпадающего списка select, который оказывался видимым при любом значении z-index.
Стилизация выпадающих списков основывается на замене стандартного элемента html <select> на маркированный список<ul>, оформленный с помощью CSS необходимым нам образом.
JavaScript перехватывает все события onClick на странице и проверяет не "нажал" ли пользователь на ту или иную область выпадающего списка. Если произошло необходимое событие, и необходимо раскрыть, свернуть или выбрать необходимый элемент, скрипт применяет к элементам маркированного списка соответствующие стили и изменяет выбранное значение исходного выпадающего списка <select> (который был скрыт при загрузке страницы).
Ниже привожу результат стилизации (взят с реального проекта):

Чтобы не загромождать страницу кодом размещаю ссылку на архив с рабочим примером.
Tags: CSS, HTML, JavaScript, Mihalytch
05.01.2010 в 18:04
хорошее решение
[Ответить]
16.02.2010 в 09:01
А если много элементов списка? как сделать прокрутку?
[Ответить]
Егор Reply:
Июнь 7th, 2010 at 16:14
Сделать фиксированную высоту и overflow:scroll у , на который заменяется . Если надо стилизовать полосу прокрутку, воспользуйтесь скриптом FleXcroll: http://www.hesido.com/web.php?page=customscrollbar
[Ответить]
Егор Reply:
Июнь 7th, 2010 at 16:16
Сделать фиксированную высоту и overflow:scroll у ul, на который заменяется select.
[Ответить]