Bootstrap
Bootstrap — набор CSS-классов и JavaScript-компонентов для адаптивного интерфейса. Он даёт согласованную сетку, spacing, typography, формы и готовые interactive components.
Сетка
Основная модель:
<div class="container">
<div class="row g-3">
<section class="col-12 col-md-8">Main</section>
<aside class="col-12 col-md-4">Aside</aside>
</div>
</div>- на маленьком экране оба блока занимают строку;
- начиная с breakpoint
mdширина делится как 8/12 и 4/12; - gutter задаёт расстояние между колонками.
Utility classes
Небольшое оформление можно выразить классами:
<button class="btn btn-primary px-3" type="submit">
Save
</button>Utility classes ускоряют прототип, но длинная комбинация в каждом элементе начинает дублировать решение. Повторяющийся компонент лучше выделить.
JavaScript-компоненты
Modal, dropdown, collapse и tooltip имеют не только визуальный вид, но и поведение. Нужно подключить подходящий JavaScript bundle и сохранить доступную HTML-структуру.
Data attributes упрощают простой случай:
<button
type="button"
class="btn btn-secondary"
data-bs-toggle="collapse"
data-bs-target="#details">
Details
</button>Ограничения
- одинаковые defaults делают продукты визуально похожими без собственной темы;
- override большого числа внутренних selectors усложняет обновление;
- неверная версия примера может использовать устаревшие имена классов;
- готовый компонент не освобождает от проверки keyboard navigation, labels и contrast;
- весь bundle не всегда нужен для маленькой страницы.
Вопросы для самопроверки
- Чем
containerотличается отcontainer-fluid? - Как mobile-first breakpoints меняют layout?
- Нужен ли JavaScript для обычной grid?
- Почему визуально скрытая label всё ещё может быть нужна?
- Когда проще написать небольшой собственный компонент?