Создание привлекательной формы. Часть 1

Создание привлекательной формы

От автора: тема веб-форм, на мой взгляд, довольно актуальна. Практически на любом сайте сейчас можно найти форму. Даже на одностраничниках зачастую имеется форма обратной связи. Что уж говорить о больших сайтах, на них формы представлены во всем их многообразии — это и контактные формы, формы отзывов, формы авторизации, всевозможные опросы и голосования и т.д.

В данном уроке мы с Вами шаг за шагом создадим привлекательную форму для отзывов. Итак, приступим…

скачать исходникискачать урок

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

Совсем недавно мне пришлось создать одну такую форму для нашего сайта. Найти ее Вы можете на странице Отзывов. На мой неискушенный взгляд форма получилась довольно привлекательной и, главное, живой, реагирующей на действия пользователя:

В этом уроке мы попробуем шаг шагом создать похожую форму только с немного меньшим количеством полей.

Итак, начнем, как всегда, с разметки. Создадим все необходимые поля формы:

Давайте немного пройдемся по разметке. В форме имеются обязательные поля — возле них мы поставили символ звездочки. Также в форме присутствует выпадающий список с пока что лишь двумя странами, в то время как в оригинальной форме таких стран больше двух сотен. В конце урока мы найдем оригинальное решение, позволяющее создать такой список без плагиата кода буквально за пару минут.

Итак, можем взглянуть на текущий результат. Пока что форма выглядит обыденно и непривлекательно:

Теперь приступим к стилевому оформлению созданной формы. Создадим файл стилей — style.css — и подключим его в блоке тегов HEAD. Пржде всего, возьмем фоновый цвет из оригинала:

Теперь избавимся от эффекта прыгающих полей и выравняем их. Для этого зададим меткам (теги label) фиксированную ширину и добавим обтекание:

Также изменим цвет текста:

Ну и установим фиксированную ширину для всех полей формы (input, textarea):

Взглянем на промежуточный результат:

Уже приятнее, но до оригинала еще далековато. Добавим правил для текстовой области, которыми установим максимальную/минимальную ее ширину и межстрочный интервал:

Теперь займемся чекбоксом внизу формы. Нам необходимо, чтобы текст метки располагался в одну строку и был справа от чекбокса. Для этого отменим обтекание у данной метки и зададим автоматическую ширину полю чекбокса:

Отлично, чекбокс готов:

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

Результат уже вполне неплох. У полей красивые скругленные рамки и текст не прилегает к границам полей:

Теперь добавим тень к полям формы, а также установим градиентный фон для них (фоновую картинку с нужным градиентом можете нарисовать сами либо воспользоваться моей):

Вот теперь действительно неплохо:

Но пока что форма выглядит «неживой». Давай исправим это и добавим правила, которые будут применены при наведении на поле формы и при фокусе, также затемним немного границы поля:

Отлично! Вот теперь форма выглядит действительно живой. Осталось добавить несколько штрихов к оформлению, чтобы получить законченный результат. Увеличим отступы между полями формы:

Немного опустим вниз метки полей:

И, по желанию, несколько правил для кнопки формы:

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

Осталось выделить звездочки, обозначающие обязательность заполнения полей:

Вот и все, стилевое оформление готово. Результат получился довольно привлекательный:

И итоговый файл стилей:

И, напоследок, давайте добавим в выпадающий список страны мира. Пока что мы поместили всего 2 страны. Всего же — более 200 стран. Добавлять каждую отдельную страну в список было бы долго и неэффективно. Гораздо быстрее и проще выводить страны средствами PHP — буквально пару строк кода и динамичный список со множеством стран готов.

Но, чтобы вывести этот список, нужен некий массив стран в таком формате:

Я такого массива не встречал… хотя не очень то и искал 🙂 Зато я встречал выпадающие списки стран. Кстати, можно было бы скопировать целиком код выпадающего списка себе на страницу… но мне такое решение не нравится абсолютно. Значит нужно взять только страны из готового кода и заполнить массив. Задача ясна и в ее реализации нам помогут регулярные выражения.

Итак, у нас есть код списка стран:

Из этого кода нам нужны кавычки и все содержимое между ними. Все остальное нам не нужно. Я воспользуюсь специальной утилитой, которая предоставляет очень удобные возможности для работы с регулярными выражениями. Регулярное выражение будет таким:

И на выходе получаем нужный результат. Все довольно просто и быстро.

Осталось скопировать и поместить полученные страны в массив:

Теперь просто пройдемся по массиву и выведем страны в список:

Как видим, благодаря регулярным выражениям, вся операция заняла у нас считанные минуты. Кстати, регулярные выражения можно использовать не только на сайте, но и в повседневной работе — тому подтверждением текущий пример. Благодаря регулярным выражениям можно организовывать сложный поиск по файлам, возможности которого предоставляет практически любой редактор (из популярных, к примеру, Notepad++). Поэтому, если тема регулярных выражений Вам интересна, то обязательно пишите нам и мы создадим по ней целый курс.

На этом задачи текущего урока можно считать выполненными. В следующем уроке мы создадим клиентский скрипт, проверяющий заполнение обязательных полей формы.

Удачи Вам и до новых встреч!

Метки: ,

Похожие статьи:

Комментарии Вконтакте:

Комментарии (10)