Skip to content

Создаем красивую форму входа

Привет, друзья! В этом уроке я расскажу, как создать красивую форму входа на HTML и CSS.

Не будем терять ни минуты. Вот необходимая разметка для нашего урока:

<div class="heading">Красивая форма входа</div>
<div id="wrapper">
<!--login form-->
<form name="login-form" class="login-form" action="" method="post">
<!--Header-->
<div class="header">
<h1>Форма входа</h1>
</div>

<!--Input fields-->
<div class="content">
<!--USERNAME-->
<div>
<input name="username" type="text" class="input username" placeholder="Логин" />
<div class="user-icon"></div>
</div>

<!--PASSWORD-->
<div>
<input name="password" type="password" class="input password" placeholder="Пароль" />
<div class="pass-icon"></div>
</div>
</div>

<!--Buttons-->
<div class="footer">
<input type="submit" name="submit" value="Войти" class="button" />
<input type="submit" name="submit" value="Зарегистрироваться" class="register" />
</div>
</form>
<!--end login form-->
</div>
<div class="gradient"></div>

Это простая форма на HTML5, но два поля для логина и пароля находятся в одном слое со своими иконками, которые будут выезжать влево при фокусировке на определенном поле.

CSS

Теперь давайте осуществлять наш замысел.

Вот общие стили:

.heading {
width:100%;
top:0;
position:fixed;
text-align:center;
padding:10px 0;
margin:0 auto;
font-family: 'Myriad Pro', Georgia, Times, serif;
font-weight:normal;
font-size:40px;
color:#FFFFFF;
text-shadow:0 2px 2px #333;
}

#wrapper {
/* Center wrapper perfectly */
width: 300px;
height: 400px;
position: absolute;
left: 50%;
top: 50%;
margin-left: -150px;
margin-top: -200px;
}

.gradient {
/* Center Positioning */
width: 600px;
height: 600px;
position: fixed;
left: 50%;
top: 50%;
margin-left: -300px;
margin-top: -300px;
/* Fallback */
background-image: url(../images/gradient.png) no-repeat;
/* CSS3 Gradient */
background-image: -webkit-gradient(radial, 0% 0%, 0% 100%, from(rgba(213,246,255,1)), to(rgba(213,246,255,0)));
background-image: -webkit-radial-gradient(50% 50%, 40% 40%, rgba(213,246,255,1), rgba(213,246,255,0));
background-image: -moz-radial-gradient(50% 50%, 50% 50%, rgba(213,246,255,1), rgba(213,246,255,0));
background-image: -ms-radial-gradient(50% 50%, 50% 50%, rgba(213,246,255,1), rgba(213,246,255,0));
background-image: -o-radial-gradient(50% 50%, 50% 50%, rgba(213,246,255,1), rgba(213,246,255,0));
}

Стили для кнопок:

/* Login button */
.login-form .footer .button {
float:right;
padding: 11px 25px;
font-family: 'Myriad Pro', serif;
font-weight: 300;
font-size: 18px;
color: #fff;
text-shadow: 0px 1px 0 rgba(0,0,0,0.25);
background: #56c2e1;
border: 1px solid #46b3d3;
border-radius: 5px;
cursor: pointer;
box-shadow: inset 0 0 2px rgba(256,256,256,0.75);
-moz-box-shadow: inset 0 0 2px rgba(256,256,256,0.75);
-webkit-box-shadow: inset 0 0 2px rgba(256,256,256,0.75);
}

.login-form .footer .button:hover {
background: #3f9db8;
border: 1px solid rgba(256,256,256,0.75);
box-shadow: inset 0 1px 3px rgba(0,0,0,0.5);
-moz-box-shadow: inset 0 1px 3px rgba(0,0,0,0.5);
-webkit-box-shadow: inset 0 1px 3px rgba(0,0,0,0.5);
}

.login-form .footer .button:focus {
position: relative;
bottom: -1px;
background: #56c2e1;
box-shadow: inset 0 1px 6px rgba(256,256,256,0.75);
-moz-box-shadow: inset 0 1px 6px rgba(256,256,256,0.75);
-webkit-box-shadow: inset 0 1px 6px rgba(256,256,256,0.75);
}

/* Register button */
.login-form .footer .register {
display: block;
float: right;
padding: 10px;
margin-right: 20px;
background: none;
border: none;
cursor: pointer;
font-family: 'Myriad Pro', serif;
font-weight: 300;
font-size: 14px;
color: #414848;
text-shadow: 0px 1px 0 rgba(256,256,256,0.5);
}

.login-form .footer .register:hover {color: #3f9db8}
.login-form .footer .register:focus {position: relative;bottom: -1px}

Стили для полей формы и иконок для них:

.login-form .content .input {
width: 188px;
padding: 15px 25px;
font-family: "HelveticaNeue-Light", "Helvetica Neue Light", "Helvetica Neue", Helvetica, Arial, "Lucida Grande", sans-serif;
font-weight: 400;
font-size: 14px;
color: #9d9e9e;
text-shadow: 1px 1px 0 rgba(256,256,256,1.0);
background: #fff;
border: 1px solid #fff;
border-radius: 5px;
box-shadow: inset 0 1px 3px rgba(0,0,0,0.50);
-moz-box-shadow: inset 0 1px 3px rgba(0,0,0,0.50);
-webkit-box-shadow: inset 0 1px 3px rgba(0,0,0,0.50);
}

/* Second input field */
.login-form .content .password, .login-form .content .pass-icon {margin-top: 25px}
.login-form .content .input:hover {
background: #dfe9ec;
color: #414848;
}
.login-form .content .input:focus {
background: #dfe9ec;
color: #414848;
box-shadow: inset 0 1px 2px rgba(0,0,0,0.25);
-moz-box-shadow: inset 0 1px 2px rgba(0,0,0,0.25);
-webkit-box-shadow: inset 0 1px 2px rgba(0,0,0,0.25);
}

.login-form .content &gt; div {position: relative;padding: 0 30px 25px 30px; background: #f3f3f3;}

.user-icon, .pass-icon {
width: 46px;
height: 47px;
display: block;
position: absolute;
left: 0px; top: 0;
padding-right: 2px;
z-index: -1;
-moz-border-radius-topleft: 5px;
-moz-border-radius-bottomleft: 5px;
-webkit-border-top-left-radius: 5px;
-webkit-border-bottom-left-radius: 5px;
}
.user-icon {background: rgba(65,72,72,0.75) url(../images/user-icon.png) no-repeat center}
.pass-icon {background: rgba(65,72,72,0.75) url(../images/pass-icon.png) no-repeat center}
/* Sliding icons on focus */
.login-form .username:focus ~ .user-icon, .login-form .password:focus ~ .pass-icon {left: -48px}

/* Animation */
.input, .user-icon, .pass-icon, .button, .register {
transition: all 0.5s;
-moz-transition: all 0.5s;
-webkit-transition: all 0.5s;
-o-transition: all 0.5s;
-ms-transition: all 0.5s;
}

Заключение

Теперь вы можете взглянуть на демонстрацию и скачать пример с полным кодом.