Bootstrap 4

Bootstrap 4 пока находится в разработке. Страница альфа-версии находится по адресу http://v4-alpha.getbootstrap.com/. На момент написания статьи была версия v4.0.0-alpha.6

В конце декабря было объявлено, что Bootstrap 4 прекращает поддержку IE9 и полностью переходит на Flexbox.

Bootstrap 4 теперь по умолчанию использует Flexbox.

Список изменений:

Удалена переменная $enable-flex. Flexbox теперь включен по умолчанию и не может быть отключен через Sass-переменную.

Для карт, сетки, медиа-объектов, списков и компонентов навигации удалены non-flexbox варианты.

Можно пользоваться автовыравниванием flexbox.

Что касается карт, то теперь .card-deck-wrapper можно удалить.

Теперь не обязательно иметь строгий порядок разметки при использовании медиа-объектов (.media-left и .media-right не обязательно должны идти первыми в DOM).

Практически вся документация по сетке объединена в единый файл grid.md.

Из строк был удален Clearfix.

Теперь колонки используют max-width вместо width.

Правила подключения остались прежними.

Подключаем CSS:


<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-alpha.6/css/bootstrap.min.css" integrity="sha384-rwoIResjU2yc3z8GV/NPeZWAv56rSmLldC3R/AZzGRnGxQQKnKkoFVhFQhNUwEyJ" crossorigin="anonymous">

Подключаем JavaScript-сценарии и плагины (обязательно в этом порядке) перед закрывающим тегом body:


<script src="https://code.jquery.com/jquery-3.1.1.slim.min.js" integrity="sha384-A7FZj7v+d/sdmMqp/nOQwliLvUsJfDHW+k9Omg/a/EheAdgtzNs3hpfag6Ed950n" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/tether/1.4.0/js/tether.min.js" integrity="sha384-DztdAPBWPRXSA/3eYEEUWrWCy7G5KFbe8fFjk5JAIxUYHKkDx6Qin1DkWx51bBrb" crossorigin="anonymous"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-alpha.6/js/bootstrap.min.js" integrity="sha384-vBWWzlZJ8ea9aCX4pEW3rVHjgjt7zpkNpZk+02D9phzyeVkE+jo0ieGizqPLForn" crossorigin="anonymous"></script>

Минимальный HTML-шаблон


<!DOCTYPE html>
<html lang="en">
  <head>
    <!-- Required meta tags -->
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">

    <!-- Bootstrap CSS -->
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-alpha.6/css/bootstrap.min.css" integrity="sha384-rwoIResjU2yc3z8GV/NPeZWAv56rSmLldC3R/AZzGRnGxQQKnKkoFVhFQhNUwEyJ" crossorigin="anonymous">
  </head>
  <body>
    <h1>Hello, world!</h1>

    <!-- jQuery first, then Tether, then Bootstrap JS. -->
    <script src="https://code.jquery.com/jquery-3.1.1.slim.min.js" integrity="sha384-A7FZj7v+d/sdmMqp/nOQwliLvUsJfDHW+k9Omg/a/EheAdgtzNs3hpfag6Ed950n" crossorigin="anonymous"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/tether/1.4.0/js/tether.min.js" integrity="sha384-DztdAPBWPRXSA/3eYEEUWrWCy7G5KFbe8fFjk5JAIxUYHKkDx6Qin1DkWx51bBrb" crossorigin="anonymous"></script>
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-alpha.6/js/bootstrap.min.js" integrity="sha384-vBWWzlZJ8ea9aCX4pEW3rVHjgjt7zpkNpZk+02D9phzyeVkE+jo0ieGizqPLForn" crossorigin="anonymous"></script>
  </body>
</html>

Вы можете тестировать страницу под разные устройства прямо в Google Chrome. Выберите Инструменты разработчика. У него есть функция переключения под мобильные устройства, найдите соответствующий значок смартфона. В появившемся экране можно выбрать нужную модель смартфона или планшета, а также переключаться в альбомный режим.

Контейнер

Содержание страницы желательно помещать в специальные контейнеры. Если этого не делать, то текст будет выводиться некрасиво. Данная страница использует Bootstrap и весь текст уже находится в контейнер.

Чтобы поместить текст в контейнер, используется класс container.


<div class="container">
Какой-то текст, который находится в контейнере
</div>
Какой-то текст, который находится в контейнере

Класс container использует отступ 15 пикселей по краям и вы можете увидеть, что текст смещён.

Кроме стандартного контейнера существует ещё резиновый контейнер, за который отвечает класс container-fluid.


<div class="container-fluid">
Текст находится в резиновом контейнере. Чтобы увидеть поведение текста в этом контейнере, попробуйте изменить размеры браузера.
</div>
Текст находится в резиновом контейнере. Чтобы увидеть поведение текста в этом контейнере, попробуйте изменить размеры браузера.

В разных ситуациях используются свои типы контейнеров в зависимости от ваших задач. Стандартный контейнер используется чаще резиновых.

Ряды

В контейнерах контент можно разбить на колонки и ряды. Сейчас поговорим о рядах. Создадим два контейнера. Разобьём второй контейнер на две колонки.

Верхний контейнер

Первая колонка

Какой-то текст в первой колонке. Здесь должно быть много текста.

Вторая колонка

Какой-то текст во второй колонке. Здесь должно быть много текста.

Я специально добавил верхний контейнер, чтобы увидеть проблему. Две колонки внутри второго контейнера имеют свои отступы, которые портят картину. Чтобы исправить ситуацию, достаточно добавить новый div с классом row для используемых колонок.

Верхний контейнер

Первая колонка

Какой-то текст в первой колонке. Здесь должно быть много текста.

Вторая колонка

Какой-то текст во второй колонке. Здесь должно быть много текста.

Теперь колонки по ширине совпадают с верхним контейнером.


<div class="container" style="background-color: yellow">
Верхний контейнер
</div>
<div class="container">
  <div class="row">
    <div class="col-xl-6" style="background-color: blue">
      <h1>Первая колонка</h1>
      <p>Какой-то текст в первой колонке. Здесь должно быть много текста.</p>
    </div>
    
    <div class="col-xl-6" style="background-color: green">
      <h1>Вторая колонка</h1>
      <p>Какой-то текст во второй колонке. Здесь должно быть много текста.</p>
    </div>
  </div>
</div>

Сетка

Flexbox

Цвета

Реклама