Внутрь каждого блока мы поместим поля и простые label
:
Мы использовали три поля ввода: Логин, Пароль
и Подтвержение пароля
, а в конце блока тег input
с типом submit
для перехода на следующий шаг. Другие блоки работают точно также. В конце контейнера у нас простой индикатор выполнения, вот его код:
Полный html
код такой:
Как вы могли заметить, на четвертом шаге таблица пустая. Мы заполним её информацией, вводимой пользователем с помощью jQuery.
CSS
Теперь добавим стили к форме. Будем применять правило @fontface
для использования пользовательских шрифтов. В нашем случае это шрифт Cantarell
. Полный код CSS
приведен ниже:
/* CSS Reset (Eric Meyer) */
html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,font,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td{border:0;outline:0;font-size:100%;vertical-align:baseline;background:transparent;margin:0;padding:0}body{line-height:1}ol,ul{list-style:none}blockquote,q{quotes:none}:focus{outline:0}ins{text-decoration:none}del{text-decoration:line-through}table{border-collapse:collapse;border-spacing:0}
@font-face {
font-family: "Cantarell";
src: url(../fonts/Cantarell-Regular.eot);
src: local("Cantarell"), url("../fonts/Cantarell-Regular.ttf") format("truetype");
}
body {
background-color: #f9f9f9;
color: #222;
font-family: Cantarell, Verdana, sans-serif;
font-size: 12px;
}
input::-moz-focus-inner, input::-moz-focus-inner { border: none; }
input:focus, input:focus { outline: none; }
.clear { clear: both; }
#container {
background: url("../images/container.png") no-repeat;
width: 754px;
height: 370px;
margin: 20px auto;
padding: 50px 0;
overflow: hidden;
position: relative;
}
#container #first_step, #second_step, #third_step, #fourth_step { display: none; }
#container #first_step { display: block; }
#container .form { margin: 66px 72px 0 72px; }
#container h1, #container h2 {
font-size: Cantarell, Verdana, sans-serif;
text-align: center;
font-size: 24px;
text-shadow: 1px 1px 2px #222;
}
#container h1 span { color: #a90329; }
#container h2 {
color: #888;
font-size: 20px;
text-align: left;
text-shadow: none;
}
#container table {
margin: 20px 40px;
font-size: 14px;
font-weight: bold;
}
#container table td {
padding: 5px 10px;
}
#container table td:nth-child(2) {
color: #a90329;
}
#container input, #container select {
background: url("../images/input.png") no-repeat;
color: #888;
border: 1px solid #ccc;
font-family: Cantarell, Verdana, sans-serif;
font-weight: bold;
font-size: 15px;
width: 300px;
height: 35px;
padding: 0 25px;
margin: 20px 0;
float: left;
border-radius: 6px;
-moz-border-radius: 6px;
-webkit-border-radius: 6px;
}
#container input.submit {
background: url("../images/button.png") no-repeat;
border: none;
cursor: pointer;
width: 85px;
height: 38px;
position: relative;
bottom: 2px;
left: 655px;
}
#container input.submit:focus { border: none; }
#container input.send{ background: url("../images/send.png") no-repeat; }
#container input.error { border: 1px solid red; }
#container input.valid { border: 1px solid #1FFF00; }
#container input:focus, #container select:focus {
border: 1px solid #a90329;
color: #a90329;
}
#container select { padding: 5px 0 5px 25px; }
#container option { padding: 0 15px; }
#container label {
color: #666;
font-size: 12px;
font-weight: bold;
line-height: 14px;
float: right;
margin: 23px -25px;
width: 270px;
}
#progress_bar {
background: url("../images/progress_bar.png") no-repeat;
width: 339px;
height: 24px;
margin: 0 auto;
position: relative;
}
#progress {
background: url("../images/progress.png") repeat-x;
width: 0px;
height: 23px;
border-radius: 20px;
-webkit-border-radius: 20px;
-moz-border-radius: 20px;
}
#progress_text {
position: relative;
line-height: 21px;
text-align: center;
font-weight: bold;
color: white;
text-shadow: 1px 1px 2px #222;
width: 339px;
height: 24px;
top: -23px;
left: 0;
}
JS
jQuery
будем использовать для плавной смены блоков (слайды), проверки правильности данных, изменения процента выполнения. Нам нужно будет в шапке старницы подключить библиотеку jQuery
и ещё два плагина:jQuery UI
и jQuery inputfocus
(используется для управления фокусом и размытия событий формы).jQuery
код приведен ниже:
$(function(){
//original field values
var field_values = {
//id: value
"username" : "Логин",
"password" : "Пароль",
"cpassword" : "Пароль",
"firstname" : "Имя",
"lastname" : "Фамилия",
"email" : "email"
};
//inputfocus
$("input#username").inputfocus({ value: field_values["username"] });
$("input#password").inputfocus({ value: field_values["password"] });
$("input#cpassword").inputfocus({ value: field_values["cpassword"] });
$("input#lastname").inputfocus({ value: field_values["lastname"] });
$("input#firstname").inputfocus({ value: field_values["firstname"] });
$("input#email").inputfocus({ value: field_values["email"] });
//reset progress bar
$("#progress").css("width","0");
$("#progress_text").html("0% Выполнено");
//first_step
$("form").submit(function(){ return false; });
$("#submit_first").click(function(){
//remove classes
$("#first_step input").removeClass("error").removeClass("valid");
//ckeck if inputs aren"t empty
var fields = $("#first_step input, #first_step input");
var error = 0;
fields.each(function(){
var value = $(this).val();
if(value.length<4 || value==field_values[$(this).attr("id")]) {
$(this).addClass("error");
$(this).effect("shake", { times:3 }, 50);
error++;
} else {
$(this).addClass("valid");
}
});
if(!error) {
if($("#password").val() != $("#cpassword").val()) {
$("#first_step input").each(function(){
$(this).removeClass("valid").addClass("error");
$(this).effect("shake", { times:3 }, 50);
});
return false;
} else {
//update progress bar
$("#progress_text").html("33% Выполнено");
$("#progress").css("width","113px");
//slide steps
$("#first_step").slideUp();
$("#second_step").slideDown();
}
} else return false;
});
$("#submit_second").click(function(){
//remove classes
$("#second_step input").removeClass("error").removeClass("valid");
var emailPattern = /^+@+\.{2,4}$/;
var fields = $("#second_step input");
var error = 0;
fields.each(function(){
var value = $(this).val();
if(value.length<1 || value==field_values[$(this).attr("id")] || ($(this).attr("id")=="email" && !emailPattern.test(value))) {
$(this).addClass("error");
$(this).effect("shake", { times:3 }, 50);
error++;
} else {
$(this).addClass("valid");
}
});
if(!error) {
//update progress bar
$("#progress_text").html("66% Выполнено");
$("#progress").css("width","226px");
//slide steps
$("#second_step").slideUp();
$("#third_step").slideDown();
} else return false;
});
$("#submit_third").click(function(){
//update progress bar
$("#progress_text").html("100% Выполнено");
$("#progress").css("width","339px");
//prepare the fourth step
var fields = new Array($("#username").val(),
$("#password").val(),
$("#email").val(),
$("#firstname").val() + " " + $("#lastname").val(),
$("#age").val(),
$("#gender").val(),
$("#country").val());
var tr = $("#fourth_step tr");
tr.each(function(){
//alert(fields[$(this).index()])
$(this).children("td:nth-child(2)").html(fields[$(this).index()]);
});
//slide steps
$("#third_step").slideUp();
$("#fourth_step").slideDown();
});
$("#submit_fourth").click(function(){
//send information to server
alert("Данные отправлены");
});
});
Вот у нас и получилась форма с регистрацией в несколько шагов. Для использования данного примера нужно только изменить форму action
с ссылкой на ваш php
файл, используемый для хранения данных и отредактировать 132 строчку на:$(‘form’).unbind(‘submit’).submit();
. Чтобы посмотреть форму в действии нажмите на кнопку Демо
.
HTML формы — сложные элементы интерфейса. Они включают в себя разные функциональные элементы: поля ввода и
Большая часть информации веб-форм передаётся с помощью элемента . Для ввода одной строки текста применяется элемент , для нескольких строк - элемент . Элемент создает выпадающий список.
Элемент создаёт надписи к полям формы. Существует два способа группировки надписи и поля. Если поле находится внутри элемента , то атрибут for указывать не нужно.
Last Name
Last Name
Last Name
Поля формы можно разделять на логические блоки с помощью элемента
. Каждому разделу можно присвоить название с помощью элемента .
Контактная информация
Имя
E-mail
Рис. 1. Группировка полей формы
Чтобы сделать форму более понятной для пользователей, в поля формы добавляют текст, содержащий пример вводимых данных. Такой текст называется подстановочным и создаётся с помощью атрибута placeholder .
Обязательные для заполнения поля также необходимо выделять. До появления HTML5 использовался символ звездочки * , установленный возле названия поля. В новой спецификации появился специальный атрибут required , который позволяет отметить обязательное поле на уровне разметки. Этот атрибут дает указание браузеру (при условии, что тот поддерживает HTML5), указание не отправлять данные после нажатия пользователем кнопки отправить, пока указанные поля не заполнены.
Для изменения внешний вид текстового поля при получении фокуса, используется псевдокласс focus . Например, можно сделать фон текущего поля более темным или добавить цветную рамку, чтобы оно выделялось среди остальных:
Input:focus {
background: #eaeaea;
}
Ещё один полезный html5-атрибут — атрибут autofocus . Он позволяет автоматически установить фокус на нужном начальном поле для элементов и (только в один элемент каждой формы).
Пример создания формы регистрации
Примечание
action="form.php" — ссылка на файл обработчика формы. Создайте файл в кодировке UTF-8, закачайте его на сервер и замените action="form.php" на путь к файлу на вашем сервере.
Рис. 2. Внешний вид формы по умолчанию
Как видно из рисунка, каждый элемент формы имеет стили браузера по умолчанию. Очистим стили и оформим элементы формы.
Form-wrap {
width: 550px;
background: #ffd500;
border-radius: 20px;
}
.form-wrap *{transition: .1s linear}
.profile {
width: 240px;
float: left;
text-align: center;
padding: 30px;
}
form {
background: white;
float: left;
width: calc(100% - 240px);
padding: 30px;
border-radius: 0 20px 20px 0;
color: #7b7b7b;
}
.form-wrap:after, form div:after {
content: "";
display: table;
clear: both;
}
form div {
margin-bottom: 15px;
position: relative;
}
h1 {
font-size: 24px;
font-weight: 400;
position: relative;
margin-top: 50px;
}
h1:after {
content: "\f138";
font-size: 40px;
font-family: FontAwesome;
position: absolute;
top: 50px;
left: 50%;
transform: translateX(-50%);
}
/********************** стилизация элементов формы **********************/
label, span {
display: block;
font-size: 14px;
margin-bottom: 8px;
}
input, input {
border-width: 0;
outline: none;
margin: 0;
width: 100%;
padding: 10px 15px;
background: #e6e6e6;
}
input:focus, input:focus {
box-shadow: inset 0 0 0 2px rgba(0,0,0,.2);
}
.radio label {
position: relative;
padding-left: 50px;
cursor: pointer;
width: 50%;
float: left;
line-height: 40px;
}
.radio input {
position: absolute;
opacity: 0;
}
.radio-control {
position: absolute;
top: 0;
left: 0;
height: 40px;
width: 40px;
background: #e6e6e6;
border-radius: 50%;
text-align: center;
}
.male:before {
content: "\f222";
font-family: FontAwesome;
font-weight: bold;
}
.female:before {
content: "\f221";
font-family: FontAwesome;
font-weight: bold;
}
.radio label:hover input ~ .radio-control,
.radiol input:focus ~ .radio-control {
box-shadow: inset 0 0 0 2px rgba(0,0,0,.2);
}
.radio input:checked ~ .radio-control {
color: red;
}
select {
width: 100%;
cursor: pointer;
padding: 10px 15px;
outline: 0;
border: 0;
background: #e6e6e6;
color: #7b7b7b;
-webkit-appearance: none; /*убираем галочку в webkit-браузерах*/
-moz-appearance: none; /*убираем галочку в Mozilla Firefox*/
}
select::-ms-expand {
display: none; /*убираем галочку в IE*/
}
.select-arrow {
position: absolute;
top: 38px;
right: 15px;
width: 0;
height: 0;
pointer-events: none; /*активизируем показ списка при нажатии на стрелку*/
border-style: solid;
border-width: 8px 5px 0 5px;
border-color: #7b7b7b transparent transparent transparent;
}
button {
padding: 10px 0;
border-width: 0;
display: block;
width: 120px;
margin: 25px auto 0;
background: #60e6c5;
color: white;
font-size: 14px;
outline: none;
text-transform: uppercase;
}
/********************** добавляем форме адаптивность **********************/
@media (max-width: 600px) {
.form-wrap {margin: 20px auto; max-width: 550px; width:100%;}
.profile, form {float: none; width: 100%;}
h1 {margin-top: auto; padding-bottom: 50px;}
form {border-radius: 0 0 20px 20px;}
}
Файл form.php
" . "\r\n";
$headers .= "Bcc: ваш_email". "\r\n";
if(!empty($name) && !empty($sex) && !empty($email) && !empty($country) && filter_var($email, FILTER_VALIDATE_EMAIL)){
mail($email, $subject, $msg, $headers);
echo "Спасибо! Вы успешно зарегистрировались.";
}
?>
Примечание
В переменной $subject укажите текст, который будет отображаться как заголовок письма;
Ваше_имя — здесь вы можете указать имя, которое будет отображаться в поле «от кого письмо» ;
url_вашего_сайта замените на адрес сайта с формой регистрации;
ваш_email замените на ваш адрес электронной почты;
$headers .= "Bcc: ваш_email". "\r\n"; отправляет скрытую копию на ваш адрес электронной почты.
Мы составили список, состоящий из 60 бесплатных форм авторизации, которые вы можете использовать на своем WordPress-сайте, в блоге, на форуме и т.д. Каждая форма тщательно протестирована, чтобы можно было гарантировать ее работоспособность и доступность исходного кода.
WordPress Login Customizer
Формы из этого списка созданы с помощью HTML / CSS. Но в данном случае речь идет о лучшем плагине для настройки пользовательского интерфейса WordPress. Он поставляется с несколькими шаблонами, которые можно дополнительно настроить в соответствии с дизайном сайта. С помощью этого плагина вы сможете избавиться от скучной страницы входа в WordPress.
Creative Login Form
Простая, но креативная форма входа, созданная с помощью HTML и CSS3. Ее также можно использовать и как форму регистрации. Это наш любимый шаблон из представленных в этом списке.
Мы поискали в интернете действительно крутые формы авторизации, но найти такие оказалось непросто. Поэтому решили представить вам собственные. Вот 20 форм входа, разработанных нашей командой.
Форма авторизации №1
Простая, креативная и яркая форма входа с градиентным фоном. Вы можете использовать ее для любых целей, таких как авторизация в веб-сервисе, мобильном или десктопном приложении.
Скачать
Предварительный просмотр
Форма авторизации №2
Минималистичная и изысканная форма входа с кнопкой, градиентной заливкой, а также с анимацией и логотипом. Используйте ее, изменив необходимые элементы.
Скачать
Предварительный просмотр
Форма авторизации №3
Страница входа с фоновым изображением, тенью и эффектом наведения для кнопки входа в систему.
Скачать
Предварительный просмотр
Форма авторизации №4
Вы можете скачать эту веб-форму и использовать по своему усмотрению. Она является полностью адаптивной.
Скачать
Предварительный просмотр
Форма авторизации №5
Прекрасная и современная форма с опциями входа через Facebook или Google. Ее кнопки имеют красивые эффекты наведения, что позволяет предоставить пользователям прекрасный опыт взаимодействия.
Скачать
Предварительный просмотр
Форма авторизации №6
Если веб-страница аккуратная и красивая, форма входа не должна отличаться от ее дизайна. Вот форма, которая точно оправдает ваши ожидания.
Скачать
Предварительный просмотр
Форма авторизации №7
Форма с тремя вариантами входа в учетную запись: Facebook, Twitter или адрес электронной почты. А если у пользователя еще нет учетной записи, можно связать форму со страницей регистрации.
Скачать
Предварительный просмотр
Форма авторизации №8
Еще одна современная, модная и красивая форма входа в систему. Она особенно хорошо смотрится на мобильных устройствах.
Скачать
Предварительный просмотр
Форма авторизации №9
Если хотите уйти от чисто белого или одноцветного дизайна, вам стоит обратить внимание на эту форму. Она поддерживает добавления фонового изображения или наложения градиента. Также есть опция входа через Facebook или Google.
Скачать
Предварительный просмотр
Форма авторизации №10
Это полная противоположность предыдущему варианту. Она выглядит минималистично, но в то же время очень аккуратно.
Скачать
Предварительный просмотр
Форма авторизации №11
Вместо того чтобы создавать форму с нуля, вы можете использовать готовый к использованию великолепный шаблон — такой как этот.
Скачать
Предварительный просмотр
Форма авторизации №12
Фоновое изображение с наложением синей тени, имя с аватаром и поля ввода — это форма авторизации №12. Для кнопки входа в систему добавлен эффект наведения.
Скачать
Предварительный просмотр
Форма авторизации №13
Шаблон с разделением экрана, в котором одна половина предназначена для изображения, а другая — для формы.
Скачать
Предварительный просмотр
Форма авторизации №14
В этой подборке есть и простые, и более сложные формы входа. А шаблон №14 — из числа минималистичных.
Скачать
Предварительный просмотр
Форма авторизации №15
Довольно минималистичная форма, но в ее верхней части можно добавить баннер. Благодаря этой небольшой опции можно сделать форму более привлекательной.
Скачать
Предварительный просмотр
Форма авторизации №16
Это форма входа с полноэкранным изображением, поверх которого размещаются поля для ввода логина и пароля, а также кнопка с эффектом наведения.
Скачать
Предварительный просмотр
Форма авторизации №17
Чтобы сделать форму более персонализированной, можно использовать этот шаблон. Он включает в себя изображение, расположенное сбоку.
Скачать
Предварительный просмотр
Форма авторизации №18
Скачать
Предварительный просмотр
Форма авторизации №19
Яркая, энергичная и захватывающая — это все о данной форме входа. Она полностью адаптивная, оптимизирована под мобильные устройства и совместима со всеми основными веб-браузерами.
Скачать
Предварительный просмотр
Форма авторизации №20
Градиентный фон, черная кнопка с эффектом наведения, поля для ввода логина и пароля, а также раздел «Забыли пароль?» Все это есть в форме авторизации №20.
Скачать
Предварительный просмотр
Выпадающая форма авторизации
Скачать
Floating Sign Up Form
Разработано для форм подписки с использованием вкладок и меток.
Скачать
Простая форма авторизации
Что раньше останавливало людей, когда они хотели авторизоваться на WordPress -сайте так это слишком простой внешний вид. В этой форме сохранен популярный дизайн, но к нему добавлено цветовое оформление.
Скачать
Flat Login – Sign Up Form
Когда вы нажмете кнопку “Click me”, расположенную в правом верхнем углу, с помощью анимации форма входа будет преобразована в форму регистрации.
Скачать
Login With Self-Contained SCSS Form
Это форма, созданная с использованием SCSS. Расширение CSS, которое добавляет базовому языку новые возможности и элегантность. Оно позволяет использовать переменные, вложенные правила, встроенный импорт и многое другое.
Скачать
Animated Login Form
Это анимированная форма входа, а верхняя часть “Hey you, Login already” преобразуется в форму при нажатии кнопки.
Скачать
Login Form Using CSS3 And HTML5
Пример того, как создать простую форму входа в систему с помощью HTML5 и CSS3. В ней применяются псевдо элементы (:after и:before) для создания эффекта нескольких страниц. Эта форма использует HTML5, чтобы упростить валидацию и представление данных.
Скачать
Login With Shake Effect
Если вы ввели неправильный пароль, то будете уведомлены об этом с помощью красивого эффекта дрожания. Простое и эффективное решение.
Скачать
Boxy Login Form