🔍 Начните печатать, чтобы искать по книге или перейти к нужной странице по номеру
Удобно листать не только прокруткой, но и клавишами‑стрелками:
Эта книга — пошаговая инструкция по вёрстке сайтов на языках ХТМЛ и ЦСС. Вы узнаете не только как сверстать сайт, но и как опубликовать его в интернете, настроить красивый шаринг в соцсети и подключить системы аналитики.
Отдельный раздел книги посвящён работе с верстальщиком: как ставить задачи, получать предсказуемый результат и правильно принимать и внедрять вёрстку.
Знакомство с ХТМЛ и ЦСС
Модули
Расстановка
Страницы
Спецэффекты
Контроль качества
Публикация
Как работать с верстальщиком
Эта книга — пошаговая инструкция по вёрстке сайтов на языках ХТМЛ и ЦСС. Вы узнаете не только как сверстать сайт, но и как опубликовать его в интернете, настроить красивый шаринг в соцсети и подключить системы аналитики.
Отдельный раздел книги посвящён работе с верстальщиком: как ставить задачи, получать предсказуемый результат и правильно принимать и внедрять вёрстку.
Знакомство с ХТМЛ и ЦСС
Модули
Расстановка
Страницы
Спецэффекты
Контроль качества
Публикация
Как работать с верстальщиком
За горизонтальные направляющие, за количество и размер строк отвечает свойство grid-template-rows. Работает точно так же, как и grid-template-columns, но для строк.
Поддерживает те же величины:
.grid {
display: grid;
grid-template-rows: 50px 20% 1fr 2fr;
}
Функцию repeat:
.grid {
display: grid;
grid-template-rows: repeat(4, 50px);
}
Функцию minmax с auto-fill и auto-fit:
.grid {
display: grid;
grid-template-rows: repeat(auto-fit, minmax(100px, 1fr));
}Единицы измерения размеров
Функция repeat
Ключевые слова auto‑fill и auto‑fit
За горизонтальные направляющие, за количество и размер строк отвечает свойство grid-template-rows. Работает точно так же, как и grid-template-columns, но для строк.
Поддерживает те же величины:
.grid {
display: grid;
grid-template-rows: 50px 20% 1fr 2fr;
}
Функцию repeat:
.grid {
display: grid;
grid-template-rows: repeat(4, 50px);
}
Функцию minmax с auto-fill и auto-fit:
.grid {
display: grid;
grid-template-rows: repeat(auto-fit, minmax(100px, 1fr));
}Единицы измерения размеров
Функция repeat
Ключевые слова auto‑fill и auto‑fit
За порядок, в котором элементы заполняют контейнер, отвечает grid-auto-flow. По умолчанию элементы заполняют его ряд за рядом:
.grid {
grid-auto-flow: row;
}
Если сменить grid-auto-flow на column, элементы станут заполнять грид‑контейнер колонку за колонкой, сверху вниз:
.grid {
grid-auto-flow: column;
}
За порядок, в котором элементы заполняют контейнер, отвечает grid-auto-flow. По умолчанию элементы заполняют его ряд за рядом:
.grid {
grid-auto-flow: row;
}
Если сменить grid-auto-flow на column, элементы станут заполнять грид‑контейнер колонку за колонкой, сверху вниз:
.grid {
grid-auto-flow: column;
}
Соберём сетку на четыре элемента:
.grid {
grid-template-columns: 1fr 1fr;
grid-template-rows: 50px 50px;
}Если элементов внутри грид‑контейнера больше, чем доступных ячеек, то для них автоматически создадутся колонки и ряды.
За размеры неявно созданных ячеек отвечают свойства grid-auto-columns и grid-auto-rows. Добавим grid-auto-rows: 50px, чтобы новые ячейки получили высоту в 50 пикселей:
.grid {
grid-template-columns: 1fr 1fr;
grid-template-rows: 50px 50px;
grid-auto-rows: 50px; /* Пусть автоматические ряды имеют высоту в 50 пк */
}
Если элементы заполняют контейнер не по строкам, а по колонкам, используем grid-auto-columns
.grid {
grid-template-columns: 1fr 1fr;
grid-template-rows: 50px 50px;
grid-auto-flow: column;
grid-auto-columns: 50px; /* Пусть автоматические колонки имеют ширину в 50 пк */
}
Соберём сетку на четыре элемента:
.grid {
grid-template-columns: 1fr 1fr;
grid-template-rows: 50px 50px;
}Если элементов внутри грид‑контейнера больше, чем доступных ячеек, то для них автоматически создадутся колонки и ряды.
За размеры неявно созданных ячеек отвечают свойства grid-auto-columns и grid-auto-rows. Добавим grid-auto-rows: 50px, чтобы новые ячейки получили высоту в 50 пикселей:
.grid {
grid-template-columns: 1fr 1fr;
grid-template-rows: 50px 50px;
grid-auto-rows: 50px; /* Пусть автоматические ряды имеют высоту в 50 пк */
}
Если элементы заполняют контейнер не по строкам, а по колонкам, используем grid-auto-columns
.grid {
grid-template-columns: 1fr 1fr;
grid-template-rows: 50px 50px;
grid-auto-flow: column;
grid-auto-columns: 50px; /* Пусть автоматические колонки имеют ширину в 50 пк */
}
С помощью grid-auto-columns и grid-auto-flow можно собрать адаптивные колонки, равномерно делящие доступное пространство:
.cols {
display: grid; /* Включаем гриды */
grid-auto-columns: minmax(100px, 1fr); /* Пусть неявные колонки равномерно делят свободное пространство, сохраняя минимальную ширину в 100 пк */
grid-auto-flow: column; /* Пусть невлезающие элементы выстраиваются в колонки */
gap: 18px; /* Задаём межколонник в 18 пк */
height: 100%; /* Растягиваем колонки по высоте */
}<div class="cols">
<div>Первая колонка</div>
…
<div>Четвёртая колонка</div>
</div>
<div class="cols">
<div>Первая колонка</div>
<div>Вторая колонка</div>
</div>
<div class="cols">
<div>Первая колонка</div>
…
<div>Пятая колонка</div>
</div>Адаптивные колонки на флексбоксах
С помощью grid-auto-columns и grid-auto-flow можно собрать адаптивные колонки, равномерно делящие доступное пространство:
.cols {
display: grid; /* Включаем гриды */
grid-auto-columns: minmax(100px, 1fr); /* Пусть неявные колонки равномерно делят свободное пространство, сохраняя минимальную ширину в 100 пк */
grid-auto-flow: column; /* Пусть невлезающие элементы выстраиваются в колонки */
gap: 18px; /* Задаём межколонник в 18 пк */
height: 100%; /* Растягиваем колонки по высоте */
}<div class="cols">
<div>Первая колонка</div>
…
<div>Четвёртая колонка</div>
</div>
<div class="cols">
<div>Первая колонка</div>
<div>Вторая колонка</div>
</div>
<div class="cols">
<div>Первая колонка</div>
…
<div>Пятая колонка</div>
</div>Адаптивные колонки на флексбоксах
Комбинацию grid-auto-columns с ключевыми словами min-content, max-content или fit-content используют для раскладки, в которой ширина и количество колонок зависит от содержимого. Например, при вёрстке горизонтального меню:
.menu {
display: grid;
grid-auto-flow: column; /* Автоматически раскладываем содержимое в колонки */
grid-auto-columns: max-content; /* Автоматически создаём колонки по количеству пунктов меню с шириной по их содержимому. Мы используем max-content, а не min-content, чтобы пункты меню из нескольких слов всегда оставались в одну строку */
column-gap: 20px; /* Задаём межколонник в 20 пк */
}В случае с текстом min‑content — это «займи так мало места, чтобы самое длинное слово вместилось», а max‑content — это «займи так много места, чтобы текст не пришлось переносить».
Комбинацию grid-auto-columns с ключевыми словами min-content, max-content или fit-content используют для раскладки, в которой ширина и количество колонок зависит от содержимого. Например, при вёрстке горизонтального меню:
.menu {
display: grid;
grid-auto-flow: column; /* Автоматически раскладываем содержимое в колонки */
grid-auto-columns: max-content; /* Автоматически создаём колонки по количеству пунктов меню с шириной по их содержимому. Мы используем max-content, а не min-content, чтобы пункты меню из нескольких слов всегда оставались в одну строку */
column-gap: 20px; /* Задаём межколонник в 20 пк */
}В случае с текстом min‑content — это «займи так мало места, чтобы самое длинное слово вместилось», а max‑content — это «займи так много места, чтобы текст не пришлось переносить».