Мигриране към v5
Проследявайте и преглеждайте промените в изходните файлове, документацията и компонентите на Bootstrap, за да ви помогне да мигрирате от v4 към v5.
Зависимости
- Изпуснат jQuery.
- Надстроен от Popper v1.x до Popper v2.x.
- Заменен Libsass с Dart Sass, тъй като нашият Sass компилатор, даден Libsass, беше отхвърлен.
- Мигрирахме от Jekyll към Hugo за изграждане на нашата документация
Поддръжка на браузър
- Отпаднаха Internet Explorer 10 и 11
- Изпуснат Microsoft Edge < 16 (Legacy Edge)
- Отпадна Firefox < 60
- Изпуснато Safari < 12
- Отпадна iOS Safari < 12
- Изпуснат Chrome < 60
Промени в документацията
- Преработена начална страница, оформление на документи и долен колонтитул.
- Добавено е ново ръководство за парцели .
- Добавена е нова секция Персонализиране , заменяща страницата Тема на v4 с нови подробности за Sass, глобални опции за конфигурация, цветови схеми, CSS променливи и др.
- Реорганизира цялата документация на формуляра в нов раздел Формуляри , разделяйки съдържанието на по-фокусирани страници.
- По подобен начин актуализирахме раздела Офор��ление , за да очертаем по-ясно съдържанието на мрежата.
- Страницата на компонента „Navs“ е преименувана на „Navs & Tabs“.
- Страницата „Чекове“ е преименувана на „Чекове и радиостанции“.
- Преработихме лентата за навигация и добавихме нова поднавигация, за да улесним придвижването из нашите версии на сайтове и документи.
- Добавена е нова клавишна комбинация за полето за търсене: Ctrl + /.
дързък
-
Изхвърлихме стандартните сливания на карти Sass, за да улесним премахването на излишни стойности. Имайте предвид, че сега трябва да дефинирате всички стойности в картите на Sass като
$theme-colors
. Вижте как да се справите с картите на Sass . -
РазбиванеПреименува
color-yiq()
функцията и свързаните променливи,color-contrast()
тъй като вече не е свързана с цветовото пространство на YIQ. Вижте #30168.$yiq-contrasted-threshold
се преименува на$min-contrast-ratio
.$yiq-text-dark
и$yiq-text-light
се преименуват съответно на$color-contrast-dark
и$color-contrast-light
.
-
РазбиванеПараметрите на mixins за медийни заявки са променени за по-логичен подход.
media-breakpoint-down()
използва самата точка на прекъсване вместо следващата точка на прекъсване (напр.media-breakpoint-down(lg)
вместо даmedia-breakpoint-down(md)
цели прозорци за изгледи, по-малки отlg
).- По същия начин, вторият параметър в
media-breakpoint-between()
също използва самата точка на прекъсване вместо следващата точка на прекъсване (напр.media-between(sm, lg)
вместоmedia-breakpoint-between(sm, md)
целеви прозорци за изглед междуsm
иlg
).
-
РазбиванеПремахнати стилове на печат и
$enable-print-styles
променлива. Класовете за показване на печат все още съществуват. Вижте #28339 . -
РазбиванеИзпуснати
color()
,theme-color()
иgray()
функции в полза на променливи. Вижте #29083 . -
Разбиване
theme-color-level()
Функцията е преименувана наcolor-level()
и сега приема всеки цвят, който искате, вместо само$theme-color
цветове. Вижте #29083 Внимавайте:color-level()
по-късно беше пуснат вv5.0.0-alpha3
. -
РазбиванеПреименуван
$enable-prefers-reduced-motion-media-query
и$enable-pointer-cursor-for-buttons
на$enable-reduced-motion
и$enable-button-pointers
за краткост. -
РазбиванеПремахна
bg-gradient-variant()
миксина. Използвайте.bg-gradient
класа, за да добавите градиенти към елементи вместо генерираните.bg-gradient-*
класове. -
Разбиване Премахнати по-рано отхвърлени миксини:
hover
,hover-focus
,plain-hover-focus
, иhover-focus-active
float()
form-control-mixin()
nav-divider()
retina-img()
text-hide()
(също премахна свързания клас на полезност,.text-hide
)visibility()
form-control-focus()
-
РазбиванеПреименувана
scale-color()
функция, заshift-color()
да се избегне сблъсък със собствената функция за мащабиране на цветовете на Sass. -
box-shadow
mixins вече позволяватnull
стойности и премахванеnone
от множество аргументи. Вижте #30394 . -
Миксинът
border-radius()
вече има стойност по подразбиране.
Цветна система
-
Цветовата система, която работеше
color-level()
и$theme-color-interval
беше премахната в полза на нова цветова система. Всички функцииlighten()
иdarken()
в нашата кодова база се заменят сtint-color()
иshade-color()
. Тези функции ще смесват цвета с бяло или черно, вместо да променят яркостта му с фиксирана стойност. Тойshift-color()
ще оцвети или засенчи цвят в зависимост от това дали параметърът му за тегло е положителен или отрицателен. Вижте #30622 за повече подробности. -
Добавени са нови нюанси и нюанси за всеки цвят, предоставяйки девет отделни цвята за всеки основен цвят, като нови променливи на Sass.
-
Подобрен цветови контраст. Увеличено съотношение на цветовия контраст от 3:1 до 4,5:1 и актуализирани сини, зелени, циан и розови цветове, за да се осигури WCAG 2.1 AA контраст. Също така сменихме нашия цветен контрастен цвят от
$gray-900
на$black
. -
За да поддържаме нашата цветова система, ние добавихме нови персонализирани
tint-color()
иshade-color()
функции за подходящо смесване на нашите цветове.
Актуализации на мрежата
-
Нова точка на прекъсване! Добавена е нова
xxl
точка на прекъсване за1400px
и нагоре. Няма промени във всички други точки на прекъсване. -
Подобрени улуци. Улуците вече са зададени в rems и са по-тесни от v4 (
1.5rem
, или около24px
, надолу от30px
). Това подравнява улуците на нашата решетъчна система с нашите разстояния.- Добавен е нов клас улуци (
.g-*
,.gx-*
, и.gy-*
) за управление на хоризонтални/вертикални улуци, хоризонтални и вертикални улуци. - РазбиванеПреименувано
.no-gutters
на, за.g-0
да съответства на новите помощни програми за улуци.
- Добавен е нов клас улуци (
-
Колоните вече не са
position: relative
приложени, така че може да се наложи да добавите.position-relative
към някои елементи, за да възстановите това поведение. -
РазбиванеОтпаднаха няколко
.order-*
класа, които често оставаха неизползвани. Вече предоставяме само.order-1
на.order-5
извадени от кутията. -
РазбиванеКомпонентът е премахнат
.media
, тъй като може лесно да бъде репликиран с помощни програми. Вижте #28265 и страницата с помощни програми за flex за пример . -
Разбиване
bootstrap-grid.css
сега се прилага самоbox-sizing: border-box
към колоната, вместо да нулира глобалното оразмеряване на кутията. По този начин нашите стилове на мрежата могат да се използват на повече места без намеса. -
$enable-grid-classes
вече не забранява генерирането на контейнерни класове. Вижте #29146. -
Актуализира
make-col
миксина по подразбиране до равни колони без посочен размер.
Съдържание, рестартиране и др
-
RFS вече е активиран по подразбиране. Заглавията, използващи
font-size()
mixin, автоматично ще коригиратfont-size
мащаба си спрямо прозореца за изглед. Преди това тази функция беше включена с v4. -
РазбиванеРевизирахме нашата типография на дисплея, за да заменим нашите
$display-*
променливи и с$display-font-sizes
карта на Sass. Също така премахнати отделните$display-*-weight
променливи за единични$display-font-weight
и коригираниfont-size
s. -
Добавени са два нови
.display-*
размера на заглавията.display-5
и.display-6
. -
Връзките са подчертани по подразбиране (не само при задържане), освен ако не са част от конкретни компоненти.
-
Преработени таблици, за да обновите стиловете им и да ги възстановите с CSS променливи за повече контрол върху стила.
-
РазбиванеВложените таблици вече не наследяват стилове.
-
Разбиване
.thead-light
и.thead-dark
отпадат в полза на.table-*
вариантните класове, които могат да се използват за всички елементи на таблицата ( ,thead
,tbody
,tfoot
иtr
) .th
td
-
РазбиванеМиксинът
table-row-variant()
е преименуван наtable-variant()
и приема само 2 параметъра:$color
(име на цвета) и$value
(код на цвета). Цветът на рамката и цветовете на акцентите се изчисляват автоматично въз основа на променливите на фактора на таблицата. -
Разделете променливите за подпълване на клетките на таблицата в
-y
и-x
. -
РазбиванеИзпуснат
.pre-scrollable
клас. Вижте #29135 -
Разбиване
.text-*
помощните програми вече не добавят състояния на задържане и фокус към връзките..link-*
вместо това могат да се използват помощни класове. Вижте #29267 -
РазбиванеИзпуснат
.text-justify
клас. Вижте #29793 -
Разбиване
<hr>
елементите сега използватheight
вместоborder
за по-добра поддръжка наsize
атрибута. Това също позволява използването на помощни програми за подплънки за създаване на по-дебели разделители (напр.<hr class="py-1">
). -
Нулирайте стандартната хоризонтална позиция
padding-left
на<ul>
и<ol>
елементи от браузъра по подразбиране40px
на2rem
. -
Добавено
$enable-smooth-scroll
, което се прилагаscroll-behavior: smooth
глобално—с изключение на потребителите, които искат намалено движение чрезprefers-reduced-motion
медийно запитване. Вижте #31877
RTL
- Специфичните за хоризонтална посока променливи, помощни програми и миксини са преименувани, за да използват логически свойства като тези, открити в оформленията на flexbox – напр.
start
иend
вместоleft
иright
.
Форми
-
Добавени са нови плаващи форми! Повишихме примера за плаващи етикети до напълно поддържани компоненти на формуляр. Вижте новата страница с плаващи етикети.
-
Разбиване Консолидирани естествени и персонализирани елементи на формуляр. Квадратчета за отметка, радиостанции, избори и други входове, които са имали естествени и персонализирани класове във v4, са консолидирани. Сега почти всички наши елементи на формуляр са изцяло персонализирани, повечето без нужда от персонализиран HTML.
.custom-check
сега е.form-check
..custom-check.custom-switch
сега е.form-check.form-switch
..custom-select
сега е.form-select
..custom-file
и.form-file
са заменени от персонализирани стилове върху.form-control
..custom-range
сега е.form-range
.- Изпуснати родни
.form-control-file
и.form-control-range
.
-
РазбиванеИзпуснат
.input-group-append
и.input-group-prepend
. Вече можете просто да добавяте бутони и.input-group-text
като директни деца на групите за въвеждане. -
Дългогодишният липсващ радиус на границата във входната група с обратна връзка за валидиране най-накрая е коригиран чрез добавяне на допълнителен
.has-validation
клас към входните групи с валидиране. -
Разбиване Отпаднаха специфични за формата класове за оформление за нашата мрежова система. Използвайте нашата мрежа и помощни програми вместо
.form-group
,.form-row
или.form-inline
. -
РазбиванеЕтикетите на формуляри вече изискват
.form-label
. -
Разбиване
.form-text
вече не задаваdisplay
, което ви позволява да създавате вграден или блокиран помощен текст, както желаете, само като промените HTML елемента. -
Иконите за валидиране вече не се прилагат към
<select>
s сmultiple
. -
Пренаредени изходни Sass файлове под
scss/forms/
, включително стилове на входни групи.
Компоненти
- Унифицирани
padding
стойности за предупреждения, навигационни пътеки, карти, падащи менюта, групи списъци, модали, изскачащи съобщения и подсказки, които да се основават на нашата$spacer
променлива. Вижте #30564 .
Акордеон
- Добавен нов компонент за акордеон .
Сигнали
-
Сигналите вече имат примери с икони .
-
Премахнати персонализирани стилове за
<hr>
s във всеки сигнал, тъй като те вече използватcurrentColor
.
Значки
-
РазбиванеОтпаднаха всички
.badge-*
цветови класове за фонови помощни програми (напр. използвайте.bg-primary
вместо.badge-primary
). -
РазбиванеОтпадна — вместо това използвайте помощната програма
.badge-pill
..rounded-pill
-
РазбиванеПремахнати стилове за задържане и фокусиране за
<a>
и<button>
елементи. -
Увеличена подложка по подразбиране за значки от
.25em
/.5em
до.35em
/.65em
.
галета
-
Опростихте външния вид по подразбиране на навигационните трохи чрез премахване
padding
на ,background-color
иborder-radius
. -
Добавено е ново CSS персонализирано свойство
--bs-breadcrumb-divider
за лесно персонализиране, без да е необходимо повторно компилиране на CSS.
Бутони
-
Разбиване Бутоните за превключване с квадратчета за отметка или радиостанции вече не изискват JavaScript и имат ново маркиране. Вече не се нуждаем от обвиващ елемент, добавете
.btn-check
към<input>
, и го сдвоете с всички.btn
класове на<label>
. Вижте #30650 . Документите за това са преместени от нашата страница Бутони в новия раздел Формуляри. -
Разбиване Изпуснат
.btn-block
за комунални услуги. Вместо да използвате.btn-block
на.btn
, обвийте бутоните си с.d-grid
и.gap-*
помощна програма, за да ги разположите според нуждите. Преминете към отзивчиви класове за още повече контрол върху тях. Прочетете документите за някои примери. -
Актуализирахме нашите
button-variant()
иbutton-outline-variant()
mixins, за да поддържаме допълнителни параметри. -
Актуализирани бутони, за да осигурят увеличен контраст при задържане и активни състояния.
-
Деактивираните бутони вече имат
pointer-events: none;
.
карта
-
РазбиванеОтпадна
.card-deck
в полза на нашата мрежа. Опаковайте картите си в класове колони и добавете родителски.row-cols-*
контейнер, за да пресъздадете тестета карти (но с повече контрол върху отзивчивото подравняване). -
РазбиванеОтпадна
.card-columns
в полза на масонството. Вижте #28922 . -
Разбиване
.card
Базираният акордеон е заменен с нов компонент за акордеон .
Въртележка
-
Добавен е нов
.carousel-dark
вариант за тъмен текст, контроли и индикатори (чудесно за по-светъл фон). -
Заменени икони на шеврон за контроли на въртележка с нови SVG от Bootstrap Icons .
Бутон за затваряне
-
РазбиванеПреименувано
.close
на.btn-close
за по-малко родово име. -
Бутоните за затваряне вече използват
background-image
(вграден SVG) вместо a×
в HTML, което позволява по-лесно персонализиране, без да е необходимо да докосвате вашето маркиране. -
Добавен е нов
.btn-close-white
вариант, който използваfilter: invert(1)
за активиране на икони за отхвърляне с по-висок контраст срещу по-тъмен фон.
Свиване
- Премахнато закрепване на скрол за акордеони.
падащи менюта
-
Добавени са нов
.dropdown-menu-dark
вариант и свързани променливи за тъмни падащи менюта при поискване. -
Добавена е нова променлива за
$dropdown-padding-x
. -
Затъмнява падащия разделител за подобрен контраст.
-
РазбиванеВсички събития за падащото меню вече се задействат от бутона за превключване на падащото меню и след това се извеждат до родителския елемент.
-
Падащите менюта вече имат
data-bs-popper="static"
зададен атрибут, когато позиционирането на падащото меню е статично иdata-bs-popper="none"
когато падащото меню е в навигационната лента. Това се добавя от нашия JavaScript и ни помага да използваме персонализирани стилове на позиция, без да пречи на позиционирането на Popper. -
РазбиванеИзпусната
flip
опция за плъгин за падащо меню в полза на родната конфигурация на Popper. Вече можете да деактивирате поведението на обръщане, като подадете празен масив заfallbackPlacements
опция в модификатора на обръщане . -
Падащите менюта вече могат да се кликват с нова
autoClose
опция за управление на поведението при автоматично затваряне . Можете да използвате тази опция, за да приемете щракването вътре или извън падащото меню, за да го направите интерактивно. -
Падащите менюта вече поддържат
.dropdown-item
s, обвити в<li>
s.
Джъмботрон
- РазбиванеКомпонентът jumbotron е премахнат, тъй като може да бъде репликиран с помощни програми. Вижте нашия нов пример за Jumbotron за демонстрация.
Списъчна група
- Добавен е нов
.list-group-numbered
модификатор към списъчните групи.
Навигация и раздели
- Добавени са нови
null
променливи заfont-size
,font-weight
,color
и:hover
color
към.nav-link
класа.
Навигационни ленти
- РазбиванеНавигационните ленти вече изискват контейнер вътре (за драстично опростяване на изискванията за разстояние и необходимия CSS).
Offcanvas
- Добавен е новият компонент offcanvas .
Пагинация
-
Връзките към страници вече имат възможност за персонализиране
margin-left
, които са динамично закръглени във всички ъгли, когато са отделени един от друг. -
Добавени
transition
са s към връзките за страници.
Попови
-
РазбиванеПреименувано
.arrow
на.popover-arrow
в нашия изскачащ шаблон по подразбиране. -
Преименувана
whiteList
опция наallowList
.
Спинери
-
Спинърите вече почитат
prefers-reduced-motion: reduce
, като забавят анимациите. Вижте #31882 . -
Подобрено вертикално подравняване на центрофугата.
Тостове
-
Тостовете вече могат да бъдат позиционирани в
.toast-container
с помощта на помощните програми за позициониране . -
Променена е продължителността на тоста по подразбиране на 5 секунди.
-
Премахнато
overflow: hidden
от тостовете и заменено с подходящиborder-radius
s сcalc()
функции.
Подсказки
-
РазбиванеПреименувано
.arrow
на.tooltip-arrow
в нашия шаблон за подсказка по подразбиране. -
РазбиванеСтойността по подразбиране за
fallbackPlacements
е променена на['top', 'right', 'bottom', 'left']
за по-добро разположение на попър елементите. -
РазбиванеПреименувана
whiteList
опция наallowList
.
Помощни програми
-
РазбиванеПреименувани са няколко помощни програми, за да се използват имена на логически свойства вместо имена на насоки с добавяне на RTL поддръжка:
- Преименуван
.left-*
и.right-*
на.start-*
и.end-*
. - Преименуван
.float-left
и.float-right
на.float-start
и.float-end
. - Преименуван
.border-left
и.border-right
на.border-start
и.border-end
. - Преименуван
.rounded-left
и.rounded-right
на.rounded-start
и.rounded-end
. - Преименуван
.ml-*
и.mr-*
на.ms-*
и.me-*
. - Преименуван
.pl-*
и.pr-*
на.ps-*
и.pe-*
. - Преименуван
.text-left
и.text-right
на.text-start
и.text-end
.
- Преименуван
-
РазбиванеДеактивирани отрицателни маржове по подразбиране.
-
Добавен е нов
.bg-body
клас за бързо настройване на<body>
фона на допълнителни елементи. -
Добавени са нови помощни програми за позиция за
top
,right
,bottom
иleft
. Стойностите включват0
,50%
и100%
за всяко свойство. -
Добавени нови
.translate-middle-x
и.translate-middle-y
помощни програми за хоризонтално или вертикално центриране на абсолютни/фиксирани позиционирани елементи. -
Добавени нови
border-width
помощни програми . -
РазбиванеПреименувана
.text-monospace
на.font-monospace
. -
РазбиванеПремахнато
.text-hide
, тъй като това е остарял метод за скриване на текст, който не трябва да се използва повече. -
Добавени
.fs-*
помощни програми заfont-size
помощни програми (с активиран RFS). Те използват същия мащаб като заглавията по подразбиране на HTML (1-6, големи към малки) и могат да бъдат модифицирани чрез картата на Sass. -
РазбиванеПреименувани
.font-weight-*
помощни програми.fw-*
за краткост и последователност. -
РазбиванеПреименувани
.font-style-*
помощни програми.fst-*
за краткост и последователност. -
Добавено
.d-grid
към помощни програми за показване и новиgap
помощни програми (.gap
) за CSS Grid и flexbox оформления. -
РазбиванеПремахнати
.rounded-sm
иrounded-lg
, и въведена нова скала от класове,.rounded-0
до.rounded-3
. Вижте #31687 . -
Добавени са нови помощни
line-height
програми:.lh-1
,.lh-sm
и.lh-base
..lh-lg
Вижте тук . -
Преместихме
.d-none
помощната програма в нашия CSS, за да й придадем по-голяма тежест в сравнение с други помощни програми за показване. -
Разширен
.visually-hidden-focusable
помощникът, за да работи и върху контейнери, използвайки:focus-within
.
Помощници
-
Разбиване Отзивчивите помощници за вграждане са преименувани на помощници за съотношения с нови имена на класове и подобрено поведение, както и полезна CSS променлива.
- Класовете са преименувани, за да променят
by
съотношениетоx
на страните. Например,.ratio-16by9
сега е.ratio-16x9
. - Изхвърлихме
.embed-responsive-item
селектора за група елементи и в полза на по-прост.ratio > *
селектор. Не е необходим повече клас и помощникът за съотношение вече работи с всеки HTML елемент. - Картата
$embed-responsive-aspect-ratios
Sass е преименувана на$aspect-ratios
и нейните стойности са опростени, за да включват името на класа и процента катоkey: value
двойка. - CSS променливите вече се генерират и включват за всяка стойност в картата на Sass. Променете
--bs-aspect-ratio
променливата на , за.ratio
да създадете персонализирано съотношение .
- Класовете са преименувани, за да променят
-
Разбиване Класовете „Екранен четец“ вече са „визуално скрити“ класове .
- Променете файла Sass от
scss/helpers/_screenreaders.scss
наscss/helpers/_visually-hidden.scss
- Преименуван
.sr-only
и.sr-only-focusable
на.visually-hidden
и.visually-hidden-focusable
- Преименуван
sr-only()
иsr-only-focusable()
mixins къмvisually-hidden()
иvisually-hidden-focusable()
.
- Променете файла Sass от
-
bootstrap-utilities.css
сега включва и нашите помощници. Вече не е необходимо помощниците да се импортират в персонализирани компилации.
JavaScript
-
Премахна зависимостта от jQuery и пренаписа плъгините, за да бъдат в обикновен JavaScript.
-
РазбиванеАтрибутите на данни за всички плъгини на JavaScript вече са с пространство от имена, за да помогнат за разграничаване на функционалността на Bootstrap от трети страни и вашия собствен код. Например използваме
data-bs-toggle
вместоdata-toggle
. -
Всички добавки вече могат да приемат CSS селектор като първи аргумент. Можете да подадете DOM елемент или всеки валиден CSS селектор, за да създадете нов екземпляр на приставката:
var modal = new bootstrap.Modal('#myModal') var dropdown = new bootstrap.Dropdown('[data-bs-toggle="dropdown"]')
-
popperConfig
може да се предаде като функция, която приема конфигурацията на Popper по подразбиране на Bootstrap като аргумент, така че да можете да обедините тази конфигурация по подразбиране по ваш начин. Прилага се за падащи менюта, изскачащи менюта и подсказки. -
Стойността по подразбиране за
fallbackPlacements
е променена на['top', 'right', 'bottom', 'left']
за по-добро разположение на елементите на Popper. Прилага се за падащи менюта, изскачащи менюта и подсказки. -
Премахнато е подчертаване от публични статични методи като
_getInstance()
→getInstance()
.