Я предполагаю, что вы создадите дополнительный HTML-файл. В любом случае, я сохраняю его под именем kontakt.html. Kontakt.html находится на том же уровне, что и уже известный вам index.html.
В этой первой части базовые настройки формы делаются. Вещи, такие как скругленные углы, градиенты и т. д., будут добавлены в следующем уроке.
Внутри kontakt.html вы создаете форму. Форма определяется внутри области div с классом content. Затем обдумайте, какие поля вы хотите создать. Я решил запросить следующую информацию:
• Имя
• Адрес электронной почты
• Комментарий
Естественно, вам самим нужно решить, какую информацию вы хотите получить. Однако в целом я рекомендую запрашивать только фактически необходимые данные. Большинство посетителей веб-сайтов избегают обширных форм. Так что делайте это коротко.
Основная структура моей формы выглядит так:
<div class="content">
<formclass="form" action="#" method="post">
<fieldset>
<legend>Свяжитесь с нами</legend>
<ol>
<li>
<label for="name">Имя:</label>
<input type="text" name="name"id="name" value="" />
</li>
<li>
<label for="email">Адрес электронной почты:</label>
<input type="text" name="email" id="email"value="" />
</li>
<li>
<label for="comment">Комментарий:</label>
<textarea cols="32" rows="7"name="content" id="content"></textarea>
</li>
<li class="button">
<input type="submit" name="submit"id="submit" value="Отправить" />
</li>
</ol>
</fieldset>
</form>
</div>Форма сначала не имеет ничего особенного. Вокруг элементов формы применено определение полей fieldset. Как создать форму и что такое элементы label, уже описано подробно. Здесь же должно быть уделено полное внимание оформлению формы.
Когда результат отображается в браузере, сначала мы видим не слишком привлекательную форму.
Тут, конечно, есть место для улучшения.
Сначала приводятся базовые данные о форме.
form {
padding: 3px 0 0;
margin: 10px auto;
width: 550px;
}
Здесь определены внешние и внутренние отступы. Кроме того, для формы устанавливается ширина 550 пикселей.
Теперь переходим к оформлению поля fieldset.
fieldset {
padding: 10px 20px 25px;
}
Здесь также определяются отступы.
Сами элементы формы размещены в упорядоченном списке ol.
ol {
list-style-type: none;
margin: 0;
padding: 0;
}
Чтобы этот список больше не выглядел как список, используется параметр list-style-type: none;. Кроме того, границы и внутренний отступ устанавливаются на 0.
Далее определяются элементы списка. Они выравниваются влево и имеют внутренний отступ 10 пикселей.
li {
float: left;
padding: 10px;
}
Есть еще одна особенность, касающаяся кнопки, которая находится под формой. Она должна быть выровнена по правому краю.
li.button {
float: none;
clear: both;
text-align: right;
}Заголовок формы
Теперь обратимся к элементу legend. Над ним определяется заголовок формы.
Определение заголовка выглядит следующим образом:
fieldset legend {
font-weight: bold;
font-size: 22px;
margin: 20px 0 0 10px;
}Надписи
Элемент label вам также уже встречался в рамках этой серии. Через этот элемент label создается логическая связь между подписью поля и самим полем формы. Кстати, по поводу определения CSS здесь есть особенность.
label {
display:block;
cursor: pointer;
font-weight: bold;
line-height: 24px;
}
Я добавляю к элементу label, среди прочего, указание cursor. Это сигнализирует посетителям о том, что подписи полей можно щелкнуть. Если они действительно нажмут на описание поля, курсор автоматически перейдет в соответствующее поле.
Оформление полей формы
Далее идет оформление собственно полей формы. Сначала делаются общие указания для input и textarea.
input, textarea {
color: #3399FF
border: 1px solid #3399FF;
font: 13px Helvetica, Arial, sans-serif;
padding: 8px 10px;
width: 190px;
}
Это касается исключительно дизайнерских вещей. Особое внимание следует уделить рамкам. Как только вы перемещаете курсор в поле, цвет рамки изменяется. Это, кстати, не только эстетический аспект. Фактически, это также помогает посетителям заполнять форму. Таким образом, они всегда видят, в каком поле находится курсор.
Теперь следуют некоторые указания к многострочному текстовому полю.
textarea {
width: 430px;
overflow: auto;
}
Ширина этого поля устанавливается в 430 пикселей. Возможно, на первый взгляд странной может показаться инструкция overflow: auto в контексте многострочных текстовых полей. Эта строка обусловлена старыми версиями Internet Explorer. Фактически, этот браузер также отображал полосы прокрутки в многострочных текстовых полях, даже когда это не было необходимо. Используя overflow: auto, это проблему внешнего вида можно обойти.
Создание кнопки "Отправить"
В данный момент кнопка "Отправить" выглядит довольно скромно. Это теперь изменится. Результат будет выглядеть следующим образом:
На кнопке будут назначены различные свойства.
• Цвет фона
• Внешний вид шрифта
• Рамка
• Отступы
Соответствующий синтаксис CSS выглядит следующим образом:
input[type="submit"] {
background-color: #3399FF;
color: #fff;
cursor: pointer;
font: bold 1em/1.2 Georgia, "Times New Roman ", serif;
border: 1px solid #000;
padding: 5px 10px;
width: auto;
}
Здесь, возможно, стоит отметить указание input[type="submit"]. Этот селектор обращается к элементам input, которые имеют атрибут-значение type="submit".