CSS и вёрстка

Как сделать форму для записи css html

📅 ⏱ 05:57 ⏳ 2 мин 💬 0

Как сделать форму для записи css html: простыми словами, по шагам и с примерами. Разбираем, как это работает на практике, типичные ошибки и лучшие решения. Раск

Коротко: форма для записи на HTML — это тег <form> с полями input, select, textarea и кнопкой <button type="submit">. CSS оформляет поля и их состояния. Но важно понимать: одна вёрстка заявки не отправит — нужен обработчик на сервере (в WordPress это делают плагины форм).

Кому и зачемЗапись на услугу, заявка на консультацию, форма обратной связи — типовой сценарий. Разберём правильную разметку, стилизацию и то, что нужно для реальной отправки.

Минимальная разметка формы

CODE
<form class="form" action="/send" method="post">
  <label>Имя
    <input type="text" name="name" required>
  </label>
  <label>Телефон
    <input type="tel" name="phone" required>
  </label>
  <label>Услуга
    <select name="service">
      <option>Консультация</option>
      <option>Ремонт</option>
    </select>
  </label>
  <label>Комментарий
    <textarea name="message" rows="4"></textarea>
  </label>
  <button type="submit">Записаться</button>
</form>

Вкладки: разбор по частям




Тип поля подсказывает браузеру, что вводить, и включает проверку:

  • type="text" — обычный текст;
  • type="tel" — телефон (на мобильном — цифровая клавиатура);
  • type="email" — e-mail с проверкой;
  • type="date" — дата с календарём;
  • type="number" — число.

У каждого поля обязателен атрибут name — по нему сервер поймёт, что пришло.

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

CODE
<label for="phone">Телефон</label>
<input id="phone" type="tel" name="phone">

Вариант с обёрткой (как в примере выше) работает без атрибута for.

CSS
.form { display: grid; gap: 16px; max-width: 480px; }
.form input, .form select, .form textarea {
  width: 100%;
  padding: 12px 14px;
  border: 1px solid #ddd;
  border-radius: 8px;
  font: inherit;
}
.form input:focus {
  outline: none;
  border-color: #003F8F;
  box-shadow: 0 0 0 3px rgba(0,63,143,.15);
}
.form button {
  background: #003F8F; color: #fff;
  padding: 12px 20px; border: 0; border-radius: 8px;
  cursor: pointer;
}

Обратите внимание на font: inherit — иначе поля получат системный шрифт, отличный от сайта.

Чтобы форма реально отправляла заявки, нужен обработчик:

  • в WordPress — плагин форм (Contact Form 7, WPForms) с уведомлениями на e-mail;
  • своя форма — скрипт на сервере, который принимает POST и отправляет письмо;
  • внешний сервис форм — форма ведёт на их endpoint.

Только HTML+CSS без обработчика = форма «ничего не делает».

Не забывайте про безопасностьНикогда не вставляйте данные из формы в письмо или базу «как есть». Обработчик должен проверять и очищать данные (защита от спама и инъекций). В плагинах это уже сделано.

Практика: форма записи на услугу

  1. Разметьте поля: имя, телефон, услуга, дата, комментарий.
  2. Свяжите каждое поле с подписью через label.
  3. Добавьте кнопку type="submit".
  4. Оформите поля и состояние фокуса.
  5. Подключите обработчик (плагин или скрипт).
  6. Проверьте отправку и приход письма.

Частые ошибки: причина → решение

Симптом Причина Решение
Форма ничего не делает нет обработчика плагин или серверный скрипт
Данные не приходят нет атрибута name добавить name каждому полю
Поля разного вида не задан font: inherit наследовать шрифт
Клик по подписи не фокусирует label не связан обернуть или задать for

Проверьте себя

Чек-лист




Что обязательно для каждого поля формы?




Почему форма на HTML+CSS может ничего не отправлять?




Вопросы и ответы

Атрибут required у поля: браузер не даст отправить пустую форму. Но проверять данные всё равно должен сервер.

Оба отправляют форму. button гибче: внутри можно разместить иконку или разметку.

Капчей (например, невидимой), скрытым «медовым» полем или проверкой на стороне сервера. В плагинах форм это настраивается в один клик.

Да, через JavaScript (fetch) и серверный endpoint. Тогда показывают сообщение «Заявка отправлена» прямо на странице.

Итоги

  • Форма — это form + поля с name + кнопка submit.
  • Подписи связывают через label — это и удобно, и доступно.
  • Стили: font: inherit, отступы, рамка, состояние фокуса.
  • Без серверного обработчика форма не отправляет заявки.
Поделиться: ВКонтакте Telegram WhatsApp Одноклассники Viber Мой Мир

Комментарии

Пока комментариев нет — будьте первым, кто поделится мнением.

Оставить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Получите консультацию нашего маркетолога

Изучит ваш проект, подберет подходящие услуги и тарифы

Получите бесплатный аудит

Наш специалист сделает базовый аудит вашего проекта и предложит персональные предложения.

Закажите услугу Каталог морепродуктов

Наш специалист свяжется с вами в ближайшее время и уточнит детали

Закажите адаптивный сайт

Наш специалист поможет составить Вам техническое задание на разработку сайта

Закажите сайт

Наш специалист поможет составить Вам техническое задание на разработку сайта

Закажите сайт лендинг

Наш специалист поможет составить Вам техническое задание на разработку сайта

Закажите сайт каталог

Наш специалист поможет составить Вам техническое задание на разработку сайта

Закажите интернет-магазин

Наш специалист поможет составить Вам техническое задание на разработку сайта

Закажите веб-приложение

Наш специалист поможет составить Вам техническое задание на разработку сайта

Закажите тариф Аутсорс

Стоимость от 150 000 ₽

Закажите тариф Магазин

Стоимость 90 000 ₽

Закажите тариф Классический

Стоимость 60 000 ₽

Закажите тариф Эконом

Стоимость 40 000 ₽

Закажите SEO продвижение

Наш специалист свяжется с вами, проведет анализ, предложит стоимость