Шрифт:
По умолчанию сами элементы форм могут очень сильно различаться внешне – в зависимости от операционной системы и браузера, в котором открыт сайт. Почему бы не использовать эту разницу, применяя рабочие фрагменты CSS3, чтобы улучшить пользовательский опыт?
Важно сохранять баланс: немного изменяя элементы форм, нужно сохранять их узнаваемость, чтобы позаботиться о юзабилити. Иными словами, поле ввода должно явно выглядеть как поле ввода. Теперь, когда элементы форм можно стилизовать с помощью CSS (в большинстве браузеров), нужно быть осторожными, чтобы не разрушить самую важную часть: функциональность.
При этом в отношении CSS3 с формами можно сделать очень многое, чтобы расширить пользовательский опыт в тех браузерах, которые поддерживают новые свойства; в остальных браузерах нужно показывать упрощенную версию.
Эта глава также дает возможность поговорить о трех аспектах CSS3, которых мы до сих пор не касались:
1) новые мощные селекторы;
2) CSS-градиенты;
3) CSS-анимации.
Мы вновь обратимся к сайту-примеру с Луной как к отправной точке, чтобы поговорить о том, как формы и CSS3 могут сочетаться новыми и необычными способами. Будем работать с формой регистрации «Оповещение о новых предметах», расположенной справа сбоку (рис. 6.01).
Рис. 6.01. Простая форма, где посетитель может подписаться на обновления о том, что на Луне оставили новые вещи
Разметка для простой формы регистрации
В терминах HTML эта небольшая форма очень проста: всего лишь несколько полей ввода, подписи к ним и кнопка «подписаться».
На рис. 6.02 форма показана так, как она выглядит со стилями по умолчанию, которые выставляет браузер (в этом примере – Safari).
Рис. 6.02. Форма, открытая в Safari; без стилей
Стили для полей и подписей
Первые фрагменты CSS, которые мы добавим, чтобы начать построение этой формы, будут обрабатывать элементы
Глядя на рис. 6.03, можно увидеть, что мы добавили отступ в
Рис. 6.03. К элементам fieldset и label применены стили
Теперь у нас есть хороший интервал в 10px между элементами
Это часто встречающаяся ситуация: есть список элементов, к каждому из которых применяется один и тот же стиль, но нужно применить другой стиль к последнему элементу списка.
Вместо добавления