Адаптивная модальная форма регистрации

Здесь вы узнаете как сделать адаптивную форму регистрации при помощи CSS.


Нажмите на кнопку, чтобы открыть форму регистрации.


Регистрация

Заполните данную форму, чтобы создать аккаунт.


Создавая аккаунт вы соглашаетесь с нашими Правилами & Условиями.


Попробовать самому »

Как сделать форму регистрации

Шаг 1) Добавляем HTML:

Для обработки ввода используйте элемент <form>. Затем для каждого поля добавьте элемент <input> (с машинным идентификатором):

Пример


<form action="action_page.php" style="border:1px solid #ccc">
  <div class="container">
    <h1>Регистрация</h1>
    <p>Заполните данную форму, чтобы создать аккаунт.</p>
    <hr>

    <label for="email"><b>Электронная почта</b></label>
    <input type="text" placeholder="Введите электронную почту" name="email" required>

    <label for="psw"><b>Пароль</b></label>
    <input type="password" placeholder="Введите пароль" name="psw" required>

    <label for="psw-repeat"><b>Повторите пароль</b></label>
    <input type="password" placeholder="Повторите пароль" name="psw-repeat" required>

    <label>
      <input type="checkbox" checked="checked" name="remember" style="margin-bottom:15px"> Запомнить меня
    </label>

    <p>Создавая аккаунт вы соглашаетесь с нашими <a href="#" style="color:dodgerblue">Правилами & Условиями</a>.</p>

    <div class="clearfix">
      <button type="button" class="cancelbtn">Отменить</button>
      <button type="submit" class="signupbtn">Регистрация</button>
    </div>
  </div>
</form>

Шаг 2) Добавляем CSS:

Пример


* {box-sizing: border-box}

/* Поля ввода на всю ширину */
  input[type=text], input[type=password] {
  width: 100%;
  padding: 15px;
  margin: 5px 0 22px 0;
  display: inline-block;
  border: none;
  background: #f1f1f1;
}

input[type=text]:focus, input[type=password]:focus {
  background-color: #ddd;
  outline: none;
}

hr {
  border: 1px solid #f1f1f1;
  margin-bottom: 25px;
}

/* Задаем стили для всех кнопок */
button {
  background-color: #04AA6D;
  color: white;
  padding: 14px 20px;
  margin: 8px 0;
  border: none;
  cursor: pointer;
  width: 100%;
  opacity: 0.9;
}

button:hover {
  opacity:1;
}

/* Дополнительные стили для кнопки отмены */
.cancelbtn {
  padding: 14px 20px;
  background-color: #f44336;
}

/* Добавляем обтекание и одинаковую ширину для кнопок отмены и регистрации */
.cancelbtn, .signupbtn {
  float: left;
  width: 50%;
}

/* Добавляем отступы для контейнерных элементов */
.container {
  padding: 16px;
}

/* Очистка обтекания */
.clearfix::after {
  content: "";
  clear: both;
  display: table;
}

/* Изменяем стили кнопок отмены и регистрации на маленьких экранах */
@media screen and (max-width: 300px) {
  .cancelbtn, .signupbtn {
    width: 100%;
  }
}

Попробовать самому »

Как сделать модальную форму регистрации

Шаг 1) Добавляем HTML:

Для обработки ввода используйте элемент <form>. Затем для каждого поля добавьте элемент <input> (с машинным идентификатором):

Пример


<!-- Кнопка, открывающая модальное окно -->
<button onclick="document.getElementById('id01').style.display='block'">Регистрация</button>

<!-- Модальное окно (содержит форму регистрации) -->
<div id="id01" class="modal">
  <span onclick="document.getElementById('id01').style.display='none'" class="close" title="Закрыть">times;</span>
  <form class="modal-content" action=#34;/action_page.php">
    <div class="container">
      <h1>Регистрация</h1>
      <p>Заполните данную форму, чтобы создать аккаунт.</p>
      <hr>
      <label for="email"><b>Электронная почта</b></label>
      <input type="text" placeholder="Введите электронную почту" name="email" required>

      <label for="psw"><b>Пароль</b></label>
      <input type="password" placeholder="Введите пароль" name="psw" required>

      <label for="psw-repeat"><b>Повторите пароль</b></label>
      <input type="password" placeholder="Повторите пароль" name="psw-repeat" required>

      <label>
        <input type="checkbox" checked="checked" name="remember" style="margin-bottom:15px"> Запомнить меня
      </label>

      <p>Создавая аккаунт вы соглашаетесь с нашими <a href="#" style="color:dodgerblue">Правилами & Условиями</a>.</p>

      <div class="clearfix">
        <button type="button" onclick="document.getElementById('id01').style.display='none'" class="cancelbtn">Отменить</button>
        <button type="submit" class="signup">Регистрация</button>
      </div>
    </div>
  </form>
</div>

Шаг 2) Добавляем CSS:

Пример


* { box-sizing: border-box }

/* Поля ввода на всю ширину */
  input[type=text], input[type=password] {
  width: 100%;
  padding: 15px;
  margin: 5px 0 22px 0;
  display: inline-block;
  border: none;
  background: #f1f1f1;
}

/* Добавляем фоновый цвет, когда поля ввода в фокусе */
input[type=text]:focus, input[type=password]:focus {
  background-color: #ddd;
  outline: none;
}

/* Задаем стили для всех кнопок */
button {
  background-color: #04AA6D;
  color: white;
  padding: 14px 20px;
  margin: 8px 0;
  border: none;
  cursor: pointer;
  width: 100%;
  opacity: 0.9;
}

button:hover {
  opacity:1;
}

/* Дополнительные стили для кнопки отмены */
.cancelbtn {
  padding: 14px 20px;
  background-color: #f44336;
}

/* Добавляем обтекание и одинаковую ширину для кнопок отмены и регистрации */
.cancelbtn, .signupbtn {
  float: left;
  width: 50%;
}

/* Добавляем отступы для контейнерных элементов */
.container {
  padding: 16px;
}

/* Модальное окно (фон) */
.modal {
  display: none; /* По умолчанию скрыто */
  position: fixed; /* Оставаться на месте */
  z-index: 1; /* Поверх всего */
  left: 0;
  top: 0;
  width: 100%; /* На всю ширину */
  height: 100%; /* На всю высоту */
  overflow: auto; /* Разрешить прокрутку при необходимости */
  background-color: #474e5d;
  padding-top: 50px;
}

/* Модальное окно (содержимое) */
.modal-content {
  background-color: #fefefe;
  margin: 5% auto 15% auto; /* 5% от верха, 15% от низа и по центру */
  border: 1px solid #888;
  width: 80%; /* Может быть меньше или больше в зависимости от размера экрана */
}

/* Стили горизонтального разделителя */
hr {
  border: 1px solid #f1f1f1;
  margin-bottom: 25px;
}

/* Кнопка закрытия (x) */
.close {
  position: absolute;
  right: 35px;
  top: 15px;
  font-size: 40px;
  font-weight: bold;
  color: #f1f1f1;
}

.close:hover,
.close:focus {
  color: #f44336;
  cursor: pointer;
}

/* Очистка обтекания */
.clearfix::after {
  content: "";
  clear: both;
  display: table;
}

/* Изменяем стили кнопок отмены и регистрации на маленьких экранах */
@media screen and (max-width: 300px) {
  .cancelbtn, .signupbtn {
    width: 100%;
  }
}

Совет: Также можно использовать следующий скрипт, чтобы модальное окно закрывалось при нажатии за его пределами (а не только при нажатии на кнопки "x" или "Отмена":

Пример


<script>
// Получим модальное окно
var modal = document.getElementById('id01');

// Когда пользователь кликнет за пределами модального окна, закроем его
window.onclick = function(event) {
    if (event.target == modal) {
        modal.style.display = "none";
    }
}
</script>

Попробовать самому »