Web разработка. Делаем стильные html формы.

Владимир | | CSS, HTML.

Сложно представить современный интернет без форм для ввода данных. Они повсюду. Практически все 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.

Вы можете скачать архив с демонстрационной страницей.

Постовой

Хотите отдохнуть? Смотрите фильмы онлайн.