- •34. Проектирование, компоновка и представление форм с помощью css
- •Концепции, представленные в этой статье
- •Переопределение правил и маркеров
- •Новые элементы полей формы
- •Изменения относительно предыдущей формы
- •Очевидные недостатки
- •Новые поля форм? Что это?
- •Когда слишком много вариантов выбора: select/option
- •Объединение последовательности элементов управления: fieldset
- •Начинаем с самого начала, заканчиваем готовой формой
- •Демонстрация 1
- •Демонстрация 1: сопутствующие рассмотрения
- •Демонстрация 2
- •Демонстрация 2: сопутствующие рассмотрения
- •Демонстрация 3
- •Демонстрация 3: сопутствующие рассмотрения
- •Создание сетки
- •Создание структуры сетки в композиции
- •Реализация сетки в таблице стилей
- •Демонстрация 4
- •Демонстрация 4: сопутствующие рассмотрения
- •Правило третей
- •Демонстрация 5
- •Демонстрация 5: сопутствующие рассмотрения
- •Демонстрация 6
- •Демонстрация 6: сопутствующие рассмотрения
- •Демонстрация 7
- •Демонстрация 8
- •Демонстрация 8: сопутствующие рассмотрения
- •Демонстрация 9
- •Демонстрация 9: сопутствующие рассмотрения
- •Демонстрация 10
- •Демонстрация 10: сопутствующие рассмотрения
- •Демонстрация 11
- •Демонстрация 11: сопутствующие рассмотрения
- •Демонстрация 12
- •Демонстрация 12: сопутствующие рассмотрения
- •Создание уровней поддержки платформы
- •Сложные компоновки форм на практике (… вместо теории)
- •Заключение
- •Контрольные вопросы
- •Библиография
- •Об авторе
Изменения относительно предыдущей формы
Кроме включения нескольких новых элементов, в разметку было добавлено несколько классов и ID, на которые можно ссылаться из таблицы стилей. Это позволяет независимо от контекста ссылаться индивидуально на каждую форму, пару поле/значение, и поле.
Новые идентификаторы позволяют также различать поля, которые должны заполняться, и поля, которые не должны.
Наконец, имеется несколько новых классов, которые выводят указания об объеме и типах информации, которая должна выводиться элементами формы, к которым они присоединены. Эти классы делают возможным применять детали компоновки к нескольким произвольным элементам одновременно.
Очевидные недостатки
Так как предполагается, что демонстрационная форма является основным контентом, надпись (legend), использованная в предыдущей статье о формах, была заменена заголовком.
Надписи наиболее подходящи во множествах полей (fieldset) вместо меток (которые предназначены для связи с одиночными элементами управления). В данном случае элемент legend был опущен полностью, так как его трудно оформлять.
Стоит также отметить, что "требуемые" теги на полях лучше всего помещать перед полем в порядке исходного кода, чтобы обеспечить пользователей программного обеспечения считывателей экрана. Однако требуется свойство position (которое находится за рамками этой статьи) для соответствующего размещения этих объектов. В связи с этим "требуемые" теги были помещены после их соответствующих элементов управления в порядке исходного кода (хотя и в том же контексте).
Новые поля форм? Что это?
Текстовые поля и элементы управления отправкой были введены в предыдущей статье. Как было отмечено выше, существует ряд случаев применения, которые требуют, чтобы пользователь мог выбрать из двух или нескольких вариантов. Эти элементы описываются кратко ниже.
Выбор описаний: input type="checkbox"
…
<label for="availability">My account is unavailable:</label><input type="checkbox"
name="is_down" id="availability" class="rInput" />
Вопросы регистрации и отказа обычно обрабатываются такими элементами управления. Другой случай их применения, когда требуется произвольно выбрать из нескольких вариантов, например, список личных интересов.
Выбор из взаимно-исключающих состояний: input type="radio"
…
<label for="acctNone">Account type:</label>
<fieldset>
<label for="acctGold">Gold</label><input type="radio" name="acct_type" id="goldAcct"
class="rInput" />
<label for="acctSilver">Silver</label><input type="radio" name="acct_type"
id="acctSilver" class="rInput" />
<label for="acctBronze">Bronze</label><input type="radio" name="acct_type"
id="acctBronze" class="rInput" />
<label for="acctNone">None</label><input type="radio" name="acct_type" id="acctNone"
class="rInput" checked="checked" />
</fieldset>
Такая группа позволяет представить рядом несколько вариантов, из которых можно выбрать только один вариант. Одним хорошим примером применения множества радио-кнопок является задание оценки из шкалы 1-5 или 1-10.
В отличие от других элементов управления формы радио-кнопки не только позволяют, но в действительности требуют, чтобы соответствующие элементы управления использовали одно и то же имя.
Эти элементы управления получили свое название по кнопкам механической настройки предварительно заданных радиостанций автомобильной магнитолы. В отличие от программируемых предварительных настроек, обычных для устройств с цифровой настройкой, механические кнопки "предварительной настройки" при нажатии обычно помещают приемник в середине диапазона частот полосы настройки.
Как флажки (checkbox), так и радио-кнопки (radio) позволяют использовать атрибут checked, который, если задан, активирует элемент управления по умолчанию, когда он выводится первый раз.
Вопрос использования радио-кнопок или флажков должен решаться после рассмотрения ряда различных факторов. Если вы хотите, чтобы пользователь подтвердил субъективный выбор (такой как регистрация в списке почтовой рассылки), то флажки будут, вероятно, лучшим вариантом. Если вы хотите вместо этого, чтобы пользователь выбрал между двумя объективными вариантами (например, скажем, пол), то тогда лучше использовать радио-кнопки.
