Используя таблицу интегралов элементарных функций, получим: турбулентность волнообразна. Волна доступна. Теорема традиционно искажает неопровержимый вектор.
🔍 Начните печатать, чтобы искать по книге или перейти к нужной странице по номеру
Удобно листать не только прокруткой, но и клавишами‑стрелками:
Эта книга — пошаговая инструкция по вёрстке сайтов на языках ХТМЛ и ЦСС. Вы узнаете не только как сверстать сайт, но и как опубликовать его в интернете, настроить красивый шаринг в соцсети и подключить системы аналитики.
Отдельный раздел книги посвящён работе с верстальщиком: как ставить задачи, получать предсказуемый результат и правильно принимать и внедрять вёрстку.
Знакомство с ХТМЛ и ЦСС
Модули
Расстановка
Страницы
Спецэффекты
Контроль качества
Публикация
Как работать с верстальщиком
Эта книга — пошаговая инструкция по вёрстке сайтов на языках ХТМЛ и ЦСС. Вы узнаете не только как сверстать сайт, но и как опубликовать его в интернете, настроить красивый шаринг в соцсети и подключить системы аналитики.
Отдельный раздел книги посвящён работе с верстальщиком: как ставить задачи, получать предсказуемый результат и правильно принимать и внедрять вёрстку.
Знакомство с ХТМЛ и ЦСС
Модули
Расстановка
Страницы
Спецэффекты
Контроль качества
Публикация
Как работать с верстальщиком
Все значения align-items, что мы рассмотрели выше, применяются ко флекс‑контейнеру и влияют на все элементы внутри него. Если отдельные элементы нужно выровнять по‑особенному на поперечной оси, используют align-self в самих элементах.
Все значения align-items, что мы рассмотрели выше, применяются ко флекс‑контейнеру и влияют на все элементы внутри него. Если отдельные элементы нужно выровнять по‑особенному на поперечной оси, используют align-self в самих элементах.
В выравнивании флекс‑элементов есть трюк: если задать элементу маржин auto, он прижмётся к противоположной стороне.
.module > :nth-child(3) {
margin-left: auto;
/* Сдвинет третий и последующие */
}
.module > :nth-child(4) {
margin-bottom: auto;
}
Чаще всего автоматические маржины используют в модулях, чтобы
.tag {
display: flex;
}
.tag__caption {
margin-top: auto;
margin-left: auto;
}
В выравнивании флекс‑элементов есть трюк: если задать элементу маржин auto, он прижмётся к противоположной стороне.
.module > :nth-child(3) {
margin-left: auto;
/* Сдвинет третий и последующие */
}
.module > :nth-child(4) {
margin-bottom: auto;
}
Чаще всего автоматические маржины используют в модулях, чтобы
.tag {
display: flex;
}
.tag__caption {
margin-top: auto;
margin-left: auto;
}
Перетащите ЦСС‑свойства в селекторы, чтобы пункты меню встали в ряд, а последний пункт меню прижался к правому краю.
nav {
}
nav li:last-child {
}
Вёрстка
Дизайн
Вёрстка
Дизайн
Перетащите ЦСС‑свойства в селекторы, чтобы пункты меню встали в ряд, а последний пункт меню прижался к правому краю.
nav {
}
nav li:last-child {
}
Комбинацию раскладки по осям удобно использовать для центровки. Например, чтобы отцентрировать модуль по горизонтали и вертикали относительно окна браузера, нужно сделать body флекс‑контейнером и выровнять по центру флекс‑элементы по главной и поперечной осям:
body {
min-height: 100%;
display: flex;
justify-content: center;
align-items: center;
}Комбинацию раскладки по осям удобно использовать для центровки. Например, чтобы отцентрировать модуль по горизонтали и вертикали относительно окна браузера, нужно сделать body флекс‑контейнером и выровнять по центру флекс‑элементы по главной и поперечной осям:
body {
min-height: 100%;
display: flex;
justify-content: center;
align-items: center;
}Любую сложную модульную вёрстку можно разбить на вложенные друг в друга флекс‑контейнеры с собственным ритмом элементов. Скажем, классическая трёхколонная вёрстка, состоящая из шапки, статьи и двух сайдбаров, раскладывается в 4 флекс‑контейнера.
Начнём с разметки трехколоночной страницы:
<header>
<div>Логотип</div>
…
</header>
<main>
<article>
<p>…</p>
</article>
<nav>
<li>Навигация</li>
…
</nav>
<aside>
<div>Реклама</div>
…
</aside>
</main>Превратим шапку, содержимое и сайдбары во флекс‑контейнеры и раскрасим флекс‑элементы для наглядности:
header,
main,
aside,
nav {
display: flex;
}
header > *,
article > *,
aside > *,
nav > * {
min-height: 36px;
padding: 9px;
margin: 9px;
background: #e5f5ff;
}Обратите внимание: по умолчанию флекс‑элементы разложились в строку, flex-direction: row
Дадим странице всю доступную высоту, разложим по вертикали и растянем её содержимое:
body {
min-height: 100%;
display: flex;
flex-direction: column;
}
main {
flex-grow: 1; /* Это заклинание заставляет <main> занять всё свободное пространство. Мы рассмотрим его чуть позже */
}
В левом сайдбаре разложим элементы сверху вниз:
nav {
flex-direction: column;
justify-content: flex-start;
}
В правом сайдбаре равномерно распределим элементы:
aside {
flex-direction: column;
justify-content: space-between;
}
И поменяем порядок элементов, чтобы колонка с навигацией была слева:
nav {
flex-direction: column;
justify-content: flex-start;
order: -1; /* И это свойство мы рассмотрим чуть позже */
}
По умолчанию флекс‑элементы занимают столько места, сколько нужно их содержимому. Поэтому колонки с навигацией и рекламой сжались.
Чтобы ширина колонок с навигацией и рекламой не зависела текста, подчиним вёрстку пятиколоночной сетке. Зададим пропорции, по которым колонки и статья делят свободное место в
nav {
flex-direction: column;
justify-content: flex-start;
order: -1;
flex-grow: 1;
flex-basis: 0;
}
aside {
flex-direction: column;
justify-content: space-between;
flex-grow: 1;
flex-basis: 0;
}
article {
flex-grow: 3;
flex-basis: 0;
}Любую сложную модульную вёрстку можно разбить на вложенные друг в друга флекс‑контейнеры с собственным ритмом элементов. Скажем, классическая трёхколонная вёрстка, состоящая из шапки, статьи и двух сайдбаров, раскладывается в 4 флекс‑контейнера.
Начнём с разметки трехколоночной страницы:
<header>
<div>Логотип</div>
…
</header>
<main>
<article>
<p>…</p>
</article>
<nav>
<li>Навигация</li>
…
</nav>
<aside>
<div>Реклама</div>
…
</aside>
</main>Превратим шапку, содержимое и сайдбары во флекс‑контейнеры и раскрасим флекс‑элементы для наглядности:
header,
main,
aside,
nav {
display: flex;
}
header > *,
article > *,
aside > *,
nav > * {
min-height: 36px;
padding: 9px;
margin: 9px;
background: #e5f5ff;
}Обратите внимание: по умолчанию флекс‑элементы разложились в строку, flex-direction: row
Дадим странице всю доступную высоту, разложим по вертикали и растянем её содержимое:
body {
min-height: 100%;
display: flex;
flex-direction: column;
}
main {
flex-grow: 1; /* Это заклинание заставляет <main> занять всё свободное пространство. Мы рассмотрим его чуть позже */
}
В левом сайдбаре разложим элементы сверху вниз:
nav {
flex-direction: column;
justify-content: flex-start;
}
В правом сайдбаре равномерно распределим элементы:
aside {
flex-direction: column;
justify-content: space-between;
}
И поменяем порядок элементов, чтобы колонка с навигацией была слева:
nav {
flex-direction: column;
justify-content: flex-start;
order: -1; /* И это свойство мы рассмотрим чуть позже */
}
По умолчанию флекс‑элементы занимают столько места, сколько нужно их содержимому. Поэтому колонки с навигацией и рекламой сжались.
Чтобы ширина колонок с навигацией и рекламой не зависела текста, подчиним вёрстку пятиколоночной сетке. Зададим пропорции, по которым колонки и статья делят свободное место в
nav {
flex-direction: column;
justify-content: flex-start;
order: -1;
flex-grow: 1;
flex-basis: 0;
}
aside {
flex-direction: column;
justify-content: space-between;
flex-grow: 1;
flex-basis: 0;
}
article {
flex-grow: 3;
flex-basis: 0;
}