Ниже представлено решение на JavaScript и CSS, с помощью которого можно было бы изменить внешний вид любой части выпадающего списка. При этом соблюдена кроссбраузерность, а также решена проблема, возникающая в IE 6 при перекрытии DIV`ом выпадающего списка select, который оказывался видимым при любом значении z-index.

Стилизация выпадающих списков основывается на замене стандартного элемента html <select>  на маркированный список<ul>, оформленный с помощью CSS необходимым нам образом.

JavaScript перехватывает все события onClick на странице и проверяет не "нажал" ли пользователь на ту или иную область выпадающего списка. Если произошло необходимое событие, и необходимо раскрыть, свернуть или выбрать необходимый элемент, скрипт применяет к элементам маркированного списка соответствующие стили и изменяет выбранное значение исходного выпадающего списка <select> (который был скрыт при загрузке страницы).

Ниже привожу результат стилизации (взят с реального проекта):

styled-drop-down

Чтобы не загромождать страницу кодом размещаю ссылку на архив с рабочим примером.

Tags: , , ,
Share  

Комментарии (4) на запись “Стилизированный раскрывающийся список (select в html)”

  1. orisline.ru пишет:

    хорошее решение

    [Ответить]

  2. Ди пишет:

    А если много элементов списка? как сделать прокрутку?

    [Ответить]

    Егор Reply:

    Сделать фиксированную высоту и overflow:scroll у , на который заменяется . Если надо стилизовать полосу прокрутку, воспользуйтесь скриптом FleXcroll: http://www.hesido.com/web.php?page=customscrollbar

    [Ответить]

    Егор Reply:

    Сделать фиксированную высоту и overflow:scroll у ul, на который заменяется select.

    [Ответить]

Оставить комментарий