HTML Diff
0 added 0 removed
Original 2026-01-01
Modified 2026-02-26
1 <p>Адаптивность - неотъемлемая часть любого современного сайта. Разберемся как она работает в Bootstrap.</p>
1 <p>Адаптивность - неотъемлемая часть любого современного сайта. Разберемся как она работает в Bootstrap.</p>
2 <p>В своей основе Bootstrap использует подход Mobile First. Это означает, что вначале указывается код для мобильных устройств, а потом код для десктопа. Возникает вопрос: "А причем тут Mobile First, если необходимо только использовать нужные классы?". Ответ на данный вопрос кроется в том, с какими разрешениями экрана работает Bootstrap. Таких разрешений в последней версии пять:</p>
2 <p>В своей основе Bootstrap использует подход Mobile First. Это означает, что вначале указывается код для мобильных устройств, а потом код для десктопа. Возникает вопрос: "А причем тут Mobile First, если необходимо только использовать нужные классы?". Ответ на данный вопрос кроется в том, с какими разрешениями экрана работает Bootstrap. Таких разрешений в последней версии пять:</p>
3 <ul><li><em>Extra small</em>. Ширина viewport меньше 576px. Внутри Bootstrap такое разрешение никак не маркируется. Данный тип является значением по умолчанию. Ширина .container: 100%</li>
3 <ul><li><em>Extra small</em>. Ширина viewport меньше 576px. Внутри Bootstrap такое разрешение никак не маркируется. Данный тип является значением по умолчанию. Ширина .container: 100%</li>
4 <li><em>Small</em>. Ширина viewport больше или равна 576px. Внутри Bootstrap такое разрешение маркируется как<strong>-sm-</strong>. Ширина .container: 540px</li>
4 <li><em>Small</em>. Ширина viewport больше или равна 576px. Внутри Bootstrap такое разрешение маркируется как<strong>-sm-</strong>. Ширина .container: 540px</li>
5 <li><em>Medium</em>. Ширина viewport больше или равна 768px. Внутри Bootstrap такое разрешение маркируется как<strong>-md-</strong>. Ширина .container: 720px</li>
5 <li><em>Medium</em>. Ширина viewport больше или равна 768px. Внутри Bootstrap такое разрешение маркируется как<strong>-md-</strong>. Ширина .container: 720px</li>
6 <li><em>Large</em>. Ширина viewport больше или равна 992px. Внутри Bootstrap такое разрешение маркируется как<strong>-lg-</strong>. Ширина .container: 960px</li>
6 <li><em>Large</em>. Ширина viewport больше или равна 992px. Внутри Bootstrap такое разрешение маркируется как<strong>-lg-</strong>. Ширина .container: 960px</li>
7 <li><em>Extra large</em>. Ширина viewport больше или равна 1200px. Внутри Bootstrap такое разрешение маркируется как<strong>-xl-</strong>. Ширина .container: 1140px</li>
7 <li><em>Extra large</em>. Ширина viewport больше или равна 1200px. Внутри Bootstrap такое разрешение маркируется как<strong>-xl-</strong>. Ширина .container: 1140px</li>
8 </ul><p>Эти префиксы, которые есть у разрешений, используются внутри сеток и утилит. Утилиты будут изучены в одном из следующих уроков.</p>
8 </ul><p>Эти префиксы, которые есть у разрешений, используются внутри сеток и утилит. Утилиты будут изучены в одном из следующих уроков.</p>
9 <p><strong>Важно:</strong>используя данные префиксы важно помнить о подходе Mobile First. В этом подходе префиксы влияют на стили только для определенных ширин viewport’а и более. Например, классы с префиксом<strong>-md-</strong>не будут использоваться при разрешении менее 768px.</p>
9 <p><strong>Важно:</strong>используя данные префиксы важно помнить о подходе Mobile First. В этом подходе префиксы влияют на стили только для определенных ширин viewport’а и более. Например, классы с префиксом<strong>-md-</strong>не будут использоваться при разрешении менее 768px.</p>
10 <p>Используем изученные префиксы на колонках. К каждой из них можно добавить нужный префикс, тем самым добиваясь различного отображения на разных разрешениях экрана.</p>
10 <p>Используем изученные префиксы на колонках. К каждой из них можно добавить нужный префикс, тем самым добиваясь различного отображения на разных разрешениях экрана.</p>
11 <p>В этом примере боковая панель работает по следующему алгоритму:</p>
11 <p>В этом примере боковая панель работает по следующему алгоритму:</p>
12 <ul><li>При ширине менее 768px панель занимает всю доступную ширину viewport. За это отвечает класс<em>.col-12</em></li>
12 <ul><li>При ширине менее 768px панель занимает всю доступную ширину viewport. За это отвечает класс<em>.col-12</em></li>
13 <li>При ширине от 768px до 992px панель занимает 3 из 12 колонок в сетке. За это отвечает класс<em>.col-md-3</em></li>
13 <li>При ширине от 768px до 992px панель занимает 3 из 12 колонок в сетке. За это отвечает класс<em>.col-md-3</em></li>
14 <li>При ширине от 992px панель занимает 2 из 12 колонок в сетке. За это отвечает класс<em>.col-lg-2</em></li>
14 <li>При ширине от 992px панель занимает 2 из 12 колонок в сетке. За это отвечает класс<em>.col-lg-2</em></li>
15 </ul><p><a>Codepen</a></p>
15 </ul><p><a>Codepen</a></p>
16 <p>Перейдите на сайт Codepen, чтобы полноценно увидеть результат. Измените колонки так, как хочется.</p>
16 <p>Перейдите на сайт Codepen, чтобы полноценно увидеть результат. Измените колонки так, как хочется.</p>
17 <h2>row-cols-*</h2>
17 <h2>row-cols-*</h2>
18 <p>Начиная с версии Bootstrap 4.4 появились новые классы для создания колонок. Такими классами стали<em>.row-cols-*</em>, где<em>*</em>- значение от 1 до 6. Что же в них такого интересного? Они позволяют на уровне<em>row</em>задать количество колонок при использовании класса<em>.col</em>у дочерних элементов. Это полезно для создания секции однотипных элементов, которые имеют одинаковую ширину. Такими элементами могут являться карточки товара.</p>
18 <p>Начиная с версии Bootstrap 4.4 появились новые классы для создания колонок. Такими классами стали<em>.row-cols-*</em>, где<em>*</em>- значение от 1 до 6. Что же в них такого интересного? Они позволяют на уровне<em>row</em>задать количество колонок при использовании класса<em>.col</em>у дочерних элементов. Это полезно для создания секции однотипных элементов, которые имеют одинаковую ширину. Такими элементами могут являться карточки товара.</p>
19 <p>Как и у классов<em>.col-*</em>, классы вида<em>.row-cols-*</em>имеют префиксы, изученные в этом уроке. Их назначение и принцип работы ничем не отличается. Для примера создадим небольшой каталог, который:</p>
19 <p>Как и у классов<em>.col-*</em>, классы вида<em>.row-cols-*</em>имеют префиксы, изученные в этом уроке. Их назначение и принцип работы ничем не отличается. Для примера создадим небольшой каталог, который:</p>
20 <ul><li>При ширине больше 992px расставляет по 6 карточек в ряд</li>
20 <ul><li>При ширине больше 992px расставляет по 6 карточек в ряд</li>
21 <li>При ширине от 768px до 992px расставляет по 4 карточки в ряд</li>
21 <li>При ширине от 768px до 992px расставляет по 4 карточки в ряд</li>
22 <li>При ширине от 576px до 768px расставляет по 2 карточки в ряд</li>
22 <li>При ширине от 576px до 768px расставляет по 2 карточки в ряд</li>
23 <li>При ширине меньше 576px расставляет по 1 карточке в ряд</li>
23 <li>При ширине меньше 576px расставляет по 1 карточке в ряд</li>
24 </ul><p>При таком количестве условий решение задачи сводится всего к добавлению пары классов на уровень<em>row</em>.</p>
24 </ul><p>При таком количестве условий решение задачи сводится всего к добавлению пары классов на уровень<em>row</em>.</p>
25 <p><a>Codepen</a></p>
25 <p><a>Codepen</a></p>
26 <p>Как и в прошлом примере, изменяйте значения, чтобы увидеть, как изменение всего одного класса влияет на верстку в целом.</p>
26 <p>Как и в прошлом примере, изменяйте значения, чтобы увидеть, как изменение всего одного класса влияет на верстку в целом.</p>
27 <p><strong>Важно:</strong>при использовании классов вида<em>.row-cols-*</em>значения<em>.col-*</em>у элементов игнорируется. Управление по размещению карточек есть только на уровне<em>row</em></p>
27 <p><strong>Важно:</strong>при использовании классов вида<em>.row-cols-*</em>значения<em>.col-*</em>у элементов игнорируется. Управление по размещению карточек есть только на уровне<em>row</em></p>