Migracja do v4
Bootstrap 4 to główna przeróbka całego projektu. Poniżej podsumowano najważniejsze zmiany, a następnie bardziej szczegółowe zmiany w odpowiednich komponentach.
Stabilne zmiany
Przechodząc z wersji Beta 3 do naszej stabilnej wersji v4.x, nie ma żadnych przełomowych zmian, ale jest kilka znaczących zmian.
Druk
-
Naprawiono zepsute narzędzia drukowania. Wcześniej użycie
.d-print-*
klasy nieoczekiwanie unieważniało każdą inną.d-*
klasę. Teraz pasują do naszych innych narzędzi wyświetlania i dotyczą tylko tego nośnika (@media print
). -
Rozszerzono dostępne narzędzia do wyświetlania wydruku, aby pasowały do innych narzędzi. Beta 3 i starsze miały tylko
block
,inline-block
,inline
inone
. Dodano stabilną wersję 4flex
,inline-flex
,table
,table-row
itable-cell
. -
Naprawiono renderowanie podglądu wydruku w przeglądarkach z nowymi stylami wydruku, które określają
@page
size
.
Zmiany w wersji beta 3
Podczas gdy Beta 2 widziała większość naszych przełomowych zmian w fazie beta, wciąż mamy kilka, które wymagały rozwiązania w wydaniu Beta 3. Te zmiany obowiązują w przypadku aktualizacji do wersji Beta 3 z wersji Beta 2 lub dowolnej starszej wersji Bootstrap.
Różnorodny
- Usunięto nieużywaną
$thumbnail-transition
zmienną. Niczego nie zmienialiśmy, więc był to tylko dodatkowy kod. - Pakiet npm nie zawiera już żadnych plików innych niż nasze pliki źródłowe i dystrybucyjne; jeśli polegałeś na nich i uruchamiałeś nasze skrypty za pośrednictwem
node_modules
folderu, powinieneś dostosować swój przepływ pracy.
Formularze
-
Przepisano zarówno niestandardowe, jak i domyślne pola wyboru i radia. Teraz oba mają dopasowaną strukturę HTML (zewnętrzna
<div>
z siostrzanym<input>
i<label>
) i te same style układu (ułożone domyślnie, wbudowane z klasą modyfikatora). Dzięki temu możemy stylizować etykietę w oparciu o stan danych wejściowych, upraszczając obsługędisabled
atrybutu (wcześniej wymagającą klasy nadrzędnej) i lepiej obsługując naszą walidację formularza.W ramach tego zmieniliśmy CSS do zarządzania wieloma
background-image
s w polach wyboru formularzy niestandardowych i radiach. Wcześniej usunięty.custom-control-indicator
element miał kolor tła, gradient i ikonę SVG. Dostosowanie gradientu tła oznaczało zastąpienie ich wszystkich za każdym razem, gdy trzeba było zmienić tylko jeden. Teraz mamy.custom-control-label::before
do wypełnienia i gradientu oraz.custom-control-label::after
obsługuje ikonę.Aby utworzyć czek niestandardowy, dodaj
.custom-control-inline
. -
Zaktualizowany selektor dla grup przycisków opartych na danych wejściowych. Zamiast
[data-toggle="buttons"] { }
stylu i zachowania używamydata
atrybutu tylko dla zachowań JS i polegamy na nowej.btn-group-toggle
klasie do stylizacji. -
Usunięto
.col-form-legend
na rzecz nieco ulepszonej.col-form-label
. W ten sposób można z łatwością używać na.col-form-label-sm
elementach ..col-form-label-lg
<legend>
-
Niestandardowe dane wejściowe plików otrzymały zmianę w swojej
$custom-file-text
zmiennej Sass. Nie jest to już zagnieżdżona mapa Sassa, a teraz zasila tylko jeden ciąg —Browse
przycisk, ponieważ jest to teraz jedyny pseudo-element generowany z naszego Sassa. TekstChoose file
pochodzi teraz z.custom-file-label
.
Grupy wejściowe
-
Dodatki grupy danych wejściowych są teraz zależne od ich położenia względem danych wejściowych. Zrezygnowaliśmy
.input-group-addon
i.input-group-btn
dla dwóch nowych klas.input-group-prepend
i.input-group-append
. Musisz teraz wyraźnie użyć dodatku lub przedrostka, upraszczając wiele z naszego CSS. W dodawaniu lub dołączaniu umieść przyciski tak, jak mogłyby istnieć gdziekolwiek indziej, ale zawijaj tekst w.input-group-text
. -
Style walidacji są teraz obsługiwane, podobnie jak wiele danych wejściowych (chociaż można sprawdzać tylko jedno dane wejściowe na grupę).
-
Klasy rozmiarów muszą znajdować się w elemencie nadrzędnym
.input-group
, a nie w poszczególnych elementach formularza.
Zmiany w wersji beta 2
W fazie beta nie chcemy wprowadzać przełomowych zmian. Jednak nie zawsze wszystko idzie zgodnie z planem. Poniżej znajdują się przełomowe zmiany, o których należy pamiętać przy przejściu z wersji Beta 1 do Beta 2.
Łamanie
- Usunięto
$badge-color
zmienną i jej wykorzystanie w dniu.badge
. Używamy funkcji kontrastu kolorów, aby wybrać nacolor
podstawiebackground-color
, więc zmienna jest niepotrzebna. - Zmieniono nazwę
grayscale()
funkcji,gray()
aby uniknąć konfliktu z natywnymgrayscale
filtrem CSS. - Zmieniono nazwy
.table-inverse
,.thead-inverse
, oraz.thead-default
na.*-dark
i.*-light
, zgodnie z naszymi schematami kolorów używanymi w innych miejscach. - Responsywne tabele generują teraz klasy dla każdego punktu przerwania siatki. To różni się od wersji Beta 1, ponieważ
.table-responsive
używany przez Ciebie jest bardziej podobny do.table-responsive-md
. Możesz teraz użyć.table-responsive
lub.table-responsive-{sm,md,lg,xl}
w razie potrzeby. - Porzucono obsługę Bowera, ponieważ menedżer pakietów został przestarzały dla alternatyw (np. Yarn lub npm). Zobacz altanka/altana#2298 po szczegóły.
- Bootstrap nadal wymaga jQuery 1.9.1 lub nowszej, ale zaleca się używanie wersji 3.x, ponieważ obsługiwane przeglądarki v3.x to te, które obsługuje Bootstrap, a v3.x zawiera pewne poprawki bezpieczeństwa.
- Usunięto nieużywaną
.form-control-label
klasę. Jeśli skorzystałeś z tej klasy, była to duplikat.col-form-label
klasy, która pionowo wyśrodkowała a<label>
z powiązanymi danymi wejściowymi w układach formularzy poziomych. - Zmieniono
color-yiq
mixin, który zawierałcolor
właściwość, na funkcję zwracającą wartość, co pozwala na użycie jej dla dowolnej właściwości CSS. Na przykład zamiastcolor-yiq(#000)
, napisałbyścolor: color-yiq(#000);
.
Przegląd najważniejszych wydarzeń
- Wprowadzono nowe
pointer-events
zastosowanie na modalach. Zewnętrzna.modal-dialog
przechodzi przez zdarzenia zpointer-events: none
obsługą niestandardowego kliknięcia (umożliwiając po prostu nasłuchiwanie.modal-backdrop
wszelkich kliknięć), a następnie przeciwdziała temu rzeczywistemu.modal-content
za pomocąpointer-events: auto
.
Streszczenie
Oto najważniejsze elementy biletu, o których warto wiedzieć, przechodząc z wersji 3 na wersję 4.
Obsługa przeglądarki
- Zrezygnowano z obsługi IE8, IE9 i iOS 6. v4 to teraz tylko IE10+ i iOS 7+. W przypadku witryn wymagających jednego z nich użyj wersji v3.
- Dodano oficjalne wsparcie dla przeglądarki Android v5.0 Lollipop i WebView. Wcześniejsze wersje przeglądarki Android i WebView pozostają tylko nieoficjalnie obsługiwane.
Zmiany globalne
- Flexbox jest domyślnie włączony. Ogólnie oznacza to odejście od pływaków i nie tylko w naszych komponentach.
- Zmieniono wersję Less na Sass dla naszych źródłowych plików CSS.
- Zmieniono
px
narem
naszą podstawową jednostkę CSS, ale piksele są nadal używane do zapytań o media i zachowania siatki, ponieważ rozmiar typu nie ma wpływu na widoczne urządzenia. - Zwiększono globalny rozmiar czcionki z
14px
do16px
. - Zmieniono poziomy siatki, aby dodać piątą opcję (adresowanie do mniejszych urządzeń na
576px
i poniżej) i usunięto-xs
wrostek z tych klas. Przykład:.col-6.col-sm-4.col-md-3
. - Zamieniono oddzielny motyw opcjonalny na opcje konfigurowalne za pomocą zmiennych SCSS (np
$enable-gradients: true
. ). - Przebudowany system kompilacji, aby używać serii skryptów npm zamiast Grunta. Zobacz
package.json
wszystkie skrypty lub nasz projekt readme dla potrzeb lokalnego rozwoju. - Niereagujące użycie Bootstrap nie jest już obsługiwane.
- Zrezygnowano z konfiguratora online na rzecz obszerniejszej dokumentacji konfiguracji i niestandardowych kompilacji.
- Dodano dziesiątki nowych klas narzędziowych dla typowych par właściwość-wartość CSS oraz skrótów dotyczących odstępów margines/dopełnienie.
System siatki
- Przeniesiono do flexboxa.
- Dodano wsparcie dla flexbox w mixinach siatki i predefiniowanych klasach.
- W ramach flexbox włączono obsługę klas wyrównania w pionie i poziomie.
- Zaktualizowano nazwy klas siatki i nowy poziom siatki.
- Dodano nowy
sm
poziom siatki poniżej768px
, aby uzyskać bardziej szczegółową kontrolę. Mamy terazxs
,sm
,md
,lg
ixl
. Oznacza to również, że każdy poziom został podniesiony o jeden poziom (więc.col-md-6
w wersji 3 jest teraz.col-lg-6
w wersji 4). xs
klasy siatki zostały zmodyfikowane tak, aby nie wymagały, aby wrostek dokładniej wskazywał, że zaczynają stosować style odmin-width: 0
wartości ustawionej w pikselach, a nie od niej. Zamiast.col-xs-6
, jest teraz.col-6
. Wszystkie inne warstwy siatki wymagają wrostka (npsm
. ).
- Dodano nowy
- Zaktualizowano rozmiary siatki, domieszki i zmienne.
- Rynny siatki mają teraz mapę Sass, dzięki czemu można określić określone szerokości rynny w każdym punkcie przerwania.
- Zaktualizowano mieszankę siatkową, aby wykorzystać
make-col-ready
mieszankę przygotowawczą i a,make-col
aby ustawićflex
imax-width
dla indywidualnego rozmiaru kolumny. - Zmieniono punkty przerwania zapytań o media systemu siatki i szerokości kontenerów, aby uwzględnić nową warstwę siatki i zapewnić równomierne dzielenie kolumn przez
12
przy ich maksymalnej szerokości. - Punkty przerwania siatki i szerokości kontenerów są teraz obsługiwane za pomocą map Sass (
$grid-breakpoints
i$container-max-widths
) zamiast kilku oddzielnych zmiennych. Zastępują one@screen-*
całkowicie zmienne i pozwalają w pełni dostosować poziomy siatki. - Zapytania mediów również uległy zmianie. Zamiast powtarzać nasze deklaracje zapytań o media za każdym razem z tą samą wartością, mamy teraz
@include media-breakpoint-up/down/only
. Teraz zamiast pisać@media (min-width: @screen-sm-min) { ... }
, możesz pisać@include media-breakpoint-up(sm) { ... }
.
składniki
- Porzucone panele, miniatury i zagłębienia dla nowego, wszechogarniającego komponentu, kart .
- Usunięto czcionkę ikony Glyphicons. Jeśli potrzebujesz ikon, niektóre opcje to:
- upstream wersja Glyphicons
- Octicons
- Czcionka niesamowita
- Zobacz stronę Rozszerzenie, aby uzyskać listę alternatyw. Masz dodatkowe sugestie? Otwórz zgłoszenie lub PR.
- Zrezygnowano z wtyczki Affix jQuery.
- Zalecamy użycie
position: sticky
zamiast. Zobacz wpis HTML5, aby uzyskać szczegółowe informacje i konkretne zalecenia dotyczące wypełnienia. Jedną z sugestii jest użycie@supports
reguły do jej implementacji (np.@supports (position: sticky) { ... }
) - Jeśli używasz afiksu do zastosowania dodatkowych, nie
position
będących stylami, wypełnienia mogą nie obsługiwać twojego przypadku użycia. Jedną z opcji takich zastosowań jest biblioteka ScrollPos-Styler innej firmy.
- Zalecamy użycie
- Porzucono składnik pagera, ponieważ był to zasadniczo nieznacznie dostosowane przyciski.
- Zrefaktoryzowano prawie wszystkie komponenty, aby używać więcej niezagnieżdżonych selektorów klas zamiast nadmiernie określonych selektorów potomnych.
Według składnika
Ta lista przedstawia kluczowe zmiany według komponentów między wersjami 3.xx i 4.0.0.
Restart
Nowością w Bootstrap 4 jest Reboot , nowy arkusz stylów, który opiera się na Normalize z naszymi własnymi, nieco upartymi stylami resetowania. Selektory pojawiające się w tym pliku używają tylko elementów — nie ma tu żadnych klas. To izoluje nasze style resetowania od stylów komponentów, zapewniając bardziej modułowe podejście. Niektóre z najważniejszych resetów, które obejmują, to box-sizing: border-box
zmiana, przechodzenie od jednostek em
do rem
wielu elementów, style linków i wiele resetów elementów formularza.
Typografia
- Przeniesiono wszystkie
.text-
narzędzia do_utilities.scss
pliku. - Porzucono
.page-header
, ponieważ jego style można zastosować za pomocą narzędzi. .dl-horizontal
został upuszczony. Zamiast tego użyj.row
i<dl>
użyj klas kolumn siatki (lub domieszek) na jego<dt>
i elementach podrzędnych<dd>
.- Przeprojektowane cytaty blokowe, przenosząc ich style z
<blockquote>
elementu do jednej klasy,.blockquote
. Usunięto.blockquote-reverse
modyfikator dla narzędzi tekstowych. .list-inline
teraz wymaga, aby elementy listy podrzędnej miały.list-inline-item
do nich zastosowaną nową klasę.
Obrazy
- Zmieniono nazwę
.img-responsive
na.img-fluid
. - Zmieniono nazwę
.img-rounded
na.rounded
- Zmieniono nazwę
.img-circle
na.rounded-circle
Stoły
- Prawie wszystkie wystąpienia
>
selektora zostały usunięte, co oznacza, że zagnieżdżone tabele będą teraz automatycznie dziedziczyć style od swoich rodziców. To znacznie upraszcza nasze selektory i potencjalne dostosowania. - Zmieniono nazwę
.table-condensed
na.table-sm
spójność. - Dodano nową
.table-inverse
opcję. - Dodano modyfikatory nagłówków tabeli:
.thead-default
i.thead-inverse
. - Zmieniono nazwy klas kontekstowych, aby miały
.table-
prefiks -. Stąd.active
,.success
,.warning
,.danger
i.info
do.table-active
,.table-success
,.table-warning
,.table-danger
i.table-info
.
Formularze
- Przeniesiony element resetuje się do
_reboot.scss
pliku. - Zmieniono nazwę
.control-label
na.col-form-label
. - Zmieniono nazwę odpowiednio na
.input-lg
i.input-sm
na.form-control-lg
i.form-control-sm
. - Porzucone
.form-group-*
klasy dla uproszczenia. Zamiast tego używaj.form-control-*
klas. - Porzucono
.help-block
i zastąpiono.form-text
tekstem pomocy na poziomie bloku. W przypadku tekstu pomocy wbudowanej i innych elastycznych opcji użyj klas narzędzi, takich jak.text-muted
. - Zrezygnowano
.radio-inline
i.checkbox-inline
. - Skonsolidowane
.checkbox
i.radio
podzielone.form-check
na różne.form-check-*
klasy. - Remont form poziomych:
- Zrezygnowano z
.form-horizontal
wymagań klasowych. .form-group
nie stosuje już stylów z.row
domieszki via, więc.row
jest teraz wymagane dla poziomych układów siatki (np<div class="form-group row">
. ).- Dodano nową
.col-form-label
klasę do wyśrodkowania w pionie etykiet z.form-control
s. - Dodano nowe
.form-row
dla kompaktowych układów formularzy z klasami siatki (zamień swój.row
na.form-row
i idź).
- Zrezygnowano z
- Dodano obsługę formularzy niestandardowych (dla pól wyboru, radia, zaznaczeń i danych wejściowych plików).
- Zastąpiono
.has-error
,.has-warning
, i.has-success
klasy walidacją formularzy HTML5 za pomocą CSS:invalid
i:valid
pseudoklas. - Zmieniono nazwę
.form-control-static
na.form-control-plaintext
.
guziki
- Zmieniono nazwę
.btn-default
na.btn-secondary
. - Porzucił
.btn-xs
klasę całkowicie, ponieważ.btn-sm
jest proporcjonalnie znacznie mniejsza niż v3. - Funkcja przycisku stanowego wtyczki
button.js
jQuery została usunięta. Obejmuje to metody$().button(string)
i$().button('reset')
. Radzimy zamiast tego użyć odrobiny niestandardowego kodu JavaScript, który będzie zachowywał się dokładnie tak, jak chcesz.- Zwróć uwagę, że inne funkcje wtyczki (pola wyboru przycisków, przyciski radiowe, przyciski pojedynczego przełączania) zostały zachowane w wersji 4.
- Zmień przyciski”
[disabled]
na takie, jakie:disabled
obsługuje IE9+:disabled
. Jednakfieldset[disabled]
nadal jest to konieczne, ponieważ natywne wyłączone zestawy pól są nadal wadliwe w IE11 .
Grupa przycisków
- Przepisano komponent z flexboxem.
- Usunięto
.btn-group-justified
. Jako zamiennik możesz użyć<div class="btn-group d-flex" role="group"></div>
jako wrappera wokół elementów z.w-100
. - Porzucono
.btn-group-xs
klasę całkowicie po usunięciu.btn-xs
. - Usunięto wyraźne odstępy między grupami przycisków w paskach narzędzi przycisków; używaj narzędzi do marży teraz.
- Ulepszona dokumentacja do użytku z innymi komponentami.
Menu rozwijane
- Zmieniono selektory nadrzędne na pojedyncze klasy dla wszystkich komponentów, modyfikatorów itp.
- Uproszczone style rozwijane, które nie są już dostarczane ze strzałkami skierowanymi w górę lub w dół dołączonymi do menu rozwijanego.
- Listy rozwijane można teraz tworzyć za pomocą
<div>
s lub<ul>
s. - Przebudowane style rozwijane i znaczniki, aby zapewnić łatwą, wbudowaną obsługę
<a>
i<button>
oparte na rozwijanych elementach. - Zmieniono nazwę
.divider
na.dropdown-divider
. - Pozycje rozwijane wymagają teraz
.dropdown-item
. - Przełączniki rozwijane nie wymagają już wyraźnego
<span class="caret"></span>
; jest to teraz dostarczane automatycznie przez CSS::after
on.dropdown-toggle
.
System siatki
- Dodano nowy
576px
punkt przerwania siatki jakosm
, co oznacza, że istnieje teraz łącznie pięć poziomów (xs
,sm
,md
,lg
ixl
). - Zmieniono nazwę responsywnych klas modyfikatorów siatki z
.col-{breakpoint}-{modifier}-{size}
na.{modifier}-{breakpoint}-{size}
dla prostszych klas siatki. - Zrezygnowano z klas modyfikatorów push i pull dla nowych klas opartych na flexboksie
order
. Na przykład zamiast.col-8.push-4
i.col-4.pull-8
użyjesz.col-8.order-2
i.col-4.order-1
. - Dodano klasy użyteczności flexbox dla systemu grid i komponentów.
Lista grup
- Przepisano komponent z flexboxem.
- Zastąpiona
a.list-group-item
jawną klasą ,.list-group-item-action
do stylizowania wersji linków i przycisków elementów grupy list. - Dodano
.list-group-flush
klasę do użytku z kartami.
Modalny
- Przepisano komponent z flexboxem.
- Biorąc pod uwagę przejście na flexbox, wyrównanie ikon odrzucania w nagłówku jest prawdopodobnie zepsute, ponieważ nie używamy już elementów pływających. Treść pływająca jest na pierwszym miejscu, ale w przypadku flexboxa już tak nie jest. Zaktualizuj ikony odrzucania, aby pojawiły się po tytułach modalnych, aby to naprawić.
- Opcja
remote
(która mogła być używana do automatycznego ładowania i wstrzykiwania zawartości zewnętrznej do modu) i odpowiednieloaded.bs.modal
zdarzenie zostały usunięte. Zamiast tego zalecamy korzystanie z szablonów po stronie klienta lub struktury wiązania danych albo samodzielne wywołanie jQuery.load .
Navs
- Przepisano komponent z flexboxem.
- Porzucono prawie wszystkie
>
selektory, aby uprościć stylizację za pomocą niezagnieżdżonych klas. - Zamiast selektorów specyficznych dla HTML, takich jak
.nav > li > a
, używamy oddzielnych klas dla.nav
s,.nav-item
s i.nav-link
s. Dzięki temu Twój kod HTML jest bardziej elastyczny, a jednocześnie zwiększa się jego rozszerzalność.
Pasek nawigacyjny
Pasek nawigacyjny został całkowicie przepisany w flexboksie z ulepszoną obsługą wyrównania, responsywności i dostosowywania.
- Responsywne zachowania paska nawigacyjnego są teraz stosowane do
.navbar
klasy za pośrednictwem wymaganego.navbar-expand-{breakpoint}
miejsca, w którym wybierasz miejsce zwinięcia paska nawigacyjnego. Wcześniej była to modyfikacja mniej zmienna i wymagała ponownej kompilacji. .navbar-default
jest teraz.navbar-light
, choć.navbar-dark
pozostaje taka sama. Jeden z nich jest wymagany na każdym pasku nawigacyjnym. Jednak te klasy już nie ustawiająbackground-color
s; zamiast tego zasadniczo wpływają tylko nacolor
.- Paski nawigacyjne wymagają teraz pewnego rodzaju deklaracji w tle. Wybierz z naszych narzędzi tła (
.bg-*
) lub ustaw własne, korzystając z powyższych klas światła/odwrotności, aby uzyskać szaloną personalizację . - Biorąc pod uwagę style flexbox, paski nawigacyjne mogą teraz używać narzędzi flexbox dla łatwych opcji wyrównania.
.navbar-toggle
jest teraz.navbar-toggler
i ma różne style i wewnętrzne znaczniki (nie więcej trzech<span>
s).- Całkowicie porzuciłem
.navbar-form
klasę. Nie jest to już konieczne; zamiast tego po prostu używaj.form-inline
i stosuj narzędzia marginesowe w razie potrzeby. - Paski nawigacyjne nie zawierają już
margin-bottom
aniborder-radius
domyślnie. W razie potrzeby użyj narzędzi. - Wszystkie przykłady zawierające paski nawigacyjne zostały zaktualizowane i zawierają nowe znaczniki.
Paginacja
- Przepisano komponent z flexboxem.
- Klasy jawne (
.page-item
,.page-link
) są teraz wymagane na potomkach.pagination
s - Całkowicie usunięto
.pager
komponent, ponieważ był to niewiele więcej niż niestandardowe przyciski konturu.
Bułka tarta
- Wyraźna klasa ,
.breadcrumb-item
jest teraz wymagana na potomkach.breadcrumb
s
Etykiety i odznaki
- Skonsolidować
.label
i.badge
odróżnić od<label>
elementu i uprościć powiązane komponenty. - Dodano
.badge-pill
jako modyfikator dla zaokrąglonego wyglądu „pigułki”. - Plakietki nie są już automatycznie unoszone w grupach list i innych komponentach. Do tego potrzebne są teraz klasy użytkowe.
.badge-default
został usunięty i.badge-secondary
dodany w celu dopasowania klas modyfikatorów komponentów używanych gdzie indziej.
Panele, miniatury i studnie
Porzucone całkowicie dla nowego komponentu karty.
Panele
.panel
do.card
, teraz zbudowany z flexbox..panel-default
usunięte i bez wymiany..panel-group
usunięte i bez wymiany..card-group
nie jest zamiennikiem, jest inaczej..panel-heading
do.card-header
.panel-title
do.card-title
. W zależności od pożądanego wyglądu możesz również chcieć użyć elementów lub klas nagłówków (np<h3>
. ,.h3
) lub elementów lub klas pogrubionych (np<strong>
. ,<b>
,.font-weight-bold
). Zauważ, że.card-title
, chociaż podobnie nazwany, daje inny wygląd niż.panel-title
..panel-body
do.card-body
.panel-footer
do.card-footer
.panel-primary
,.panel-success
,.panel-info
,.panel-warning
i.panel-danger
zostały porzucone dla.bg-
,.text-
, oraz.border
narzędzi wygenerowanych z naszej$theme-colors
mapy Sass.
Postęp
- Zastąpiono
.progress-bar-*
klasy kontekstowe.bg-*
narzędziami. Na przykładclass="progress-bar progress-bar-danger"
staje sięclass="progress-bar bg-danger"
. - Zastąpiono
.active
animowane paski postępu przez.progress-bar-animated
.
Karuzela
- Przerobiliśmy cały komponent, aby uprościć projektowanie i stylizację. Mamy mniej stylów do zastąpienia, nowe wskaźniki i nowe ikony.
- Wszystkie CSS zostały rozgnieżdżone i zmieniono ich nazwy, zapewniając, że każda klasa ma przedrostek
.carousel-
.- W przypadku elementów karuzeli ,
.next
,.prev
,.left
i.right
są teraz.carousel-item-next
,.carousel-item-prev
,.carousel-item-left
, i.carousel-item-right
. .item
jest również teraz.carousel-item
.- W przypadku kontrolek prev/next są teraz
.carousel-control.right
i , co oznacza, że nie wymagają już określonej klasy bazowej..carousel-control.left
.carousel-control-next
.carousel-control-prev
- W przypadku elementów karuzeli ,
- Usunięto wszystkie responsywne style, odnoszące się do narzędzi (np. wyświetlanie podpisów w niektórych rzutniach) i niestandardowe style w razie potrzeby.
- Usunięto nadpisania obrazów dla obrazów w elementach karuzeli, odnosząc się do narzędzi.
- Poprawiono przykład karuzeli, aby uwzględnić nowe znaczniki i style.
Stoły
- Usunięto obsługę stylizowanych tabel zagnieżdżonych. Wszystkie style tabel są teraz dziedziczone w wersji 4 dla prostszych selektorów.
- Dodano wariant tabeli odwrotnej.
Narzędzia
- Wyświetlaj, ukrywaj i nie tylko:
- Uaktywniono narzędzia wyświetlania (np.
.d-none
id-{sm,md,lg,xl}-none
). - Zrezygnowano z większości
.hidden-*
narzędzi dla nowych narzędzi wyświetlania . Na przykład zamiast.hidden-sm-up
, użyj.d-sm-none
. Zmieniono nazwy.hidden-print
narzędzi, aby korzystały ze schematu nazewnictwa narzędzi wyświetlania. Więcej informacji można znaleźć w sekcji Responsywne narzędzia na tej stronie. - Dodano
.float-{sm,md,lg,xl}-{left,right,none}
klasy dla responsywnych elementów pływających i usunięto je.pull-left
,.pull-right
ponieważ są one nadmiarowe w.float-left
i.float-right
.
- Uaktywniono narzędzia wyświetlania (np.
- Rodzaj:
- Dodano responsywne odmiany do naszych klas wyrównania tekstu
.text-{sm,md,lg,xl}-{left,center,right}
.
- Dodano responsywne odmiany do naszych klas wyrównania tekstu
- Wyrównanie i odstępy:
- Dodano nowe narzędzia do responsywnych marginesów i dopełniania dla wszystkich stron, a także skrócone pionowe i poziome.
- Dodano mnóstwo narzędzi flexbox .
- Wypada
.center-block
z nowej.mx-auto
klasy.
- Zaktualizowano Clearfix, aby usunąć obsługę starszych wersji przeglądarek.
Mieszanki prefiksu dostawcy
Mieszanki prefiksów dostawcy Bootstrap 3 , które zostały przestarzałe w wersji 3.2.0, zostały usunięte w Bootstrap 4. Ponieważ używamy Autoprefixera , nie są już potrzebne.
Usunięto następujące mixiny: 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
Dokumentacja
Nasza dokumentacja również została uaktualniona. Oto dół:
- Nadal używamy Jekyll, ale mamy w miksie wtyczki:
bugify.rb
służy do efektywnego wyświetlania wpisów na naszej stronie z błędami przeglądarki .example.rb
jest niestandardowym rozwidleniem domyślnejhighlight.rb
wtyczki, pozwalającym na łatwiejszą obsługę przykładowego kodu.callout.rb
jest podobnym niestandardowym widelcem, ale zaprojektowanym z myślą o naszych specjalnych objaśnieniach w dokumentach.- jekyll-toc służy do generowania naszego spisu treści.
- Cała zawartość dokumentów została przepisana w języku Markdown (zamiast HTML), aby ułatwić edycję.
- Strony zostały zreorganizowane w celu uproszczenia treści i bardziej przystępnej hierarchii.
- Przeszliśmy od zwykłego CSS do SCSS, aby w pełni wykorzystać zmienne, domieszki i nie tylko Bootstrapa.
Responsywne narzędzia
Wszystkie @screen-
zmienne zostały usunięte w wersji 4.0.0. Zamiast tego użyj domieszek media-breakpoint-up()
, media-breakpoint-down()
, media-breakpoint-only()
Sass lub $grid-breakpoints
mapy Sass.
Nasze responsywne klasy użyteczności zostały w dużej mierze usunięte na rzecz jawnych display
narzędzi.
- Klasy
.hidden
i.show
zostały usunięte, ponieważ kolidowały z metodami$(...).hide()
i jQuery.$(...).show()
Zamiast tego spróbuj przełączyć[hidden]
atrybut lub użyj stylów wbudowanych, takich jakstyle="display: none;"
istyle="display: block;"
. - Wszystkie
.hidden-
klasy zostały usunięte, z wyjątkiem narzędzi drukowania, których nazwy zostały zmienione.- Usunięto z wersji 3:
.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
- Usunięto z wersji alfa v4:
.hidden-xs-up
.hidden-xs-down
.hidden-sm-up
.hidden-sm-down
.hidden-md-up
.hidden-md-down
.hidden-lg-up
.hidden-lg-down
- Usunięto z wersji 3:
- Narzędzia drukowania nie zaczynają się już od
.hidden-
lub.visible-
, ale od.d-print-
.- Stare nazwy:
.visible-print-block
,.visible-print-inline
,.visible-print-inline-block
,.hidden-print
- Nowe zajęcia:
.d-print-block
,.d-print-inline
,.d-print-inline-block
,.d-print-none
- Stare nazwy:
Zamiast używać jawnych .visible-*
klas, tworzysz element widoczny, po prostu nie ukrywając go w tym rozmiarze ekranu. Możesz połączyć jedną .d-*-none
klasę z jedną .d-*-block
klasą, aby pokazać element tylko na zadanym interwale rozmiarów ekranu (np .d-none.d-md-block.d-xl-none
. pokazuje element tylko na średnich i dużych urządzeniach).
Zwróć uwagę, że zmiany w punktach przerwania siatki w wersji 4 oznaczają, że będziesz musiał zwiększyć o jeden punkt przerwania, aby osiągnąć te same wyniki. Nowe responsywne klasy narzędziowe nie próbują uwzględniać mniej typowych przypadków, w których widoczność elementu nie może być wyrażona jako pojedynczy ciągły zakres rozmiarów okienka ekranu; w takich przypadkach będziesz musiał użyć niestandardowego CSS.