Создание улучшенных select-элементов с помощью jQuery и CSS3

При создании веб-дизайна разработчики очень часто спотыкаются на элементах управления (например, select), располагающихся на сайте. Дело в том, что такие элемены выглядят не одинаково в разных браузерах, поэтому дизайнеру труднее донести до пользователя нужную информацию.

Именно поэтому, в этой статье мы и рассмотрим создание улучшенного элемента select.

Пример Скачать (.zip, 64 Кб)

HTML

И начнем эту часть руководства со HTML. Мы будем использовать HTML 5, потому как он дает нам некоторые приемущства, например, дополнительные атрибуты данных, которые мы будем использовать в разметке страницы.

select-jquery.html

Вы, наверное, увидели, что мы использовали атрибуты data для встраивания информации в элементы option управляющего элемента select. Будем использовать иконки продуктов и их описание для отображения улучшенной версии элемента select.

В первый элемент из списка мы поставили атрибут data-skip. Он нужен для того, чтобы скрипт знал, что такой элемент в список выборки включать не нужно. Альтернативой этому атрибуту будет проверка значений атрибутов data-icon и data-html-text, и если они не заполнены, то не включать такой элемент в генерируемый список.

В конце документа подключаем jQuery и наш скрипт, о котором речь пойдет дальше.

jQuery

На событие document.ready jQuery проверяет все элементы select, и используя данные атрибутов, строит разметку новых улучшенных вариантов:

Как вы можете видеть, новый элемент select представляет собой неупорядоченный список с элементами li. Сам бокс представлен элементом div с классом .selectBox.

Теперь посмотрим на генерацию кода.

js/script.js

Стоит отметить, что при построении нового элемента старый select не уничтожается, а прячется от пользователя с помощью метода hide (). Это очень важно, потому что при отсутствии поддержки javascript функционал страницы останется работоспособным.

После генерации у нас есть разметка, которую мы будем оформлять с помощью CSS3.

CSS

Как вы можете видеть, мы использовали минимальное количество элементов для построения управляющего элемента. И все это стало возможным, благодаря CSS3.

css/styles.css

Одной из самых приятных вещей, добавленных в CSS3, стала возможность добавлять мульти-бэкграунды.

В настоящее время мульти-бэкграунды поддерживаются всеми современными браузерами, кроме Internet Explorer. В нем отображается только первый заданный бэкграунд.

Свойство box-sizing, которое используется для класса .dropDown, определяет будут ли бордюры участвовать в расчете размеров элемента. Обычно, если у элемента есть бордюры, то они увеличивают его размер. Но если установить для свойства box-sizing значение border-box, то размер элемента будет постоянным, вне зависимости от толщины его бордюров.

На этом создание улучшенного select-элемента с помощью jQuery и CSS3 завершено!


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