HTML & CSS для начинающих

HTML и CSS для начинающих (Часть 46): Форма обратной связи (1)

Все видео урока

Я предполагаю, что вы создадите дополнительный 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, уже описано подробно. Здесь же должно быть уделено полное внимание оформлению формы.

Когда результат отображается в браузере, сначала мы видим не слишком привлекательную форму.

HTML и CSS для начинающих (Часть 46): Форма обратной связи (1)



Тут, конечно, есть место для улучшения.

Сначала приводятся базовые данные о форме.

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. Над ним определяется заголовок формы.

HTML и CSS для новичков (Часть 46): Форма обратной связи (1)



Определение заголовка выглядит следующим образом:

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. Это сигнализирует посетителям о том, что подписи полей можно щелкнуть. Если они действительно нажмут на описание поля, курсор автоматически перейдет в соответствующее поле.

HTML и CSS для начинающих (Часть 46): Форма обратной связи (1)

Оформление полей формы

Далее идет оформление собственно полей формы. Сначала делаются общие указания для 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, это проблему внешнего вида можно обойти.

Создание кнопки "Отправить"

В данный момент кнопка "Отправить" выглядит довольно скромно. Это теперь изменится. Результат будет выглядеть следующим образом:

HTML & CSS для начинающих (Часть 46): Форма обратной связи (1)



На кнопке будут назначены различные свойства.

• Цвет фона

• Внешний вид шрифта

• Рамка

• Отступы

Соответствующий синтаксис 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".