software:development:demo:adaptive_registration_form_complex_block
Различия
Показаны различия между двумя версиями страницы.
| Следующая версия | Предыдущая версия | ||
| software:development:demo:adaptive_registration_form_complex_block [2026/01/30 09:01] – создано VladPolskiy | software:development:demo:adaptive_registration_form_complex_block [2026/01/30 10:17] (текущий) – VladPolskiy | ||
|---|---|---|---|
| Строка 1: | Строка 1: | ||
| ====== Блочная полная адаптивная форма регистрации и авторизации ====== | ====== Блочная полная адаптивная форма регистрации и авторизации ====== | ||
| - | Блочная форма - дает возможность гибко использовать блоки формы, например первоночально скрыть блок ошибок или отобразить | + | Блочная форма - дает возможность гибко использовать блоки формы, например первоночально скрыть блок ошибок или отобразить |
| - | Полная форма - дает возможность применения шаблонов | + | \\ |
| + | Полная форма - дает возможность применения шаблонов | ||
| + | \\ | ||
| + | {{: | ||
| + | \\ | ||
| + | < | ||
| + | <code css style_example.css> | ||
| + | / | ||
| + | body { | ||
| + | / | ||
| + | font-family: | ||
| + | / | ||
| + | background-image: | ||
| + | background-size: | ||
| + | background-position: | ||
| + | background-repeat: | ||
| + | display: flex; /* Коробка становится гибкой */ | ||
| + | align-items: | ||
| + | justify-content: | ||
| + | max-width: 100%;/* Растянуть по ширине контейнера */ | ||
| + | height: 100vh; /* Высота всего экрана */ | ||
| + | object-fit: cover; /* Обрезка с заполнением */ | ||
| + | object-position: | ||
| + | } | ||
| + | / | ||
| + | .container { | ||
| + | background: white; /*цвет контейнера*/ | ||
| + | padding: 5px; /* Отступы по 5px со всех внутренних сторон */ | ||
| + | border-radius: | ||
| + | border: 2px solid #6665ee; /*цвет и углы рамки*/ | ||
| + | box-shadow: 0 0 10px rgba(0, 0, 0, 0.1); / | ||
| + | width: 300px; / | ||
| + | } | ||
| + | |||
| + | / | ||
| + | a { | ||
| + | text-decoration: | ||
| + | color: #6665ee; /* цвет текста для всех ссылок */ | ||
| + | } | ||
| + | |||
| + | .black-text { color: black; } /* цвет конкретного класса */ | ||
| + | |||
| + | / | ||
| + | .title_form_block { | ||
| + | background: white; /*цвет контейнера*/ | ||
| + | border-radius: | ||
| + | border: 1px solid red; / | ||
| + | width: 100%; / | ||
| + | height: 50px; / | ||
| + | margin: 1px; /* внешние отступы контейнера */ | ||
| + | / | ||
| + | font-weight: | ||
| + | font-size: 24px; | ||
| + | padding-top: | ||
| + | padding-left: | ||
| + | color: # | ||
| + | } | ||
| + | |||
| + | / | ||
| + | .email_form , | ||
| + | position: relative; /* элемент позиционируется относительно своего исходного положения */ | ||
| + | background: white; /*цвет контейнера*/ | ||
| + | border-radius: | ||
| + | border: 1px solid red; / | ||
| + | width: 100%; / | ||
| + | margin-bottom: | ||
| + | } | ||
| + | |||
| + | / | ||
| + | .email_form_title , | ||
| + | /*display: none; / | ||
| + | background: white; /*цвет контейнера*/ | ||
| + | padding: 1px; /* Отступы по 20px со всех сторон */ | ||
| + | border-radius: | ||
| + | border: 1px solid green; / | ||
| + | width: 100%; / | ||
| + | margin: 1px 1px 1px 1px; /* внешние отступы контейнера */ | ||
| + | / | ||
| + | font-weight: | ||
| + | font-size: 12px; | ||
| + | padding: 0px 0px 0px 5px; /* отступ слева */ | ||
| + | color: # | ||
| + | } | ||
| + | |||
| + | / | ||
| + | .email_form_error , | ||
| + | /*display: none; / | ||
| + | background: white; /*цвет контейнера*/ | ||
| + | padding: 1px; /* Отступы по 1px со всех сторон */ | ||
| + | border-radius: | ||
| + | border: 2px solid #ee6565; / | ||
| + | width: 100%; / | ||
| + | margin: 1px 1px 1px 1px; /* внешние отступы контейнера */ | ||
| + | / | ||
| + | font-size: 12px; | ||
| + | padding: 0px 0px 0px 10px; /* отступ слева */ | ||
| + | color: # | ||
| + | } | ||
| + | |||
| + | / | ||
| + | .password_recovery_block { | ||
| + | background: white; /*цвет контейнера*/ | ||
| + | padding: 1px; /* Отступы по 1px со всех сторон */ | ||
| + | border-radius: | ||
| + | border: 1px solid red; / | ||
| + | width: 100%; / | ||
| + | height: 40px; / | ||
| + | margin: -1px -1px 1px -1px; /* внешние отступы контейнера */ | ||
| + | / | ||
| + | font-size: 12px; | ||
| + | padding: 0px 0px 0px 10px; /* отступ слева */ | ||
| + | color: # | ||
| + | } | ||
| + | |||
| + | / | ||
| + | input[type=" | ||
| + | -webkit-appearance: | ||
| + | | ||
| + | appearance: checkbox; | ||
| + | display: inline-block; | ||
| + | width: 11px; /* размер квадратика */ | ||
| + | margin: 0; /* убирает дефолтные отступы */ | ||
| + | } | ||
| + | .switch_remember_me { | ||
| + | display: flex; | ||
| + | background: white; /*цвет контейнера*/ | ||
| + | border-radius: | ||
| + | border: 1px solid red; / | ||
| + | width: 100%; / | ||
| + | height: 20px; / | ||
| + | margin: -1px -1px 1px -1px; /* внешние отступы контейнера */ | ||
| + | / | ||
| + | align-items: | ||
| + | gap: 5px; /* Расстояние между чекбоксом и текстом */ | ||
| + | font-size: 12px; | ||
| + | padding: 0px 0px 0px 5px; /* отступ слева */ | ||
| + | / | ||
| + | color: # | ||
| + | } | ||
| + | |||
| + | / | ||
| + | .account_registration_block { | ||
| + | background: white; /*цвет контейнера*/ | ||
| + | padding: 1px; /* Отступы по 1px со всех сторон */ | ||
| + | border-radius: | ||
| + | border: 1px solid red; / | ||
| + | width: 100%; / | ||
| + | height: 40px; / | ||
| + | margin: 1px -1px 1px -1px; /* внешние отступы контейнера */ | ||
| + | / | ||
| + | font-size: 12px; | ||
| + | padding: 4px 0px 0px 0px; /* внутренний отступ слева */ | ||
| + | text-align: | ||
| + | color: # | ||
| + | } | ||
| + | |||
| + | / | ||
| + | form { | ||
| + | position: block; / | ||
| + | | ||
| + | background: white; /*цвет контейнера*/ | ||
| + | border-radius: | ||
| + | border: 1px solid #6665ee; / | ||
| + | width: 100%; / | ||
| + | margin: 1px 1px 1px 1px; /* внешние отступы контейнера */ | ||
| + | } | ||
| + | |||
| + | / | ||
| + | input { | ||
| + | width: 100%; /*Поле на всю ширину формы */ | ||
| + | padding: 10px; /* внутренний отступ со всех сторон */ | ||
| + | border: 1px solid #6665ee; / | ||
| + | border-radius: | ||
| + | box-sizing: | ||
| + | в заданные ширину и высоту*/ | ||
| + | } | ||
| + | |||
| + | .button_block{ | ||
| + | background: white; /*цвет контейнера*/ | ||
| + | border-radius: | ||
| + | border: 1px solid red; / | ||
| + | width: 100%; / | ||
| + | } | ||
| + | |||
| + | / | ||
| + | button { | ||
| + | width: 100%; / | ||
| + | padding: 10px; /* внутренний отступ со всех сторон */ | ||
| + | background-color: | ||
| + | color: white; | ||
| + | border: none; / | ||
| + | border-radius: | ||
| + | cursor: pointer; | ||
| + | margin: 1px 1px 1px 1px; /* внешние отступы контейнера */ | ||
| + | } | ||
| + | |||
| + | button: | ||
| + | background-color: | ||
| + | } | ||
| + | |||
| + | / | ||
| + | .password { | ||
| + | width: 100%; / | ||
| + | margin: auto; /* внешние отступы контейнера */ | ||
| + | position: relative; /* элемент позиционируется относительно своего исходного положения */ | ||
| + | } | ||
| + | |||
| + | .password-control { | ||
| + | position: absolute; / | ||
| + | top: 11px; | ||
| + | right: 6px; | ||
| + | display: inline-block; | ||
| + | может быть отформатировано как блок.*/ | ||
| + | width: 20px; / | ||
| + | height: 20px; / | ||
| + | background: | ||
| + | } | ||
| + | |||
| + | .password-control.view { | ||
| + | background: | ||
| + | } | ||
| + | / | ||
| + | |||
| + | / | ||
| + | .form_helh { | ||
| + | font-family: | ||
| + | font-size: 10px; | ||
| + | margin-top: | ||
| + | margin-left: | ||
| + | } | ||
| + | |||
| + | @media screen and (max-width: 480px) { | ||
| + | /* Стили для планшетов и телефонов */ | ||
| + | .container { width: 89%; padding: 5%; } | ||
| + | } | ||
| + | |||
| + | </ | ||
| + | </ | ||
| + | Уберем из файла стилей цвета и размеры границ блоков показанных для наглядности и получим дизайн рабочей формы | ||
| + | \\ | ||
| + | {{: | ||
| + | \\ | ||
| + | < | ||
| + | / | ||
| + | body { | ||
| + | / | ||
| + | font-family: | ||
| + | / | ||
| + | background-image: | ||
| + | background-size: | ||
| + | background-position: | ||
| + | background-repeat: | ||
| + | display: flex; /* Коробка становится гибкой */ | ||
| + | align-items: | ||
| + | justify-content: | ||
| + | max-width: 100%;/* Растянуть по ширине контейнера */ | ||
| + | height: 100vh; /* Высота всего экрана */ | ||
| + | object-fit: cover; /* Обрезка с заполнением */ | ||
| + | object-position: | ||
| + | } | ||
| + | |||
| + | / | ||
| + | .container { | ||
| + | background: white; /*цвет контейнера*/ | ||
| + | padding: 5px; /* Отступы по 5px со всех внутренних сторон */ | ||
| + | border-radius: | ||
| + | border: 2px solid #6665ee; /*цвет и углы рамки*/ | ||
| + | box-shadow: 0 0 10px rgba(0, 0, 0, 0.1); / | ||
| + | width: 300px; / | ||
| + | } | ||
| + | |||
| + | / | ||
| + | a { | ||
| + | text-decoration: | ||
| + | color: #6665ee; /* цвет текста для всех ссылок */ | ||
| + | } | ||
| + | |||
| + | .black-text { color: black; } /* цвет конкретного класса */ | ||
| + | |||
| + | / | ||
| + | .title_form_block { | ||
| + | width: 100%; / | ||
| + | height: 50px; / | ||
| + | margin: 1px; /* внешние отступы контейнера */ | ||
| + | / | ||
| + | font-weight: | ||
| + | font-size: 24px; | ||
| + | padding-top: | ||
| + | padding-left: | ||
| + | color: # | ||
| + | } | ||
| + | |||
| + | / | ||
| + | .email_form , | ||
| + | position: relative; /* элемент позиционируется относительно своего исходного положения */ | ||
| + | width: 100%; / | ||
| + | margin-bottom: | ||
| + | } | ||
| + | |||
| + | / | ||
| + | .email_form_title , | ||
| + | /*display: none; / | ||
| + | padding: 1px; /* Отступы по 20px со всех сторон */ | ||
| + | width: 100%; / | ||
| + | margin: 1px 1px 1px 1px; /* внешние отступы контейнера */ | ||
| + | / | ||
| + | font-weight: | ||
| + | font-size: 12px; | ||
| + | padding: 0px 0px 0px 5px; /* отступ слева */ | ||
| + | color: # | ||
| + | } | ||
| + | |||
| + | / | ||
| + | .email_form_error , | ||
| + | /*display: none; / | ||
| + | background: white; /*цвет контейнера*/ | ||
| + | padding: 1px; /* Отступы по 1px со всех сторон */ | ||
| + | border-radius: | ||
| + | border: 2px solid #ee6565; / | ||
| + | width: 100%; / | ||
| + | margin: 1px 1px 1px 1px; /* внешние отступы контейнера */ | ||
| + | / | ||
| + | font-size: 12px; | ||
| + | padding: 0px 0px 0px 10px; /* отступ слева */ | ||
| + | color: # | ||
| + | } | ||
| + | |||
| + | / | ||
| + | .password_recovery_block { | ||
| + | padding: 1px; /* Отступы по 1px со всех сторон */ | ||
| + | width: 100%; / | ||
| + | height: 40px; / | ||
| + | margin: -1px -1px 1px -1px; /* внешние отступы контейнера */ | ||
| + | / | ||
| + | font-size: 12px; | ||
| + | padding: 0px 0px 0px 10px; /* отступ слева */ | ||
| + | color: # | ||
| + | } | ||
| + | |||
| + | / | ||
| + | input[type=" | ||
| + | -webkit-appearance: | ||
| + | | ||
| + | appearance: checkbox; | ||
| + | display: inline-block; | ||
| + | width: 11px; /* размер квадратика */ | ||
| + | margin: 0; /* убирает дефолтные отступы */ | ||
| + | } | ||
| + | .switch_remember_me { | ||
| + | display: flex; | ||
| + | width: 100%; / | ||
| + | height: 20px; / | ||
| + | margin: -1px -1px 1px -1px; /* внешние отступы контейнера */ | ||
| + | / | ||
| + | align-items: | ||
| + | gap: 5px; /* Расстояние между чекбоксом и текстом */ | ||
| + | font-size: 12px; | ||
| + | padding: 0px 0px 0px 5px; /* отступ слева */ | ||
| + | / | ||
| + | color: # | ||
| + | } | ||
| + | |||
| + | / | ||
| + | .account_registration_block { | ||
| + | padding: 1px; /* Отступы по 1px со всех сторон */ | ||
| + | width: 100%; / | ||
| + | height: 40px; / | ||
| + | margin: 1px -1px 1px -1px; /* внешние отступы контейнера */ | ||
| + | / | ||
| + | font-size: 12px; | ||
| + | padding: 4px 0px 0px 0px; /* внутренний отступ слева */ | ||
| + | text-align: | ||
| + | color: # | ||
| + | } | ||
| + | |||
| + | / | ||
| + | form { | ||
| + | position: block; / | ||
| + | | ||
| + | background: white; /*цвет контейнера*/ | ||
| + | border-radius: | ||
| + | border: 1px solid #6665ee; / | ||
| + | width: 100%; / | ||
| + | margin: 1px 1px 1px 1px; /* внешние отступы контейнера */ | ||
| + | } | ||
| + | |||
| + | / | ||
| + | input { | ||
| + | width: 100%; /*Поле на всю ширину формы */ | ||
| + | padding: 10px; /* внутренний отступ со всех сторон */ | ||
| + | border: 1px solid #6665ee; / | ||
| + | border-radius: | ||
| + | box-sizing: | ||
| + | в заданные ширину и высоту*/ | ||
| + | } | ||
| + | |||
| + | .button_block{ | ||
| + | width: 100%; / | ||
| + | } | ||
| + | |||
| + | / | ||
| + | button { | ||
| + | width: 100%; / | ||
| + | padding: 10px; /* внутренний отступ со всех сторон */ | ||
| + | background-color: | ||
| + | color: white; | ||
| + | border: none; / | ||
| + | border-radius: | ||
| + | cursor: pointer; | ||
| + | margin: 1px 1px 1px 1px; /* внешние отступы контейнера */ | ||
| + | } | ||
| + | |||
| + | button: | ||
| + | background-color: | ||
| + | } | ||
| + | |||
| + | / | ||
| + | .password { | ||
| + | width: 100%; / | ||
| + | margin: auto; /* внешние отступы контейнера */ | ||
| + | position: relative; /* элемент позиционируется относительно своего исходного положения */ | ||
| + | } | ||
| + | |||
| + | .password-control { | ||
| + | position: absolute; / | ||
| + | top: 11px; | ||
| + | right: 6px; | ||
| + | display: inline-block; | ||
| + | может быть отформатировано как блок.*/ | ||
| + | width: 20px; / | ||
| + | height: 20px; / | ||
| + | background: | ||
| + | } | ||
| + | |||
| + | .password-control.view { | ||
| + | background: | ||
| + | } | ||
| + | / | ||
| + | |||
| + | / | ||
| + | .form_helh { | ||
| + | font-family: | ||
| + | font-size: 10px; | ||
| + | margin-top: | ||
| + | margin-left: | ||
| + | } | ||
| + | |||
| + | @media screen and (max-width: 480px) { | ||
| + | /* Стили для планшетов и телефонов */ | ||
| + | .container { width: 89%; padding: 5%; } | ||
| + | } | ||
| + | |||
| + | <code css style_example.css> | ||
| + | |||
| + | </ | ||
| + | </ | ||
| + | Скрываем блоки ошибок, | ||
| + | <code css style_example_min.css> | ||
| + | / | ||
| + | .email_form_error , | ||
| + | display: none; / | ||
| + | </ | ||
| + | \\ | ||
| + | Получили внешне простую, | ||
| + | \\ | ||
| + | {{: | ||
| + | \\ | ||
| + | Для наглядности скроем наименование полей ввода | ||
| + | <code css style_example_min.css> | ||
| + | / | ||
| + | .email_form_title , | ||
| + | display: none; / | ||
| + | </ | ||
| + | \\ | ||
| + | {{: | ||
| + | \\ | ||
| + | И на последок блоки " | ||
| + | <code css style_example_min.css> | ||
| + | / | ||
| + | .password_recovery_block { | ||
| + | display: none; / | ||
| + | и | ||
| + | / | ||
| + | .account_registration_block { | ||
| + | display: none; / | ||
| + | </ | ||
| + | \\ | ||
| + | {{: | ||
| + | \\ | ||
| + | Таким образом мы получили минимально понятную пользователю форму входа | ||
| + | \\ | ||
| + | ===== Дополнения и Файлы ===== | ||
| + | См.так же [[adaptive_registration_form_sample|Простая адаптивная форма регистрации и авторизации]] | ||
software/development/demo/adaptive_registration_form_complex_block.1769752892.txt.gz · Последнее изменение: — VladPolskiy
