Bootstrap 4 что нового — Как создать сайт
В конце лета на официальном сайте Bootstrap, появилась запись о выходе альфа версия Botstrap 4. Рассмотрим какие нововведения подарит нам данный релиз.
- Вместо Less, в Bootstrap 4 теперь поддерживается Sass
- Улучшена система сеток
- Появилась поддержка FlexBox
- Новый компонент в Bootstrap 4 — карточки (cards)
- Появился сброс стилей Reboot
- Больше возможностей для кастомизации тем Bootstrap
- Прекращена поддержка IE8
- Вместо пикселей EM и REM
- Все плагины переписаны с помощью новой версии JavaScript
- Улучшены подсказки и popover элементы
- Обновлена структура документации в Bootstrap 4
Less Sass Bootstrap
Разработка и компиляция модулей Bootstrap 4 теперь осуществляется на Sass, раньше Bootstrap создавался на Less. Компиляция происходит с помощью библиотеки Libsass, которая работает в несколько раз быстрее своих аналогов.
Система сеток Bootstrap
Bootstrap 4 стал еще более дружелюбен к мобильным пользователям (смартфоны, планшеты). Миксины в Bootstrap 4 стали более мобильно-ориентированными. Появилась возможность настраивать и управлять миксинами.
Поддержка FlexBox
В Bootstrap 4 есть возможность включать поддержку FlexBox, благодаря которму можно управлять элементами на странице более гибко. Чтобы включить поддержку FlexBox в Bootstrap, нужно выставить определённые параметры, и скомпилировать фреймворк заново, это делается на официальном сайте.
Компонент карточки (cards)
В Bootstrap 4 были удалены компоненты (wells, thumbnails и panels) вместо них создали компонент cards (карточки), который делает все тоже самое только лучше и удобней.
Сброс HTML Reboot
Появился новый модуль, который сбрасывает стандартные стили HTML-тегов (у каждого браузера свои стили по-умолчанию), предназначенный для кроссбраузерности. Данный модуль теперь хранится в Sass файле и имеет название Reboot
. Все эти стили сброса, собираются в файл normalize.cssБольше возможностей для кастомизации тем
В Bootstrap 4, праметры различных элементов страницы сайта (цвета, градиенты, скругления и т.д.) собраны в отдельные файлы, что облегчает перенастройку темы под свой дизайн.
IE8 не поддерживается
Браузер Internet Explorer восьмой версии, в Bootstrap 4 больше не поддерживается. Это необходимо было сделать для того чтобы иметь возможность использовать все новые технологии из CSS3, без использования дополнительного кода, что несомненно благотворно скажется на быстродействии фреймворка.
Размеры в em и rem
В Bootstrap 4 вместо пикселей теперь используются размеры в em и rem, благодаря этому элементы страницы, шрифты и модули стали более гибкими и адаптивными.
JavaScript ES6
Все существующие плагины Botstrap 4, были переписаны с ES5 (JavaScript 5) на более новую версию JavaScript ES6. Код написанный на ES6 (JavaScript 6)
Подсказки и popover элементы
Подсказки и popover (всплывающие) элементы, в Bootstrap 4 теперь работают более слаженно и ожидаемо.
Документация Bootstrap 4
Документация Bootstrap 4 стала более полной и переписана с помощью Markdown (облегчённый язык разметки), также улучшен поиск по документации.
Поддержка Bootstrap 3
Когда Bootstrap обновлялся со второй (2) версии на третью (3), то поддержка Bootstrap 2 прекратилась. Это вызвало много нареканий со стороны сообщества. На этот раз с выходом Bootstrap 4, третья версия фреймворка будет также поддерживаться и исправляться при обнаружении багов.
Ну и напоследок, код сайтов которые были созданы с помощью Bootstrap 3, будет также хорошо работать при обновлениий до Bootstrap 4, реализуется обратная совместимость.
Остальное
Изменений в Bootstrap 4 произошло много и не мало изменений еще впереди, следите за обновлениями.
Дата публикации поста: 29 января 2016
Дата обновления поста: 29 января 2016
Навигация по записям
Новые возможности в Bootstrap 4 Alpha
От автора: 19 августа на свет божий вышла альфа версия Bootstrap 4, ровно спустя четыре года после первого официального релиза Bootstrap v1 (Совпадение, не правда ли?). Вечно популярный front-end фреймворк обрел законченные черты, и я, как большой поклонник Bootstrap, очень взволнован и жду не дождусь приложить руки к новым возможностям!
Спустя целый год разработки, 1100 коммитов и 12000 строк-правок кода; появилось так много функций, с которыми не терпится поработать. Дабы сэкономить ваше время от прочтения лога изменений, я составил список новых возможностей, которые показались мне интересными.
Новый модуль сброса «Reboot»
Начнем оттуда, откуда начинают все фреймворки, с модуля сброса. Новый модуль reboot построен на традиционном normalize.css, но все общие селекторы и стили сброса переехали в отдельный scss файл. Также вы можете заметить новую фишку, установив стандартный box-sizing: border-box для тега html – это позволит наследовать данное свойство всем дочерним элементам.
Фреймворк Bootstrap 4. Быстрый старт
Изучите основы Bootstrap 4 на практическом примере по верстке блога с нуля
Узнать подробнееhtml { box-sizing: border-box; } *, *:before, *:after { box-sizing: inherit; }
html { box-sizing: border-box; } *, *:before, *:after { box-sizing: inherit; } |
Такой подход позволяет лучше переопределять параметры, если это потребуется, а не использовать !important.
За трюк спасибо сказать можно Jon Neal, а за подробный разбор данного метода сайту CSS-Tricks.
Rem и Em рулят!
В угоду оптимизации Bootstrap v4 лишился поддержки IE8 и массы CSS3 полифиллов. Начиная с IE9+, теперь он поддерживает другие, более любимые всеми CSS модули. Одним из них стали rem единицы (root em), они вычисляют размер шрифта относительно корневого элемента (html).
Rem единицы помогут нам по-настоящему вникнуть в адаптивную типографику. Так как все размеры шрифта напрямую зависят от нашего корневого элемента, мы можем создавать медиа запросы для изменения размера шрифта под разные размеры экрана. Скомбинируем это с новым миксином сетки для разных размеров экрана и вуаля! Ниже пример изменения размера шрифта на нашем сайте при просмотре на очень маленьких экранах:
html{ font-size:16px; } // создаем медиа запрос для крайне малых размеров экрана (0 — 34em) @include media-breakpoint-up(xs) { html{ font-size:18px; } }
html{ font-size:16px; } // создаем медиа запрос для крайне малых размеров экрана (0 — 34em) @include media-breakpoint-up(xs) { html{ font-size:18px; } } |
Подробнее можете прочитать в статье Kezz Bracey Подробное руководство: Когда использовать Em, а когда Rem.
Я выбираю Flexbox
Прямо из коробки Bootstrap v4 не поддерживает Flexbox, вместо него использует стандартные обтекания или табличный метод отображения. Это сделано для поддержки IE9+, но если вы можете отказаться и поддерживать только IE10+, то можно подключить Flexbox к вашему проекту. Сделать это можно, изменив булево значение переменной в файле _variables.scss; после чего ваш скомпилированный css будет содержать Flexbox стили. Flexbox применяется не только из-за сетки, а также из-за других элементов, в том числе нового компонента карточек, групп ввода и медиа компонентов.
Пример
Перейдем к примеру, где нам может пригодиться Flexbox. Крайне часто у меня имеется набор линейных колонок (как на картинке), где контент одной колонки увеличивает высоту и остальных колонок тоже. Классическая CSS дилемма. Одно из преимуществ Flexbox в том, что мы можем заставить все колонки иметь одинаковую высоту. Не нужно писать дополнительный CSS код!
Без Flexbox
С Flexbox
SCSS «узурпировал» LESS, так же, как и препроцессор CSS был выбран в Bootstrap v4. Весь код CSS был переработан в SCSS, причем без официального LESS порта на момент написания статьи. Некоторые причины этого Марк объясняет в твиттере.
Если вы большой поклонник оригинального LESS, то Марк просил о некоторой помощи в создании и обслуживании LESS порта.
Карточки, унифицированный элемент интерфейса
Из Bootstrap v4 были удалены классические компоненты well, panel и thumbnail. На их место пришел новый компонент: карточки!
Новый элемент карточка имеет схожие части от панелей, такие как заголовки, хедеры и футеры, и все это обернуто в гибкий контейнер.
И еще больше:
Наложения поверх изображений и фон
Можно установить в качестве фона картинку и наложить ее поверх текста или другого контента. Все это делается без единой лишней строки CSS, нужно только добавить в карточку:
<img data-src=»image.jpg» alt=»Card image»>
<img data-src=»image.jpg» alt=»Card image»> |
Класс card-inverse делает текст белым, позволяя задать более темный фон, если это требуется. Насчет фонов, также можно использовать и стандартные фоновые цвета. К примеру, card-primary установит первичный цвет для карточки и т.д. и т.п.
Группированные карточки
Фреймворк Bootstrap 4. Быстрый старт
Изучите основы Bootstrap 4 на практическом примере по верстке блога с нуля
Узнать подробнееТакже помимо стандартной сетки с отступами, вы найдете опцию группирования карточек без внутренних отступов между ними и как установить блокам одну высоту. По умолчанию это можно сделать с помощью display: table и table-layout: fixed, но если у вас есть Flexbox, то можно и с помощью display: flex.
Сетка – кирпичная кладка
Карточки идут в виде колонок кирпичиков, что позволяет пододвинуть блоки ближе друг к другу. Эта опция не поддерживается в IE9 – необходим IE10 и выше!
Еще больше служебных классов?!
В предыдущих версиях Bootstrap было много классов с названием «служебный класс», они использовались для быстрого и легкого изменения контента, не трогая его специфические стили. Изменения, как правило, ограничивались обтеканиями (pull-left, pull-right), цветом (text-primary и т.д.), клиарфиксами (.clearfix) и другими.
В альфе Bootstrap v4 мы получили доступ к целой массе новых служебных классов, связанных с паддингами и маргинами. Возможно, это и спорный шаг, он позволит пользователям Bootstrap v4 быстро нажать на одну кнопку и выровнять контент внутри с одинаковым шагом. Некоторые подумают, что это отход от встроенных стилей, но эти классы позволяют быстро и равномерно стилизовать компоненты, не создавая для этого отдельного селектора.
Служебные классы padding и margin задаются с множественным значением переменной spacer. Например:
// $spacer — sass переменная, равная 1rem или 16px .m-a-0 { margin: 0 !important; } .m-a { margin: $spacer !important; } .m-a-md { margin: ($spacer * 1.5) !important; } .m-a-lg { margin: ($spacer * 3) !important; }
// $spacer — sass переменная, равная 1rem или 16px .m-a-0 { margin: 0 !important; } .m-a { margin: $spacer !important; } .m-a-md { margin: ($spacer * 1.5) !important; } .m-a-lg { margin: ($spacer * 3) !important; } |
В коде .m-a значит внешний отступ по всем сторонам. Для внутренних отступов также существуют классы для отдельных сторон, осей, размеров (с помощью -0, -md и -lg). Ниже пример парочки других классов:
// стандартный паддинг на все стороны .p-a { padding: $spacer !important; } // стандартный паддинг сверху .p-t { padding-top: $spacer-y !important; } // стандартный паддинг справа .p-r { padding-right: $spacer-x !important; } // стандартный паддинг снизу .p-b { padding-bottom: $spacer-y !important; } // стандартный паддинг слева .p-l { padding-left: $spacer-x !important; } // стандартный паддинг для оси Х (лево и право) .p-x { padding-right: $spacer-x !important; padding-left: $spacer-x !important; } // стандартный паддинг для оси У (верх и низ) .p-y { padding-top: $spacer-y !important; padding-bottom: $spacer-y !important; }
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | // стандартный паддинг на все стороны .p-a { padding: $spacer !important; } // стандартный паддинг сверху .p-t { padding-top: $spacer-y !important; } // стандартный паддинг справа .p-r { padding-right: $spacer-x !important; } // стандартный паддинг снизу .p-b { padding-bottom: $spacer-y !important; } // стандартный паддинг слева .p-l { padding-left: $spacer-x !important; } // стандартный паддинг для оси Х (лево и право) .p-x { padding-right: $spacer-x !important; padding-left: $spacer-x !important; } // стандартный паддинг для оси У (верх и низ) .p-y { padding-top: $spacer-y !important; padding-bottom: $spacer-y !important; } |
Основная идея заключается в снижении количества узкоспециализированных пользовательских классов, которые создаются для того, чтобы подвинуть контент, а не добавлять их в качестве методов по выравниванию содержимого.
Я перекинулся парой слов с Марком Отто по поводу использования этих классов (@mdo сооснователь Bootstrap) на их сайте public Slack channel, и вот что он сказал:
«Мы поняли, что нам без них не обойтись, слишком часто переопределяются значения по умолчанию для многих компонентов. Margin и padding кажется наиболее часто меняют свое значение (вместе с цветом и шрифтов)»
Также достойно упоминания
Существуют буквально еще сотни новых возможностей и обновлений существующего кода, слишком много для одного поста. Расскажу про еще парочку, которые не вошли в основной список, но о них стоит упомянуть.
Новая документация
Документация Bootstrap v4 обновилась. Немного изменилась структура, по которой функции разбивались на макеты, контент и компоненты. Что действительно круто в новой документации, так это то, что каждый компонент теперь на отдельной странице. Это облегчает их поиск, а также можно сразу проверить адаптивность, поигравшись с размером окна браузера.
Новый уровень сетки
В Bootstrap 4 добавлен новый уровень сетки для маленьких экранов (480px в ширину), этот размер экрана получил имя класса предыдущего самого маленького экрана (.col-xs-XX). При этом все уровни сетки сдвинулись на один вверх, тем самым создавая новый самый большой уровень .col-xl-XX.
Как обсуждалось выше в статье про rem и em, команда Bootstrap добавила новые миксины для быстрого создания новых размеров экрана среди существующих. Для создания используется следующий синтаксис:
// Creates a media query: @media (min-width) @include media-breakpoint-up(xs) { … } @include media-breakpoint-up(sm) { … } @include media-breakpoint-up(md) { … } @include media-breakpoint-up(lg) { … } @include media-breakpoint-up(xl) { … } // Creates a media query: @media (max-width) @include media-breakpoint-down(xs) { … } @include media-breakpoint-down(sm) { … } @include media-breakpoint-down(md) { … } @include media-breakpoint-down(lg) { … } @include media-breakpoint-down(xl) { … }
// Creates a media query: @media (min-width) @include media-breakpoint-up(xs) { … } @include media-breakpoint-up(sm) { … } @include media-breakpoint-up(md) { … } @include media-breakpoint-up(lg) { … } @include media-breakpoint-up(xl) { … } // Creates a media query: @media (max-width) @include media-breakpoint-down(xs) { … } @include media-breakpoint-down(sm) { … } @include media-breakpoint-down(md) { … } @include media-breakpoint-down(lg) { … } @include media-breakpoint-down(xl) { … } |
Больше никаких иконок
Иконки были удалены из билда; в документацию Bootstrap добавили инструкции, как подключить сторонние пакеты иконок, как Font Awesome и Octicons.
JavaScript переписан
Все плагины JavaScript были переписаны в ES6 под последнюю спецификацию. Вы могли заметить, что некоторые плагины удалены (как affix плагин), они все еще переписываются, к ним добавляются новые библиотеки.
И что дальше?
Вот такой у меня получился список новых крутых функций в Bootstrap альфе. Если захотите полностью изучить лог изменений, взгляните на ГитХаб @mdo pull request.
Уверен, еще будет куча изменений, они до сих пор делаются, команда работает на износ. Планы развития включают следующие этапы:
Еще парочка альфа релизов для решения вопросов, поднятых сообществом
Два бета релиза по завершении всех функций
Два релиз-кандидата, чтобы убедиться, что все отточено.
Не сказано, когда все это будет выпущено. Так же как и с предыдущими билдами, все выйдет, когда будет готова библиотека. А сейчас можете поизучать Bootstrap и помочь отследить проблемы, о багах можно писать на bug tracker!
Автор: Aaron Vanston
Источник: http://webdesign.tutsplus.com/
Редакция: Команда webformyself.
Фреймворк Bootstrap 4. Быстрый старт
Изучите основы Bootstrap 4 на практическом примере по верстке блога с нуля
Узнать подробнееPSD to HTML
Практика верстки сайта на CSS Grid с нуля
СмотретьПереход на v4 · Bootstrap на русском
Bootstrap 4 является основным переписать почти весь проект. Наиболее заметные изменения суммируются непосредственно ниже, затем более конкретных классов и поведенческие изменения соответствующих компонентов.
Внимание! это будет в поток, работа на v4 Альфа прогрессирует. До тех пор считать ее неполной, и мы бы с удовольствием запросы, чтобы помочь держать его в курсе.
Резюме
Вот несколько больших билет пунктов вы хотите быть в курсе при переходе от v3 на v4.
Поддержка браузеров
- Прекращена поддержка IE8 и iOS 6. 4-ой версией, сейчас только в IE9+ и iOS 7+. Для сайтов, использующие не поддерживаемые, используйте v3.
- Добавлена официальная поддержка Android версии V5.0 «Lollipop» браузера и WebView. Предыдущие версии браузера для Android и WebView остаются только в неофициальной поддержке.
Глобальные изменения
- Перешли от Less для Sass для нашего источника CSS файлов.
- Перешли с
px
дляrem
в качестве основной CSS блока, хотя и пикселей используются до сих пор для медиа запросы и грид поведение как видовых экранов не влияет на размер типа. - Глобальный размер шрифта увеличен с
14px
для16px
. - Добавлен новый грид за ~
480px
и ниже уровня. - Заменил отдельная Дополнительная тема с настраиваемыми опциями через SCSS переменных (например,
$enable-gradients: true
).
Блочная система
- Добавлена поддержка flexbox (набор
$enable-flex: true
и перекомпилировать) в грид примесей и предопределенных классов. - Как часть flexbox, включена поддержка вертикального и горизонтального выравнивания классы.
- Капитальный ремонт грид примеси сливать
make-col-span
вmake-col
Для сингулярных mixin. - Добавлен новый
sm
грид уровень ниже768px
Для более детального контроля. Сейчас у насxs
,sm
,md
,lg
, иxl
. Это также означает, что каждый ярус был увеличен на один уровень вверх (так.col-md-6
в v3 сейчас.col-lg-6
в v4). - Изменения блочная система медиа точки останова запросов и ширину контейнера с учетом новых грид уровень и обеспечить столбцы кратно
12
на максимум Ширина. - Грид контрольных точек и ширину контейнера обрабатываются через Sass карты (
$grid-breakpoints
и$container-max-widths
), а не кучки отдельных переменных. Эти заменить@screen-*
переменные и позволит вам полностью настроить грид уровня. - Медиа запросов изменились. Вместо того, чтобы повторять наши медиа заявлений запросов с тем же значением каждый раз, теперь у нас есть
@include media-breakpoint-up/down/only
. Теперь, вместо того, чтобы писать@media (min-width: @screen-sm-min) { ... }
, Вы можете написать@include media-breakpoint-up(sm) { ... }
.
Компоненты
- За панно, эскизы и скважин для всеохватывающей новый компонент, карты.
- Сбросил технологии glyphicons иконка. Если вам нужны значки, некоторые варианты:
- За Аффикс плагин jQuery. Мы рекомендуем использовать
position: sticky
полифилл вместо. Смотрите на HTML5, пожалуйста, запись для подробной информации и конкретных рекомендаций полифилл.- Если вы были с помощью Аффикса применять дополнительные, не-
position
стили, на полифиллы может не поддерживать ваш случай использования. Одним из вариантов такого использования является сторонним ScrollPos-Стайлер библиотеки.
- Если вы были с помощью Аффикса применять дополнительные, не-
- Уронил пейджер компонент, как это было по сути немного подгонять кнопки.
- Переработаны почти все компоненты, чтобы использовать более ООН-вложенные классы вместо детей селекторов.
Разное
- Неaдаптивный использования Bootstrap больше не поддерживается.
- За онлайн настройщик в пользу более подробную документацию по установке и заказной сборки.
По компонентам
Этот список основных изменений по компонентам между v3.х.х и v4.0.0.
Перезагрузка
Новичок в Bootstrap 4 это перезагрузки, новую таблицу стилей, которая основывается на нормализации с нашей собственной несколько самоуверенных типов сброса. Селекторы появляться в этом файле, использовать только элементы—здесь нет классов. Это изолирует наши стили сбросить с наших компонентов стили для более модульный подход. Некоторые из наиболее важных сбрасывает это включает в себя такие box-sizing: border-box
переход от em
до rem
единицы на многие элементы, стили ссылок, и многие формы элемента сбрасывает.
Типографика
- Перенесли все
.text-
утилиты к_utilities.scss
файл. - За
.page-header
как, в сторону от границы, все стили могут быть применены через утилиты. .dl-horizontal
уронили. Вместо этого, используйте.row
на<dl>
и использовать грид классов столбца (или примеси) на<dt>
и<dd>
дети.- Пользовательские
<blockquote>
стиль переместился в классы—.blockquote
и.blockquote-reverse
модификатор. .list-inline
теперь требует, чтобы ее в список детей предметы имеют новые.list-inline-item
класс применяется к ним.
Изображения
- Переименован
.img-responsive
для.img-fluid
.
Таблицы
- Почти Все экземпляры
>
селектора были удалены, означая, вложенной таблицы теперь автоматически наследуют стили от родителей. Это значительно упрощает наши селекторы и возможных настроек. - Адаптивный таблицы больше не требуется оборачивать элемент. Вместо этого, просто положить
.table-responsive
на<table>
. - Переименован
.table-condensed
для.table-sm
Для последовательности. - Добавлен новый
.table-inverse
опция. - Добавлен новый
.table-reflow
опция. - Добавлено таблица Заголовок модификаторы:
.thead-default
и.thead-inverse
. - Переименован контекстная классы для
.table-
-префикс. Отсюда.active
,.success
,.warning
,.danger
и.table-info
для.table-active
,.table-success
,.table-warning
,.table-danger
и.table-info
.
Формы
- Переехал сбрасывает элемент
_reboot.scss
файла. - Переименован
.control-label
для.form-control-label
. - Переименован
.input-lg
и.input-sm
для.form-control-lg
и.form-control-sm
, соответственно. - За
.form-group-*
занятия для простоты. Использовать вместо.form-control-*
классы теперь. - За
.help-block
и заменил его.form-text
на уровне блоков текста справки. Для встроенной справке и другие гибкие возможности, использовать служебные классы как.text-muted
. - Капитальный ремонт горизонтальных форм:
- Уронил
.form-horizontal
класс требование. .form-group
не применяет стили из.row
через mixin, Так что.row
теперь требуется для горизонтального грид разметки (например,<div>
).- Добавлен новый
.form-control-label
класс вертикально по центру этикетки с.form-control
.
- Уронил
Кнопки
- Переименован
.btn-default
для.btn-secondary
. - Уронил
.btn-xs
только как.btn-sm
пропорционально гораздо меньше, чем v3. - На кнопка состояния функция из
button.js
jQuery плагин был удален. Это включает в себя$().button(string)
и 3 методы. Мы рекомендуем использовать немного нестандартная JavaScript вместо, которые будут вести себя именно так, как вы хотите.- Обратите внимание, что другие возможности плагина (кнопка чекбоксы, кнопки радио, один-переключение кнопок) были сохранены в v4.
Кнопка группы
- Удалены классы
.btn-group-xs
и.btn-xs
.
Раскрывающиеся списки
- Перешли от родительских селекторов для особых классов для всех компонентов, модификаторов и т. д.
- Упрощенный выпадающий список стилей, чтобы больше ни один корабль вверх или вниз перед стрелками добавленные в выпадающем меню.
- Раскрывающиеся списки могут быть построены с
<div>
или<ul>
теперь. - Перестроен в выпадающем списке стили и разметку, чтобы обеспечить простой, встроенная поддержка
<a>
и<button>
на основе выпадающих пунктов. - Переименован
.divider
для.dropdown-divider
. - Выпадающих предметов теперь требуют
.dropdown-item
. - Выпадающий переключает не требуют явного
<span></span>
; это теперь автоматически через CSS’ы::after
на.dropdown-toggle
.
Блочная система
- Добавлен новый
~480px
грид точки останова, то есть сейчас всего пять ярусов. - Переименована в aдаптивный грид классов модификатор от
.col-{breakpoint}-{modifier}-{size}
для.{modifier}-{breakpoint}-{size}
Для проще грид классов. Например, вместо.col-md-3.col-md-push-9
этоcol-md-3.push-md-9
. - Капитальный ремонт грид примеси сливать
make-col
иmake-col-span
В одногоmake-col
mixin, тем самым обеспечивая миксины и предопределенных классов использовать один и тот же поплавок/гибкий поведения. - Добавлено flexbox вспомогательные классы для блочная система и компонентов.
Список групп
- Заменить
a.list-group-item
с явной класс,.list-group-item-action
, для укладки ссылку и кнопку версии список элементов группы.
Модальное окно
remote
вариант (которое может быть использовано для автоматической загрузки и ввести внешнее содержание в модальное окно) и соответствующийloaded.bs.modal
мероприятия были удалены. Вместо этого мы рекомендуем использовать шаблоны на стороне клиента или привязки данных фреймворк, или вызов на jQuery.загрузить себя.
- За почти все
>
селекторы для упрощения укладки через классы невложенным. - Вместо HTML-конкретные селекторами
.nav > li > a
, то использовать отдельные классы для.nav
.nav-item
и.nav-link
. Это делает HTML-код более гибким и вместе с повышенной растяжимости.
Навигации
- Отказались от использования класса
.navbar-form
. В этом больше нет необходимости.
- Явные классы (
.page-item
,.page-link
) требуются потомки.pagination
- Удален
.pager
компонент целиком, как это было чуть более настроенный контур кнопки.
Хлебные крошки
- Явный класс,
.breadcrumb-item
, требуется теперь на потомков.breadcrumb
Этикетки, эмблемы, и теги
- Переименован
.label
для.tag
для разрешения неоднозначности из<label>
элемент. - Уронил
.badge
— компонентом, так как он был почти идентичен метки/теги. Используйте.tag-pill
модификатор вместе с компонентом Label, а не для того закругленными углами. - Теги больше не всплывала автоматически в список групп и других компонентов. Служебные классы являются теперь требуется для этого.
Панели, эскизы и скважин
Полностью за новый компонент карты.
Панели
.panel
для.card
.panel-default
сняли, а замены нет.panel-group
сняли, а замены нет..card-group
не замена, это другое..panel-heading
для.card-header
.panel-title
для.card-header
. В зависимости от желаемого вида, Вы также можете использовать Заголовок элементы или классы (например,<h4>
,.h4
) или ярких элементов или классов (например,<strong>
,<b>
,.font-weight-bold
). Обратите внимание, что.card-title
, в то время как аналогичным названием, производит другой вид, чем.panel-title
..panel-body
для.card-block
.panel-footer
для.card-footer
.panel-primary
для.card-primary
и.card-inverse
(или.bg-primary
на.card-header
).panel-success
для.card-success
и.card-inverse
(или.bg-success
на.card-header
).panel-info
для.card-info
и.card-inverse
(или.bg-info
на.card-header
).panel-warning
для.card-warning
и.card-inverse
(или.bg-warning
на.card-header
).panel-danger
для.card-danger
и.card-inverse
(или.bg-danger
на.card-header
)
Карусель
- Переименован
.item
для.carousel-item
.
Утилиты
- Добавлено
.pull-{xs,sm,md,lg,xl}-{left,right,none}
классы для aдаптивный поплавки и удален.pull-left
и.pull-right
, поскольку они избыточны для.pull-xs-left
и.pull-xs-right
. - Добавлено aдаптивный изменения к нашей теме занятия выравнивание
.text-{xs,sm,md,lg,xl}-{left,center,right}
и удалены избыточные.text-{left,center,right}
утилиты как жеxs
вариант. - За
.center-block
нового.m-x-auto
класс.
Префикс поставщика миксины
Bootstrap 3 по префикс поставщика миксины, которые были упразднены в V3.2.0, были удалены в Bootstrap 4. Так как мы используем Autoprefixer, они больше не нужны.
Удалены следующие примеси: animation
, animation-delay
, animation-direction
, animation-duration
, animation-fill-mode
, animation-iteration-count
, animation-name
, animation-timing-function
, backface-visibility
, box-sizing
, content-columns
, hyphens
, opacity
, perspective
, perspective-origin
, rotate
, rotateX
, rotateY
, scale
, scaleX
, scaleY
, skew
, transform-origin
, transition-delay
, transition-duration
, transition-property
, transition-timing-function
, transition-transform
, translate
, translate3d
, user-select
Документация
Наши документы получили обновление ПО, а также. Вот низким вниз:
- Мы все еще используете Jekyll, но у нас есть пользовательские плагины в смеси:
example.rb
вилка по умолчаниюhighlight.rb
плагин, что облегчает пример кода обработки.callout.rb
аналогичная вилка, но предназначен для наши специальные документы выноски.
- Все содержание документов была переписана в markdown (вместо HTML) для удобного редактирования.
- Страницы были реорганизованы по проще и более доступным иерархии.
- Мы переехали из регулярной CSS до SCSS чтобы воспользоваться всеми преимуществами Bootstrap переменные, миксины, и даже больше.
Что нового
Мы добавили новые компоненты и изменены некоторые существующие. Здесь представлены новые и обновленные стили.
Компонент | Описание |
---|---|
Cards | Новый, более гибкий компонент для замены панелей v3, эскизы и скважин. |
New navbar | Заменяет предыдущую navbar с новой, проще компонента. |
New progress bars | Заменяет старый .progress <div> Настоящий <progress> элемент. |
New table variants | Добавляет .table-inverse , таблица вариантов головы, заменяет .table-condensed с .table-sm и .table-reflow . |
New utility classes |
ТОДО: новые классы ревизии, которых не было в v3
Что удалено
Следующие компоненты были удалены в v4.0.0.
Компонент | Удалены от 3.х.х | 4.0.0 эквивалент |
---|---|---|
Panels | Cards | |
Thumbnails | Cards | |
Wells | Cards | |
Justified navs |
ТОДО: курсы аудита в V3, что нет в v4
Адаптивные утилиты
Все @screen-
переменные были убраны в v4.0.0. Используйте media-breakpoint-up()
, media-breakpoint-down()
или media-breakpoint-only()
Sass примесей или $grid-breakpoints
Sass карты вместо.
В aдаптивный служебные классы также были капитально отремонтированы.
.hidden
и.show
классы были удалены, потому что они противоречат в jQuery$(...).hide()
и$(...).show()
— методам. Вместо этого, попробуйте изменить атрибут[hidden]
, использование встроенных стилей какstyle="display: none;"
иstyle="display: block;"
или переключать.invisible
класс.- Старые классы (
.hidden-xs
.hidden-sm
.hidden-md
.hidden-lg
.visible-xs-block
.visible-xs-inline
.visible-xs-inline-block
.visible-sm-block
.visible-sm-inline
.visible-sm-inline-block
.visible-md-block
.visible-md-inline
.visible-md-inline-block
.visible-lg-block
.visible-lg-inline
.visible-lg-inline-block
) ушли. - Они были заменены
.hidden-xs-up
.hidden-xs-down
.hidden-sm-up
.hidden-sm-down
.hidden-md-up
.hidden-md-down
.hidden-lg-up
.hidden-lg-down
. .hidden-*-up
классы скрыть элемент, когда область просмотра на данном останова или больше (например,.hidden-md-up
скрывает элемент на средних, больших и очень больших устройств)..hidden-*-down
классы скрыть элемент, когда область просмотра на данном останова или меньше (например,.hidden-md-down
скрывает элемент на очень малых, малых и средних устройств).
А не с помощью явных .visible-*
классы, сделать элемент видимым, просто не скрываю на этом размер экрана. Вы можете объединить один .hidden-*-up
класс один .hidden-*-down
класс, чтобы показать элемент только на заданном интервале размеров экрана (например, .hidden-sm-down.hidden-xl-up
показан элемент только на средних и больших устройств).
Обратите внимание, что изменения в грид точки останова в v4 означает, что вам потребуется перейти одну точку останова больше, чтобы достичь тех же результатов (например, .hidden-md
больше похож на .hidden-lg-down
чем .hidden-md-down
). Новый aдаптивный служебные классы не пытайтесь вместить в менее распространенных случаях, когда видимость элемента не может быть выражено как один непрерывный диапазон размеров области просмотра; вместо этого, вы должны использовать пользовательские CSS в таких случаях.
Разные заметки приоритеты
- Сняли
min--moz-device-pixel-ratio
опечатка Hack для сетчатки медиа запросы - Изменение кнопки’
[disabled]
для:disabled
как в IE9+ поддержка:disabled
. Однакоfieldset[disabled]
еще необходимо потому, что родной fieldsets отключенным багги в ie11.
ТОДО: перечень вещей в V3, который был помечен как устаревший
Дополнительные примечания
- Удалена поддержка в стиле вложенной таблицы (На данный момент)
Обзор. Разметка · Bootstrap. Версия v4.2.1
Компоненты и опции для создания вашего проекта Bootstrap, включая контейнеры для упаковки, мощную сетчатую систему, гибкий медиа-объект и отзывчивые служебные классы.
Контейнеры
Это базовый элемент в Bootstrap и они необходимы при использовании нашей стандартной сеточной системы. Выбирайте отзывчивый, с фиксированной шириной (что значит, что его max-width
изменяется на каждом брейкпойнте) или контейнер с плавающей шириной (width ==100%
всегда).
Контейнеры могут иметь вложенные элементы, но в большинстве случаев можно обойтись без них.
<div>
<!-- Content here -->
</div>
Используйте .container-fluid
для создания контейнера полной ширины, занимающий 100% зоны просмотра.
<div>
...
</div>
Отзывчивые брейкпойнты
Поскольку Bootstrap разработан как mobile-first, тут используются медиа-запросы @media для создания брейкпойнтов контента и интерфейсов. Эти брейкпойнты в основном сделаны на минимальных широтах зоны просмотра и позволяют масштабировать элементы по мере изменения размера зоны просмотра.
В исходниках Sass Bootstrap главным образом записаны следующие ранги @media (брейкпойнты) для разметки, сеточной системы и компонентов.
// Экстрамалые девайсы («телефоны»,
// Малые девайсы («ландшафтные телефоны», >= 576px)
@media (min-width: 576px) { ... }
// Средние девайсы («таблетки», >= 768px)
@media (min-width: 768px) { ... }
// Большие девайсы (десктопы, >= 992px)
@media (min-width: 992px) { ... }
// Экстрабольшие девайсы (большие десктопы, >= 1200px)
@media (min-width: 1200px) { ... }
Так как все эти параметры записаны в исходниках как Sass, все @media доступны через миксины:
// Не сущетвет медиа-запрос для брекпоинта xs, поскольку это фактически `@media (min-width: 0) { ... }`
@include media-breakpoint-up(sm) { ... }
@include media-breakpoint-up(md) { ... }
@include media-breakpoint-up(lg) { ... }
@include media-breakpoint-up(xl) { ... }
//
Пример: Скрыто начало с `min-width: 0`, а затем отображается на брекпоинте `sm`
.custom-class {
display: none;
}
@include media-breakpoint-up(sm) {
.custom-class {
display: block;
}
}
По случаю можно использовать и другие размеры (max-width: 575px == «данный размер или меньше»):
// Экстрамалые девайсы («телефоны», @media (max-width: 575.98px) { ... }
// Малые девайсы («ландшафтные», @media (max-width: 767.98px) { ... }
// Средние девайсы («таблетки», @media (max-width: 991.98px) { ... }
// Большие девайсы (большие десктопы, @media (max-width: 1199.98px) { ... }
// Экстрабольшие девайсы (большие десктопы)
// Тут нет @media, т.к. такие брейпкойнты не имеют верхней границы по ширине width
Обратите внимание, что поскольку браузеры в настоящее время не поддерживают запросы диапазона, мы используем ограничения min-
и max-
prefixes префиксов и видовых экранов с дробной шириной (что может произойти при определенных условиях на устройствах с высоким разрешением на дюйм, например), используя значения с более высоким точность для этих сравнений.
Опять же, эти @media доступны через Sass миксины:
@include media-breakpoint-down(xs) { ... }
@include media-breakpoint-down(sm) { ... }
@include media-breakpoint-down(md) { ... }
@include media-breakpoint-down(lg) { ... }
// Нет медиа-запроса, необходимого для брекпоинта xl, поскольку он не имеет верхней границы по ширине
// Пример: стиль из среднего брекпоинта и вниз
@include media-breakpoint-down(md) {
.custom-class {
display: block;
}
}
Также в наличии @media и миксины размеров экрана, использующие минимальные и максимальные ширины брейкпойнтов.
// Экстрамалые девайсы («портретные телефоны», @media (max-width: 575.98px) { ... }
// Малые девайсы («ландшафтные», >= 575px)
@media (min-width: 576px) and (max-width: 767.98px) { ... }
// Средние девайсы («таблетки», >= 768px)
@media (min-width: 768px) and (max-width: 991.98px) { ... }
// Большие девайсы (большие десктопы, >= 992px)
@media (min-width: 992px) and (max-width: 1199.98px) { ... }
// Большие девайсы (большие десктопы, >= 1200px)
@media (min-width: 1200px) { ... }
Эти @media также доступны из миксинов Sass:
@include media-breakpoint-only(xs) { ... }
@include media-breakpoint-only(sm) { ... }
@include media-breakpoint-only(md) { ... }
@include media-breakpoint-only(lg) { ... }
@include media-breakpoint-only(xl) { ... }
Также, @media могут занимать несколько значений ширин брейкпойнта:
// Пример
// Здесь стили применятся от средних девайсов до XL-девайсов
@media (min-width: 768px) and (max-width: 1199.98px) { ... }
Миксины Sass для захвата таких же параметров (выше) выглядели бы так:
@include media-breakpoint-between(md, xl) { ... }
Z-индекс
Несколько компонентов Bootstrap используют данный индекс z-index
, т.е. свойство CSS, которое помогает контролировать расположение контента с помощью третьей оси. В Bootstrap используется «стандартный» Z-индекс, спроектированный для правильного расположения навигации, всплывающих подсказок, всплывающих окон и т.н. “modals” (pop-up окно наверху страницы).
Эти высшие значения могут начинаться с любого числа, в идеале достаточно большого и специфичного, чтобы избежать конфликтов. Нам нужен стандартный набор этих чисел для использования с нашими компонентами: всплывающими подсказками, окнами, навбарами, выпадающими элементами, модальными элементами — так, чтобы мы могли бы разумно стандардартизировать их поведение. Не существует ограничений — используйте хоть 100
, хоть 500
и более.
Мы не советуем настраивать эти значения самому, т.к. если потребуется изменить одно, придется менять все.
$zindex-dropdown: 1000 !default;
$zindex-sticky: 1020 !default;
$zindex-fixed: 1030 !default;
$zindex-modal-backdrop: 1040 !default;
$zindex-modal: 1050 !default;
$zindex-popover: 1060 !default;
$zindex-tooltip: 1070 !default;
Для того, чтобы эффективно обращаться с перекрывающимися границами внутри компонентов (например, кнопки и формы ввода в группах форм ввода), мы используем по умолчанию значения z-index 1,2,3
, а также hover и «активные состояния». В hover/focus/active мы подводим частный элемент к «переднему краю» использованием более высокого z-индекса
, для показа его границы над вложенными элементами.
Изображения. Содержание · Bootstrap. Версия v4.0.0
Документация и примеры приведения изображений к отзывчивому поведению (так, чтобы их размер не выходил за рамки родительского элемента) и добавления к ним «легковесных» стилей – всё посредством классов.
Отзывчивые изображения
Изображения в Bootstrap делаются «отзывчивыми» с помощью .img-fluid
. max-width: 100%;
и height: auto;
применяемых к изображению, которое т.о. масштабируется по родительскому элементу.
<img src="..." alt="Responsive image">
Изображения SVG и IE10
В IE10 SVG-изображения с классом .img-fluid
выглядят диспропорционально. Для решения этой проблемы добавьте width: 100% \9;
где необходимо. Это решение затрагивает и размеры изображений других форматов, поэтому Bootstrap не применяет его автоматически.
Мини-версии изображения
В дополнение к нашим утилитам бордер-радиуса вы можете использовать класс .img-thumbnail
для придания изображению границы 1px.
<img src="..." alt="...">
Выравнивание изображений
Выравнивайте изображения вспомогательными классами выравнивания по стороне или классами выравнивания текста. Блочные изображения block
можно центрировать использованием класса утилиты «марджина» the .mx-auto
.
<img src="..." alt="...">
<img src="..." alt="...">
<img src="..." alt="...">
<div>
<img src="..." alt="...">
</div>
Картинка
Если вы используете элемент <picture>
для привязки множественных элементов <source>
к определенному <img>
, добавьте классы .img-*
в <img>
, а не в <picture>
.
<picture>
<source srcset="..." type="image/svg+xml">
<img src="..." alt="...">
</picture>