🔍 Начните печатать, чтобы искать по книге или перейти к нужной странице по номеру
Удобно листать не только прокруткой, но и клавишами‑стрелками:
Эта книга — пошаговая инструкция по вёрстке сайтов на языках ХТМЛ и ЦСС. Вы узнаете не только как сверстать сайт, но и как опубликовать его в интернете, настроить красивый шаринг в соцсети и подключить системы аналитики.
Отдельный раздел книги посвящён работе с верстальщиком: как ставить задачи, получать предсказуемый результат и правильно принимать и внедрять вёрстку.
Знакомство с ХТМЛ и ЦСС
Модули
Расстановка
Страницы
Спецэффекты
Контроль качества
Публикация
Как работать с верстальщиком
Эта книга — пошаговая инструкция по вёрстке сайтов на языках ХТМЛ и ЦСС. Вы узнаете не только как сверстать сайт, но и как опубликовать его в интернете, настроить красивый шаринг в соцсети и подключить системы аналитики.
Отдельный раздел книги посвящён работе с верстальщиком: как ставить задачи, получать предсказуемый результат и правильно принимать и внедрять вёрстку.
Знакомство с ХТМЛ и ЦСС
Модули
Расстановка
Страницы
Спецэффекты
Контроль качества
Публикация
Как работать с верстальщиком
Радиокнопка — это элемент выбора объекта или уточнения действия из нескольких вариантов. Элемент отвечает на вопрос «с чем именно» или «как именно» выполнить действие.
Радиокнопки объединяют в группу кнопок — объектов, свойств или опций, — из которых может быть выбрана и нажата только одна.
Радиокнопки в вёрстке — это инпуты с type="radio". Чтобы объединить радиокнопки в группу, инпутам задают одинаковый атрибут name. Среди радиокнопок с одинаковым name браузер даст нажать только одну.
Атрибут checked выбирает радиокнопку по умолчанию.
Илья Бирман. Пользовательский интерфейс. Радиокнопки
<form>
<h4>Доставка</h4>
<label>
<input type="radio" name="delivery" checked> Почтой
</label>
<label>
<input type="radio" name="delivery"> Курьером
</label>
<label>
<input type="radio" name="delivery"> В пункт выдачи
</label>
<h4>Оплата</h4>
<label>
<input type="radio" name="payment" checked> Картой на сайте
</label>
<label>
<input type="radio" name="payment"> При получении
</label>
</form>
Радиокнопка — это элемент выбора объекта или уточнения действия из нескольких вариантов. Элемент отвечает на вопрос «с чем именно» или «как именно» выполнить действие.
Радиокнопки объединяют в группу кнопок — объектов, свойств или опций, — из которых может быть выбрана и нажата только одна.
Радиокнопки в вёрстке — это инпуты с type="radio". Чтобы объединить радиокнопки в группу, инпутам задают одинаковый атрибут name. Среди радиокнопок с одинаковым name браузер даст нажать только одну.
Атрибут checked выбирает радиокнопку по умолчанию.
Илья Бирман. Пользовательский интерфейс. Радиокнопки
<form>
<h4>Доставка</h4>
<label>
<input type="radio" name="delivery" checked> Почтой
</label>
<label>
<input type="radio" name="delivery"> Курьером
</label>
<label>
<input type="radio" name="delivery"> В пункт выдачи
</label>
<h4>Оплата</h4>
<label>
<input type="radio" name="payment" checked> Картой на сайте
</label>
<label>
<input type="radio" name="payment"> При получении
</label>
</form>
Переключатель — вариант группы радиокнопок. В ХТМЛ нет отдельного тега для переключателя, мы советуем верстать его с помощью трюка с input type="radio".
Трюк основан на строгой структуре вёрстки. Используем тег label, внутри инпут‑радио и див — кнопка переключателя. Тег label по клику активирует находящийся внутри инпут, подробнее мы разберём это дальше в книге. А пока в ЦСС спрячем сами инпуты и будем подкрашивать ближайшего соседа активного инпута.
Спрятанные инпуты не перестают работать, клик по обёртке label будет их активировать и применять стили для дива‑соседа.
<div class="switch">
<label>
<input type="radio" name="transport" checked>
<div class="switch__item">Самолётом</div>
</label>
<label>
<input type="radio" name="transport">
<div class="switch__item">Поездом</div>
</label>
<label>
<input type="radio" name="transport">
<div class="switch__item">Машиной</div>
</label>
</div>
.switch {
display: flex; /* Ставим элементы в ряд */
}
.switch__item {
padding: 5px 10px;
}
.switch input {
display: none; /* Спрятанный инпут не перестаёт работать */
}
/* Применяем стили для соседа «чекнутого» инпута */
.switch input:checked + .switch__item {
background: #00aff0;
color: white;
}
Флексбоксы
Переключатель — вариант группы радиокнопок. В ХТМЛ нет отдельного тега для переключателя, мы советуем верстать его с помощью трюка с input type="radio".
Трюк основан на строгой структуре вёрстки. Используем тег label, внутри инпут‑радио и див — кнопка переключателя. Тег label по клику активирует находящийся внутри инпут, подробнее мы разберём это дальше в книге. А пока в ЦСС спрячем сами инпуты и будем подкрашивать ближайшего соседа активного инпута.
Спрятанные инпуты не перестают работать, клик по обёртке label будет их активировать и применять стили для дива‑соседа.
<div class="switch">
<label>
<input type="radio" name="transport" checked>
<div class="switch__item">Самолётом</div>
</label>
<label>
<input type="radio" name="transport">
<div class="switch__item">Поездом</div>
</label>
<label>
<input type="radio" name="transport">
<div class="switch__item">Машиной</div>
</label>
</div>
.switch {
display: flex; /* Ставим элементы в ряд */
}
.switch__item {
padding: 5px 10px;
}
.switch input {
display: none; /* Спрятанный инпут не перестаёт работать */
}
/* Применяем стили для соседа «чекнутого» инпута */
.switch input:checked + .switch__item {
background: #00aff0;
color: white;
}
Флексбоксы
Как и группа радиокнопок, выпадющий список используют для выбора объекта или уточнения действия.
Разработчики называют выпадающий список селектом, потому что его верстают тегом select. Внутрь тега помещают варианты — option, атрибут selected выбирает вариант по умолчанию. Варианты можно объединять в группы — optgroup.
Внешний вид селекта можно менять через ЦСС, но на внешний вид вариантов повлиять нельзя — он будет зависеть от операционной системы посетителя страницы.
Радиокнопки
<p>Доставка</p>
<select>
<option selected>Курьером магазина</option>
<optgroup label="Почтой России">
<option>В отделение почты</option>
<option>В постамат</option>
<option>Курьером почты</option>
</optgroup>
<optgroup label="СДЭКом">
<option>В пункт выдачи СДЭК</option>
<option>Курьером СДЭК</option>
</optgroup>
<select>
Доставка
Как и группа радиокнопок, выпадющий список используют для выбора объекта или уточнения действия.
Разработчики называют выпадающий список селектом, потому что его верстают тегом select. Внутрь тега помещают варианты — option, атрибут selected выбирает вариант по умолчанию. Варианты можно объединять в группы — optgroup.
Внешний вид селекта можно менять через ЦСС, но на внешний вид вариантов повлиять нельзя — он будет зависеть от операционной системы посетителя страницы.
Радиокнопки
<p>Доставка</p>
<select>
<option selected>Курьером магазина</option>
<optgroup label="Почтой России">
<option>В отделение почты</option>
<option>В постамат</option>
<option>Курьером почты</option>
</optgroup>
<optgroup label="СДЭКом">
<option>В пункт выдачи СДЭК</option>
<option>Курьером СДЭК</option>
</optgroup>
<select>
Доставка
Кнопки можно встретить в разных частях страницы, необязательно в формах. В шапке сайта может быть кнопка переключения темы оформления, а в карточке товара кнопка добавления в корзину или вызова всплывашки с таблицей размеров.
Кнопку верстают тегом button, стандартные стили тега зависят от браузера и операционной системы.
<button>Оплатить<button>
При стилизации не забудьте отключить или изменить стандартные цвета и обводку, чтобы они не конфликтовали с вашими стилями.
<button>Оплатить<button>
button {
border: none; /* Убираем стандартную обводку */
font-size: 20px;
line-height: 36px;
font-family: Bureausans, Arial, sans-serif;
background: #2aad05;
color: #fff;
padding: 0 18px;
border-radius: 3px;
}
Внутрь кнопки можно поместить другие теги. Например, иконку:
<button>
Подарить
<img src="gift.svg">
<button>button {
border: none;
/* Убираем стандартную обводку */
font-size: 20px;
line-height: 36px;
font-family: Bureausans, Arial, sans-serif;
background: #2aad05;
color: #fff;
padding: 0 18px;
border-radius: 3px;
}
button img {
width: 16px;
margin-left: 5px;
}
Чтобы привязать действие к нажатию кнопки, нужно писать код на Яваскрипте. Это выходит за рамки книги. Базовые рецепты управления страницей с помощью кнопки можно изучить в видео «Яваскрипт для не‑разработчиков».
«Яваскрипт для не‑разработчиков». Запись прямого эфира Игоря Петрова
Можно заставить кнопку работать как ссылка, добавив в в атрибут onclick маленькое заклинание на Яваскрипте. Внимательнее с кавычками:
<button onclick="location.href='https://ya.ru'">
Яндекс
</button>
Этот трюк применяют для быстрого прототипирования. Делать так на публичной странице опасно: такую «ссылку» не поймут устройства чтения с экрана и не распознают поисковые роботы. Если на страницу нет ссылок через тег‑ссылку a, поисковики могут вовсе не увидеть её и не добавить в поисковую выдачу.
Кнопки можно встретить в разных частях страницы, необязательно в формах. В шапке сайта может быть кнопка переключения темы оформления, а в карточке товара кнопка добавления в корзину или вызова всплывашки с таблицей размеров.
Кнопку верстают тегом button, стандартные стили тега зависят от браузера и операционной системы.
<button>Оплатить<button>
При стилизации не забудьте отключить или изменить стандартные цвета и обводку, чтобы они не конфликтовали с вашими стилями.
<button>Оплатить<button>
button {
border: none; /* Убираем стандартную обводку */
font-size: 20px;
line-height: 36px;
font-family: Bureausans, Arial, sans-serif;
background: #2aad05;
color: #fff;
padding: 0 18px;
border-radius: 3px;
}
Внутрь кнопки можно поместить другие теги. Например, иконку:
<button>
Подарить
<img src="gift.svg">
<button>button {
border: none;
/* Убираем стандартную обводку */
font-size: 20px;
line-height: 36px;
font-family: Bureausans, Arial, sans-serif;
background: #2aad05;
color: #fff;
padding: 0 18px;
border-radius: 3px;
}
button img {
width: 16px;
margin-left: 5px;
}
Чтобы привязать действие к нажатию кнопки, нужно писать код на Яваскрипте. Это выходит за рамки книги. Базовые рецепты управления страницей с помощью кнопки можно изучить в видео «Яваскрипт для не‑разработчиков».
«Яваскрипт для не‑разработчиков». Запись прямого эфира Игоря Петрова
Можно заставить кнопку работать как ссылка, добавив в в атрибут onclick маленькое заклинание на Яваскрипте. Внимательнее с кавычками:
<button onclick="location.href='https://ya.ru'">
Яндекс
</button>
Этот трюк применяют для быстрого прототипирования. Делать так на публичной странице опасно: такую «ссылку» не поймут устройства чтения с экрана и не распознают поисковые роботы. Если на страницу нет ссылок через тег‑ссылку a, поисковики могут вовсе не увидеть её и не добавить в поисковую выдачу.
Используйте нестандартные инпуты, когда можете чётко сформулировать пользу, понимаете возможный вред и уверены, что результата не добиться стандартными инпутами.
И обязательно проверьте нестандартный инпут в разных сценариях и устройствах.
Нестандартные элементы интерфейса. Лекция Ильи Бирмана
Когда стандартных способов оформления инпута недостаточно, к сайту подключают сторонние библиотеки стилей и скриптов, создающие нестандартные инпуты. Например, диапазоны выбора дат или поля ввода по шаблону и с подсвечиванием ошибок. Нестандартные инпуты выглядят заманчиво, но имеют важные нюансы.
Нестандартные инпуты лишний раз усложняют разработку, заставляют пользователей переучиваться и осваивать непривычный интерфейс, а ещё частенько не поддерживают базовые функции стандартных инпутов: предсказуемое управление с клавиатуры и доступность для устройств чтения с экрана.
Когда стандартных способов оформления инпута недостаточно, к сайту подключают сторонние библиотеки стилей и скриптов, создающие нестандартные инпуты. Например, диапазоны выбора дат или поля ввода по шаблону и с подсвечиванием ошибок. Нестандартные инпуты выглядят заманчиво, но имеют важные нюансы.
Нестандартные инпуты лишний раз усложняют разработку, заставляют пользователей переучиваться и осваивать непривычный интерфейс, а ещё частенько не поддерживают базовые функции стандартных инпутов: предсказуемое управление с клавиатуры и доступность для устройств чтения с экрана.
Используйте нестандартные инпуты, когда можете чётко сформулировать пользу, понимаете возможный вред и уверены, что результата не добиться стандартными инпутами.
И обязательно проверьте нестандартный инпут в разных сценариях и устройствах.
Нестандартные элементы интерфейса. Лекция Ильи Бирмана