🔍 Начните печатать, чтобы искать по книге или перейти к нужной странице по номеру
Удобно листать не только прокруткой, но и клавишами‑стрелками:
Эта книга — пошаговая инструкция по вёрстке сайтов на языках ХТМЛ и ЦСС. Вы узнаете не только как сверстать сайт, но и как опубликовать его в интернете, настроить красивый шаринг в соцсети и подключить системы аналитики.
Отдельный раздел книги посвящён работе с верстальщиком: как ставить задачи, получать предсказуемый результат и правильно принимать и внедрять вёрстку.
Знакомство с ХТМЛ и ЦСС
Модули
Расстановка
Страницы
Спецэффекты
Контроль качества
Публикация
Как работать с верстальщиком
Эта книга — пошаговая инструкция по вёрстке сайтов на языках ХТМЛ и ЦСС. Вы узнаете не только как сверстать сайт, но и как опубликовать его в интернете, настроить красивый шаринг в соцсети и подключить системы аналитики.
Отдельный раздел книги посвящён работе с верстальщиком: как ставить задачи, получать предсказуемый результат и правильно принимать и внедрять вёрстку.
Знакомство с ХТМЛ и ЦСС
Модули
Расстановка
Страницы
Спецэффекты
Контроль качества
Публикация
Как работать с верстальщиком
Можно хранить аудиофайлы у себя и использовать стандартный плеер браузера:
<audio src="./audio.mp3" controls>
</audio>Или использовать для создания плеера стороннюю библиотеку. Например, «Жуэль» Ильи Бирмана:
<a href="./dd-34.mp3" class="jouele">
Думаем дальше № 34 — «Раньше вообще без штанов бегали» с Женей Арутюновым
</a>
Дизайн стандартного плеера отличается в разных браузерах и повлиять на него из ЦСС толком нельзя
Библиотеки дают простор для стилизации плеера и дополнительные функции, вроде объединения треков в плейлист.
Дизайн стандартного плеера отличается в разных браузерах и повлиять на него из ЦСС толком нельзя
Библиотеки дают простор для стилизации плеера и дополнительные функции, вроде объединения треков в плейлист.
Можно хранить аудиофайлы у себя и использовать стандартный плеер браузера:
<audio src="./audio.mp3" controls>
</audio>Или использовать для создания плеера стороннюю библиотеку. Например, «Жуэль» Ильи Бирмана:
<a href="./dd-34.mp3" class="jouele">
Думаем дальше № 34 — «Раньше вообще без штанов бегали» с Женей Арутюновым
</a>
Сайдноуты — это примечания на полях. Убедитесь, что размер полей достаточен и поставьте туда сайдноуты абсолютом:
/* Абсолют и вынос на поля только когда позволяет ширина экрана */
@media (width > 768px) {
.layer {
--sideWidth: 5em; /* Ширину сайдноута — в переменную, чтобы не повторяться */
position: relative; /* Для работы абсолютного позиционирования внутри слоя */
padding-right: calc(var(--sideWidth) + 1em); /* Поля больше ширины сайдноута, чтобы был отступ от текста */
}
.sidenote {
width: var(--sideWidth);
position: absolute;
right: 0;
}
}
<div class="layer">
<p>…</p>
<div class="sidenote">
<a href="…">Интерфейс — зло</a>
</div>
<p>…</p>
<p>…</p>
</div>
Сайдноуты — это примечания на полях. Убедитесь, что размер полей достаточен и поставьте туда сайдноуты абсолютом:
/* Абсолют и вынос на поля только когда позволяет ширина экрана */
@media (width > 768px) {
.layer {
--sideWidth: 5em; /* Ширину сайдноута — в переменную, чтобы не повторяться */
position: relative; /* Для работы абсолютного позиционирования внутри слоя */
padding-right: calc(var(--sideWidth) + 1em); /* Поля больше ширины сайдноута, чтобы был отступ от текста */
}
.sidenote {
width: var(--sideWidth);
position: absolute;
right: 0;
}
}
<div class="layer">
<p>…</p>
<div class="sidenote">
<a href="…">Интерфейс — зло</a>
</div>
<p>…</p>
<p>…</p>
</div>
У сайдноутов с абсолютным позиционированием есть проблема.
Чтобы на широком экране они встали на поля, в разметке сайдноут должен стоять над текстом, к которому относится.
На узком экране, когда абсолют не применяется, сайдноут остаётся над текстом и это неправильно по смыслу, ведь сайдноут — примечание к тексту.
<div class="layer">
<div class="sidenote">…</div>
<p>…</p>
</div>
Самый простой способ исправить это без программирования — продублировать сайдноуты в разметке над и под текстом, на узком экране прятать один и показывать другой.
В идеале — запрограммировать сайт, чтобы он создавал такие копии сайдноутов автоматически.
<div class="layer">
<div class="sidenote">…</div>
<p>…</p>
<div class="sidenote is__sm">…</div>
</div>
.sidenote:not(.is__sm) {
display: none;
}
@media (width > 768px) {
.sidenote.is__sm {
display: none;
}
.sidenote:not(.is__sm) {
display: block;
}
}
У сайдноутов с абсолютным позиционированием есть проблема.
Чтобы на широком экране они встали на поля, в разметке сайдноут должен стоять над текстом, к которому относится.
На узком экране, когда абсолют не применяется, сайдноут остаётся над текстом и это неправильно по смыслу, ведь сайдноут — примечание к тексту.
<div class="layer">
<div class="sidenote">…</div>
<p>…</p>
</div>
Самый простой способ исправить это без программирования — продублировать сайдноуты в разметке над и под текстом, на узком экране прятать один и показывать другой.
В идеале — запрограммировать сайт, чтобы он создавал такие копии сайдноутов автоматически.
<div class="layer">
<div class="sidenote">…</div>
<p>…</p>
<div class="sidenote is__sm">…</div>
</div>
.sidenote:not(.is__sm) {
display: none;
}
@media (width > 768px) {
.sidenote.is__sm {
display: none;
}
.sidenote:not(.is__sm) {
display: block;
}
}
Плашка помогает отделить модуль от соседнего и объединить его собственные части. Оформление плашки — дань текущей моде или фирменному стилю, но её функция остаётся одной и той же — выделять и объединять.
В вёрстке простейшая плашка — просто контейнер с полями и фоном. Хорошая идея — одновременно «сломать» сетку и создать внутри плашки особый ритм, чтобы дополнительно выделить её среди других модулей.
.boxed {
padding: 36px 9px 72px;
background: #f3f5f4;
}
<div class="boxed">
<div class="cols">
<!-- … -->
</div>
</div>О сетках:
Флексбоксы
Гриды
Плашка помогает отделить модуль от соседнего и объединить его собственные части. Оформление плашки — дань текущей моде или фирменному стилю, но её функция остаётся одной и той же — выделять и объединять.
В вёрстке простейшая плашка — просто контейнер с полями и фоном. Хорошая идея — одновременно «сломать» сетку и создать внутри плашки особый ритм, чтобы дополнительно выделить её среди других модулей.
.boxed {
padding: 36px 9px 72px;
background: #f3f5f4;
}
<div class="boxed">
<div class="cols">
<!-- … -->
</div>
</div>О сетках:
Флексбоксы
Гриды
Выносы и цитаты привлекают внимание. Если они интересные — читателю захочется узнать подробности в тексте. Вынос верстают обёрткой с особыми стилями:
<p>…</p>
<div class="liftOut">
<p>…</p>
</div>
<p>…</p>
.liftOut {
font-size: 200%;
padding-left: 1.25em;
color: #00aff0;
}
.liftOut:not(:last-child) {
margin-bottom: 1.25em;
}
Выносы и цитаты привлекают внимание. Если они интересные — читателю захочется узнать подробности в тексте. Вынос верстают обёрткой с особыми стилями:
<p>…</p>
<div class="liftOut">
<p>…</p>
</div>
<p>…</p>
.liftOut {
font-size: 200%;
padding-left: 1.25em;
color: #00aff0;
}
.liftOut:not(:last-child) {
margin-bottom: 1.25em;
}