Шаблон HTML-формы — Блог HTML Academy
Не бывает единого шаблона формы — под каждую задачу нужно составлять что-то своё.
Например, форма для отправки сообщений будет отличаться от формы для ввода данных банковской карточки. А ещё важен макет — где-то дизайнер задумал добавить одно текстовое поле с кнопкой, а где-то десяток переключателей. Поэтому мы сначала покажем общий шаблон формы, а затем разберём, из каких тегов он состоит — так вы сможете изменить наш пример под свои цели.
Шаблон HTML-формы
<form action="#" method="post" target="_blank">
<h3>Шаблон формы</h3>
<fieldset>
<legend>Персональные данные</legend>
<ul>
<li>
<label for="name">Имя:*</label>
<input type="text" name="name" placeholder="Иван Иванов" required>
</li>
<li>
<label for="age">Возраст:</label>
<input type="number" name="age" placeholder="27" min="0" max="125">
</li>
</ul>
</fieldset>
<fieldset>
<legend>Контакты</legend>
<ul>
<li>
<label for="email">E-mail:*</label>
<input type="email" name="mail" placeholder="ivanov@gmail.
com" required>
</li>
<li>
<label for="number">Телефон:*</label>
<input type="tel" name="phone" placeholder="+7 000 000-00-00" maxlength="21" required>
</li>
</ul>
</fieldset>
<div>
<label for="message">Увлечения</label>
<textarea name="comment" placeholder="Расскажите обо всём, что для вас важно"></textarea>
</div>
<fieldset>
<legend>Учёба</legend>
<ul>
<li>
<input type="checkbox" name="intensive-courses" checked>
<label for="courses">Прохожу курсы</label>
</li>
<li>
<input type="checkbox" name="books">
<label for="books">Читаю книги</label>
</li>
<li>
<input type="checkbox" name="video">
<label for="video">Смотрю видео</label>
</li>
</ul>
</fieldset>
<fieldset>
<legend>Предпочтения</legend>
<ul>
<li>
<input type="radio" name="preference" value="frontend" checked>
<label for="front">Фронтенд-разработка</label>
</li>
<li>
<input type="radio" name="preference" value="backend">
<label for="back">Бэкенд-разработка</label>
</li>
</ul>
</fieldset>
<div>
<button type="submit">Отправить</button>
<p>* — Обязательные поля</p>
</div>
</form>И вот что получается из такого кода:
Из чего состоит форма
<form> и <fieldset><form> — контейнер формы, в нём содержатся все поля и кнопка для отправки данных.
Тегу добавляется два атрибута: action и post. В первом указывается URL-адрес, на который будет отправлена форма, а второй задаёт метод отправки:
post— посылает данные в теле HTTP-запроса. Его используют, когда нужно отправить много данных и ссылка на результат их обработки не нужна. Например, при редактировании личного профиля.get— метод по умолчанию. Он посылает данные формы в строке запроса, то есть они видны в адресной строке браузера. Метод применяется, например, в поисковых формах.
Чем отличаются HTTP-методы GET и POST
Тег <fieldset> группирует поля формы. Он часто используется с <legend> — тегом, который задаёт подписи для каждой группы. Мы использовали этот тег, чтобы разделить поля формы на четыре части: «Персональные данные», «Контакты», «Учёба» и «Предпочтения».
<label> Заголовок или подпись для полей ввода. Он связывается с элементами двумя способами.
При помощи атрибута for со значением, аналогичным id элемента:
<label for="name">Имя:*</label> <input type="text" name="name" placeholder="Иван Иванов" required>
Элемент заключается между открывающим и закрывающим тегами <label>:
<label> <input type="checkbox" checked>Соглашаюсь на обработку персональных данных </label>
<select>Создаёт раскрывающийся список:
<label for="education">Уровень образования</label> <select> <option value="secondary">Среднее общее</option> <option value="secondary vocational">Среднее профессиональное</option> <option value="higher" selected>Высшее</option> <option value="incomplete higher" selected>Неоконченное высшее</option> </select>
Для добавления элементов списка используется тег <option>.
Атрибуты тега <select>:
autocomplete— включено ли автозаполнение поля;disabled— в списке нельзя ничего выбрать;form— связывает<select>с формой, если он не вложен в тег<form>;multiple — создаёт «мультиселект», то есть список, в котором можно выбрать несколько значений;name— имя элемента, используется для отправки формы;required— один из пунктов обязательно должен быть выбран;size— размер элемента.
<textarea>Добавляет поле для ввода сообщения — пользователь может оставить в нём вопрос, комментарий для техподдержки или что-то ещё.
<label for="message">Увлечения</label> <textarea name="comment" placeholder="Расскажите обо всём, что для вас важно"></textarea>Увлечения
У <textarea> есть особенность: пользователи могут прямо в браузере растягивать текстовое поле по ширине и высоте, ломая вёрстку и нарушая замыслы дизайнера.
resize: none.Основные атрибуты textarea:
name— имя поля;id— связывает поле с<label>;maxlengthиminlength— задают максимальную или минимальную длину текста;required— указывает, что поле обязательно для заполнения;placeholder— выводит короткую подсказку для пользователей — что нужно вводить;disabled— блокирует поле ввода;readonly— делает поле доступным только для чтения, ввод запрещён.
Все атрибуты textarea
<input>Создаёт интерактивные элементы для получения данных от пользователя. С его помощью можно добавить поля для ввода имени, номера телефона, почты, логина и пароля. Даже чекбоксы и радиокнопки реализуются с помощью этого тега.
<label for="email">E-mail:*</label> <input type="email" name="mail" placeholder="ivanov@gmail.E-mail:*com" required>
Чтобы пользователи вводили данные в правильном формате, тегу <input> нужно задавать атрибут type с подходящим значением:
text— можно вводить только текст;number— ввод только цифр;tel— для телефонных номеров;email— ввод электронной почты;submit— инпут превращается в кнопку для отправки данных на сервер;password— поле для ввода паролей;date— для ввода даты;— инпут превращается в чекбокс;checkboxradio— создаёт радиокнопки.
У атрибута более 20 значений, полный список — на сайте MDN.
Основные атрибуты тега <input>:
id— связываетinputс<label>;name— имя поля;maxlengthилиminlength— максимальная или минимальная длина текста;maxилиmin— максимальное или минимальное значение числа и даты;required— поле обязательно для заполнения;placeholder— в поле ввода отображается подсказка — что нужно вводить;disabled— блокируетinput;autocomplete— автозаполнение;checked— для чекбоксов и радиокнопок, делает поле выбранным;pattern— задаёт паттерн для ввода данных, часто используется в типахtelиemail;value— значение элемента;enctype— указывает, в каком виде пересылать данные на сервер.
Все атрибуты тега input
<button>Создаёт кнопку для отправки формы:
<button type="submit">Отправить</button>
В старых проектах всё ещё встречаются кнопки, сделанные с помощью <input type="button">. Но у такого способа есть ограничения — например, в <button> можно добавить изображение или псевдоэлемент, а в <input> нет.
Что выбрать
<textarea> — если нужно поле для ввода сообщения.
<select> — для раскрывающихся списков.
<input> — когда нужны чекбоксы, радиокнопки, поля для загрузки файлов и ввода данных.
<button> — для кнопки отправки формы.
Распространенные ошибки при создании HTML шаблонов
В этой статье вы узнаете о некоторых ошибках, которые могут возникать при создании собственных HTML шаблонов и способы их избежать.
Если вы хотите закодировать свой собственный HTML шаблон для рассылки, а не использовать один из уже готовых от Mailchimp, то при его создании следует помнить несколько вещей, описанных ниже в этой статье.
Ваше письмо в формате HTML представляет собой одну гигантскую графику
Большинство почтовых программ по умолчанию блокируют автоматическую загрузку изображений, что может привести к тому, что получатели удалят вашу рассылку или пометят ее спамом. В качестве общего руководства Mailchimp рекомендует соотношение 80% текста и 20% изображений в письме. Тем не менее, все спам-фильтры используют разные критерии для правильного баланса графики и текста.
Если большая часть содержимого письма включена в один рисунок, то добавьте текст в область футера — например, ссылку для отмены подписки, физический адрес и напоминание о разрешении — чтобы помочь сбалансировать соотношение текста и изображения.
Изображения, размещенные на локальном или частном сервере
Если вы работаете на промежуточном сервере или сетевом диске, получатели не будут иметь к ним доступа, и изображения будут выглядеть испорченными.
Чтобы избежать этого, загрузите и разместите все изображения на общедоступном сервере. Вы также можете использовать Content Studio для загрузки изображений и размещения их в Mailchimp.
Изображения и гиперссылки не используют абсолютные пути
Абсолютные пути к изображениям и файлам включают информацию о вашем сервере в дополнение к имени файла, чтобы внешние приложения могли найти и получить доступ к нему. Всегда размещайте все свои изображения на своем сервере и используйте абсолютные пути, указывающие на него.
Итак, вместо того, чтобы кодировать изображение следующим образом:
<img src="/images/photo.gif">
Закодируйте его так:
<img src="http://www.mysite.com/email/images/photo.gif ">
То же самое касается гиперссылок. Вместо ссылки:
<a href="index.html" shape="rect">Cliquez ici</a>
Укажите:
<a href="http://www.mysite.com/index.html" shape="rect">Cliquez ici</a>
Если вы кодируете свои письма локально с помощью WYSIWYG, дважды проверьте, что все <img/> теги используют абсолютные пути. Вы можете выгрузить всю графику вашего письма на сервер в самом начале проекта, поэтому обязательно необходимо использовать абсолютные пути с самого начала.
Предварительный просмотр и тестированиеКампания не была полностью протестирована
Прежде чем отправить письмо, тщательно его протестируйте. Mailchimp рекомендует отправлять тестовые сообщения на все распространенные почтовые сервисы, такие как Yahoo, Hotmail и Gmail. Если вы знаете, что получатели используют менее распространенный почтовый клиент, постарайтесь отправлять письма и на него. Воспользуйтесь инструментом предварительного просмотра писем от Mailchimp, чтобы просмотреть, как будет выглядеть письмо на нескольких клиентах.
Письма, созданные веб-дизайнером, не были проверены
Если вы попросите кого-нибудь создать рассылку для вас и вставить пользовательский HTML-код, все равно протестируйте письмо перед отправкой.
Убедитесь, чтобы шаблон не был слишком широким и помещался на панели предварительного просмотра большинства основных почтовых программ. Протестируйте изображения и ссылки, чтобы убедиться, что они имеют абсолютный путь и работают должным образом.
Код и программное обеспечение
Используя Word, Publisher или FrontPage для создания HTML шаблона, будьте готовы, что они содержат свой дополнительный код, который переносится и в ваше письмо.
Это может нарушить дизайн или привести к тому, что письмо попадет в спам. Вместо этого используйте простой текстовый редактор, а затем импортируйте шаблон или вставьте код в Mailchimp.
JavaScript в письме HTML
Большинство почтовых приложений блокируют JavaScript в качестве меры безопасности. Убедитесь, что код, используемый в кнопках отправки формы, ссылках во всплывающих окнах, предварительных загрузчиках изображений и виджетах, не содержит JavaScript. Если вы копируете HTML код с существующей веб-страницы, очистите код от JavaScript.
Конструктор письма Mailchimp удалит любой JavaScript-код, который сможет обнаружить, но рекомендуется тщательно протестировать свою кампанию перед отправкой, чтобы убедиться, что она отображается правильно.
CSS используется неправильно
Большинство почтовых приложений убирают теги HEAD и BODY из входящих писем, чтобы встроенный CSS не мешал их странице CSS. Mailchimp рекомендует использовать встроенный CSS или встраивать свой CSS непосредственно перед контентом после тега <BODY>.
СогласиеИспользование спам-контента
Большинство из нас получают спам. Тема письма у таких писем, как правило, написана сплошными заглавными буквами, они выделены ярко-красным или ярко-синим цветом, в них используется множество восклицательных знаков, и такие фразы, как «самый горячий», «лучший» или «щелкни сейчас!»
Делайте тему письма краткой и точной, поддерживайте актуальность своего контента, не пытайтесь использовать фразы-уловы и всегда избегайте спамовых слов.
Нет ссылки отписки
Mailchimp требует, чтобы все маркетинговые рассылки имели тег * | UNSUB | *. Нет абсолютно никаких исключений из этого правила. Он должен присутствовать как в пользовательском HTML шаблоне, так и в любых других письмах.
Нет напоминания о разрешении
Все встроенные шаблоны Mailchimp автоматически просят создать напоминание о разрешении. Если вы создаете свой собственный код, нужно будет включить в него напоминание.
Напоминания кратко сообщают вашим подписчикам, как они попали в вашу рассылку, например: «Вы получили это письмо, потому что подписались на нашу новостную рассылку на сайте www.example.com». Напоминания о разрешениях предотвращают ложные жалобы на злоупотребления, которые могут привести к тому, что доменное имя вашей компании окажется в черном списке
Нет почтового адреса
Mailchimp требует, чтобы все пользователи указывали действительный физический почтовый адрес во всех письмах, отправляемых через их серверы, в соответствии с законом США-CAN-SPAM.
Адрес автоматически вставляется каждый раз, когда вы используете встроенные шаблоны Mailchimp. Если вы пишете свой собственный код, вам нужно будет добавить его вручную.
Если у вас есть вопросы по Mailchimp, email маркетингу и написанию текстов для рассылок, запишитесь на консультацию.
шаблонов HTML
Все эти HTML-шаблоны можно загрузить бесплатно и использовать по своему усмотрению. Большинство из них являются шаблонами HTML5. Шаблоны HTML5 используют элементы, которые были представлены в HTML5, такие как , , , , и т. д.
Шаблоны макетов
Эти HTML-шаблоны предоставляют вам базовую компоновку, чтобы вы могли добавить свой собственный внешний вид. Во всех шаблонах используются «столбцы одинаковой высоты», что означает, что любые меньшие столбцы динамически увеличивают свою высоту, чтобы соответствовать самому высокому столбцу. Другими словами, это выглядит лучше :).
Шаблоны HTML5 «Фреймы»
Эти шаблоны используют HTML5 и CSS для достижения функциональности фреймов без использования фреймов.
HTML5 «Фреймы» — 2 столбца, левое меню
Просмотреть исходный код | Предварительный просмотр
Левый и правый столбцы прокручиваются независимо друг от друга. Этот шаблон представляет собой «жидкий макет», поэтому он расширяется и сжимается при изменении размера браузера.
HTML5 «Фреймы» — 2 столбца, правое меню
Просмотреть исходный код | Предварительный просмотр
Левый и правый столбцы прокручиваются независимо друг от друга. Этот шаблон представляет собой «жидкий макет», поэтому он расширяется и сжимается при изменении размера браузера.
2 строки, 2 столбца, A
Просмотреть исходный код | Предварительный просмотр
Кадр заголовка и левый фрейм навигации. Кадр заголовка перекрывает левый кадр. Включите/отключите прокрутку по мере необходимости. Этот шаблон представляет собой «жидкий макет», поэтому он расширяется и сжимается при изменении размера браузера.
2 ряда, 2 столбца, D
Просмотр исходного кода | Предварительный просмотр
Нижний колонтитул и левый навигационный фрейм. Левая рамка перекрывает рамку нижнего колонтитула. Включите/отключите прокрутку по мере необходимости. Этот шаблон представляет собой «жидкий макет», поэтому он расширяется и сжимается при изменении размера браузера.
Другие шаблоны рамок »
Шаблоны CSS
В эти шаблоны добавлены некоторые базовые стили с помощью CSS. Различные цвета позволяют вам получить представление о том, как каждый шаблон выглядит под разными цветами.
Фиксированная ширина 1, красный
Просмотреть исходный код | Предварительный просмотр
Этот HTML-шаблон имеет фиксированную ширину (область содержимого остается фиксированной ширины). Однако полоса функций и полоса нижнего колонтитула расширяют всю ширину браузера. Шаблон имеет «красную» тему.
Фиксированная ширина 1, зеленый
Просмотреть исходный код | Предварительный просмотр
Этот HTML-шаблон имеет фиксированную ширину (область содержимого остается фиксированной ширины).
Однако полоса функций и полоса нижнего колонтитула расширяют всю ширину браузера. Шаблон имеет «зеленую» тему.
Фиксированная ширина 2, синий
Просмотреть исходный код | Предварительный просмотр
Этот HTML-шаблон имеет фиксированную ширину (область содержимого остается фиксированной ширины). Шаблон имеет светло-серый фон (хотя вы можете изменить его на любой другой цвет). Шаблон имеет «синюю» тему.
Фиксированная ширина 2, оранжевый
Просмотреть исходный код | Предварительный просмотр
Этот HTML-шаблон имеет фиксированную ширину (область содержимого остается фиксированной ширины). Шаблон имеет светло-серый фон (хотя вы можете изменить его на любой другой цвет). Шаблон имеет «оранжевую» тему.
Другие шаблоны CSS »
Специализированные шаблоны HTML
Эти шаблоны имеют собственный внешний вид и изображения, чтобы придать особый вид. Просто добавьте контент и опубликуйте!
Настройка HTML/CSS в шаблонах — документация Wagtail CRX
Обзор
Трясогузка CRX является расширением Трясогузки.
Вы можете дополнительно настроить свой сайт, переопределив
встроенные шаблоны в соответствии с вашими потребностями. В этом уроке мы предполагаем, что у вас есть базовые знания
системы шаблонов Django. Вы можете узнать больше об этом, посетив
Язык шаблонов Django.
Язык шаблонов использует ряд {% %} для извлечения контента из моделей страниц (найденных в
файл models.py ) и добавить на страницу минимальную логику. Это позволяет отображать страницу после содержимого
добавляется в CMS и позволяет создавать несколько страниц с одинаковым макетом. В верхней части страницы,
вы также хотите убедиться, что либо указали, что вы расширяете шаблон страницы , и что вы
потянув теги трясогузки, чтобы ваш шаблон работал так, как должен.
Примечание
Если вы полностью переопределяете шаблон, вы не будете использовать {% extends "path/to/template" %} вверху вашего шаблона. Однако вам необходимо убедиться, что вы используете соответствующий шаблон.
теги в верхней части шаблона, иначе ваш шаблон не будет отображаться.
Каталог шаблонов внутри вашего веб-сайта приложения по умолчанию пуст. Любые шаблоны, которые вы ставите
здесь переопределит шаблоны coderedcms по умолчанию, если они следуют тому же имени и каталогу
состав. При этом используется стандартный механизм рендеринга шаблонов Django. Например, чтобы изменить
форматирование страницы статьи, копия coderedcms/templates/coderedcms/pages/article_page.html на веб-сайт /templates/coderedcms/pages/article_page.html и измените его.
Исходный код встроенных шаблонов можно найти на GitHub.
Пример 1: Настройка панели навигации
Встроенный шаблон для панели навигации можно найти в templates/coderedcms/snippets/navbar.html . Этот
файл может фактически не находиться в папках установки вашего сайта; тем не менее, вы можете увидеть его содержимое
посетив исходный код Wagtail CRX здесь: navbar.
html.
Допустим, вы хотите иметь двухуровневую панель навигации с логотипом на верхнем уровне и элементами меню на нижнем. второй ярус. На панели навигации по умолчанию такой опции нет, поэтому вам нужно переопределить этот шаблон.
Посмотрите на структуру папок вашего проекта. В папке веб-сайта вы должны увидеть еще одну папку
называется шаблонов . Там тоже две папки: веб-сайт и coderedcms . coderedcms шаблон
папка, вероятно, пуста в этот момент, потому что CMS загружает шаблоны по умолчанию из источника, но вы можете
добавьте шаблоны в папку coderedcms , если вы переопределяете шаблоны по умолчанию .
Большинство ваших пользовательских шаблонов попадут в вашу папку веб-сайта , потому что они не переопределяют
шаблоны по умолчанию в CMS, но либо расширяя их, либо создавая совершенно новые, специфичные для
твой сайт.
Примечание
Добавление шаблонов в папку шаблонов coderedcms не изменяет шаблоны по умолчанию
во всем Wagtail CRX, но переопределяет эти конкретные шаблоны для вашего веб-приложения.
Папка веб-сайта в настоящее время содержит только папку для внутри папки coderedcms в папке шаблонов .
Вы можете добавить новую папку веб-сайта в шаблоны (потому что мы будем использовать ее в другом уроке),
но сейчас вы захотите добавить 9Папка 0003 snippets templates\coderedcms чтобы ваша структура папок выглядела примерно так:
Наша структура папок для шаблонов в нашем веб-приложении.
Структура папок должна быть такой же, как структура папок по умолчанию в CMS, если вы хотите
переопределить шаблон панели навигации. Теперь у вас должно быть templates\coderedcms\snippets . Перейдите к
папку snippets и создайте navbar.html внутри этой папки.
Теперь вы готовы приступить к настройке шаблона панели навигации!
Изучите шаблон по умолчанию для панели навигации. Какой код мы хотим использовать из него? Вы можете использовать что там в вашей настройке.

Нам понадобятся теги трясогузки вверху, поэтому скопируйте их и вставьте в ваш файл
navbar.html.
{% загрузки wagtailcore_tags wagtailsettings_tags wagtailimages_tags coderedcms_tags i18n %}
Далее нам нужно придумать, как переместить логотип (он же
navbar-бренд) в отдельный раздел для панель навигации. Возможно, мы могли бы создать две панели навигации, одну с логотипом, а другую с меню. Хм, давайте попробуем!Мы хотим сохранить базовую функциональность навигационной панели, поэтому мы должны сохранить теги для настроек CMS и общий макет внутри контейнера.
Двухуровневая панель навигации будет иметь две панели навигации друг над другом, но одна будет иметь только
navbar-brand(логотип), а другой позволит добавлять пункты меню через CMS. Итак, вершина панель навигации не будет иметь доступа к настройкам CSS в CMS, которые зарезервированы для основной панели навигации — это означает, что вам нужно будет добавить любые пользовательские классы на верхнюю панель навигации, например, фон цвет или место, где вы хотите разместить логотип.
Запомни.{% загрузки wagtailcore_tags wagtailsettings_tags wagtailimages_tags coderedcms_tags i18n %} {% если не settings.coderedcms.LayoutSettings.navbar_wrapper_fluid %} <дел> {% конец%} <навигация> {% если не settings.coderedcms.LayoutSettings.navbar_content_fluid %} <дел> {% конец%} <дел> <а href="/"> {% if settings.coderedcms.LayoutSettings.logo %} {% image settings.coderedcms.LayoutSettings.logo оригинал как логотип %}{% еще %} {{сайт.имя_сайта}} {% конец%}


mysite.com/index.html" shape="rect">Cliquez ici</a>