Сложно представить современный интернет без форм для ввода данных. Они повсюду. Практически все web сервисы требуют авторизации или, как минимум, ввода имени и адреса email. Для ускорения работы с формами существуют специальные программы, многие браузеры имеют функцию автозаполнения…. Но сегодня речь не о них.
Мы посмотрим, как сделать обычную html форму удобнее для посетителей. И, кроме того, сделаем ее доступной для программ чтения с экрана, текстовых браузеров и тому подобного софта.
Рассмотрим html разметку страницы с формой:
<form id="hform" action="#" method="post"> <p> <label for="userName">Имя:</label> <input type="text" id="userName" class="inputField" /> </p> <p> <label for="userEmail">eMail:</label> <input type="text" id="userEmail" class="inputField" /> </p> <p> <input type="submit" name="btn" value="Отправить" /> </p> </form>
Тут создана обычная форма с двумя текстовыми полями для ввода имени и адреса email.
Сразу обратите внимание на тег <label>
. Внутри него находится текст, который поясняет, что нужно вводить в соответствующее поле формы. Атрибут for
этого тега указывает на поле формы, к которому относится данный <label>
.
Примечание: значение атрибута for
должно совпадать с именем соответствующего поля формы (атрибут id
).
Что дает использование этого тега? Для обычного браузера – ничего. Потому что человек визуально оценивает размещение элементов на странице. Программы чтения web страниц сделать такую оценку не могут, а тег <label>
позволяет однозначно указать соответствие между поясняющим текстом и полями формы.
Переходим к оформлению. Html разметка остается прежней, просто добавим несколько CSS стилей:
body { font-family: Verdana, sans-serif; margin: 1em 1em 1em 1em; } input.inputField { font-family: Verdana, sans-serif; background-color: #E6E5EA; border: solid 1px #11385F; font-weight: bold; }
Как видите, мы установили параметры шрифтов, цвета рамки и фона полей ввода.
После применения стилей наша форма будет выглядеть примерно так:
Рис.1. Форма без подсветки
Теперь создадим стиль, который будет изменять цвета фона и рамки активного поля (т.е. того, в который установлен курсор).
input.inputField:focus { background-color: #FFFFFF; border: solid 1px #FF0000; }
Псевдо-класс :focus
указывает, что стиль будет применяться только для поля, в котором находится фокус ввода (установлен курсор).
На рис.2 показано как выглядит форма при вводе адреса электронной почты.
Рис.2. Форма с подсветкой
Как видите, несколько простых стилей позволяют сделать форму значительно симпатичнее.
К сожалению, Internet Explorer не поддерживает псевдо-класс :focus
(в FireFox и Opera все отображается правильно), поэтому для получения аналогичного эффекта в этом браузере придется использовать JavaScript.
Вы можете скачать архив с демонстрационной страницей.
Постовой
Хотите отдохнуть? Смотрите фильмы онлайн.