Migrarea la v4
Bootstrap 4 este o rescrie majoră a întregului proiect. Cele mai notabile modificări sunt rezumate mai jos, urmate de modificări mai specifice ale componentelor relevante.
Trecând de la Beta 3 la versiunea noastră stabilă v4.0, nu există modificări finale, dar există unele modificări notabile.
-
S-au remediat utilitarele de imprimare stricate. Anterior, utilizarea unei
.d-print-*
clase ar anula în mod neașteptat orice altă.d-*
clasă. Acum, ele se potrivesc cu celelalte utilitare de afișare ale noastre și se aplică numai acelui mediu (@media print
). -
Utilitare de afișare de imprimare extinse pentru a se potrivi cu alte utilitare. Beta 3 și mai vechi au avut doar
block
,inline-block
,inline
șinone
. Stable v4 adăugatflex
,inline-flex
,table
,table-row
șitable-cell
. -
S-a remediat redarea previzualizării de imprimare în browsere cu noi stiluri de imprimare care specifică
@page
size
.
În timp ce Beta 2 a văzut cea mai mare parte a schimbărilor noastre de ultimă oră în timpul fazei beta, dar mai avem câteva care trebuiau abordate în versiunea Beta 3. Aceste modificări se aplică dacă actualizați la Beta 3 din Beta 2 sau orice versiune mai veche a Bootstrap.
$thumbnail-transition
S-a eliminat variabila neutilizată . Nu facem tranziția nimic, așa că era doar cod suplimentar.- Pachetul npm nu mai include alte fișiere decât fișierele noastre sursă și dist; dacă v-ați bazat pe ele și executați scripturile noastre prin intermediul
node_modules
folderului, ar trebui să vă adaptați fluxul de lucru.
-
Rescrie atât casetele de selectare personalizate, cât și cele implicite și radiourile. Acum, ambele au o structură HTML care se potrivește (exterior
<div>
cu fratele<input>
și<label>
) și aceleași stiluri de aspect (stivuit implicit, în linie cu clasa modificatorului). Acest lucru ne permite să stilăm eticheta în funcție de starea intrării, simplificând suportul pentrudisabled
atribut (anterior necesită o clasă părinte) și susținând mai bine validarea formularului.Ca parte a acestui lucru, am schimbat CSS-ul pentru gestionarea mai multor
background-image
s-uri pe casetele de selectare și radiouri de formulare personalizate. Anterior, elementul acum eliminat.custom-control-indicator
avea culoarea de fundal, gradientul și pictograma SVG. Personalizarea gradientului de fundal a însemnat înlocuirea tuturor acestora de fiecare dată când trebuia să schimbi doar unul. Acum, avem.custom-control-label::before
pentru umplere și gradient și.custom-control-label::after
se ocupă de pictogramă.Pentru a face o verificare personalizată în linie, adăugați
.custom-control-inline
. -
Selector actualizat pentru grupurile de butoane bazate pe introducere. În loc de
[data-toggle="buttons"] { }
stil și comportament, folosimdata
atributul doar pentru comportamentele JS și ne bazăm pe o nouă.btn-group-toggle
clasă pentru stil. -
Eliminat
.col-form-legend
în favoarea unui ușor îmbunătățit.col-form-label
. În acest fel.col-form-label-sm
și.col-form-label-lg
poate fi folosit pe<legend>
elemente cu ușurință. -
Intrările de fișiere personalizate au primit o modificare a
$custom-file-text
variabilei Sass. Nu mai este o hartă Sass imbricată și acum alimentează doar un șir -Browse
butonul deoarece acesta este acum singurul pseudo-element generat din Sass-ul nostru. TextulChoose file
provine acum din.custom-file-label
.
-
Suplimentele grupului de intrare sunt acum specifice pentru plasarea lor în raport cu o intrare. Am renunțat
.input-group-addon
și.input-group-btn
pentru două clase noi.input-group-prepend
și.input-group-append
. Trebuie să utilizați în mod explicit un anexare sau un antecedente acum, simplificând o mare parte din CSS-ul nostru. Într-o adăugare sau un antecedente, plasați butoanele așa cum ar exista oriunde altundeva, dar împachetați textul în.input-group-text
. -
Stilurile de validare sunt acum acceptate, la fel ca și intrările multiple (deși puteți valida doar o intrare per grup).
-
Clasele de dimensionare trebuie să fie pe elementul părinte
.input-group
și nu pe elementele individuale ale formularului.
În timpul beta, ne propunem să nu avem modificări de ultimă oră. Cu toate acestea, lucrurile nu merg întotdeauna așa cum a fost planificat. Mai jos sunt cele mai importante modificări de care trebuie să țineți cont atunci când treceți de la Beta 1 la Beta 2.
$badge-color
Variabila eliminată și utilizarea acesteia pe.badge
. Folosim o funcție de contrast de culoare pentru a alege uncolor
pe bazabackground-color
, deci variabila nu este necesară.grayscale()
Funcție redenumită pentrugray()
a evita întreruperea conflictului cugrayscale
filtrul nativ CSS.- Redenumiți
.table-inverse
,.thead-inverse
, și.thead-default
la.*-dark
și.*-light
, potrivirea schemelor noastre de culori folosite în altă parte. - Tabelele receptive generează acum clase pentru fiecare punct de întrerupere a grilei. Acest lucru se desparte de Beta 1 prin faptul că cel pe
.table-responsive
care l-ați folosit seamănă mai mult cu.table-responsive-md
. Acum puteți utiliza.table-responsive
sau.table-responsive-{sm,md,lg,xl}
după cum este necesar. - S-a renunțat la suportul Bower, deoarece managerul de pachete a fost depreciat pentru alternative (de exemplu, Yarn sau npm). Consultați bower/bower#2298 pentru detalii.
- Bootstrap încă necesită jQuery 1.9.1 sau o versiune ulterioară, dar vi se recomandă să utilizați versiunea 3.x, deoarece browserele acceptate de v3.x sunt cele pe care Bootstrap le acceptă, iar v3.x are unele remedieri de securitate.
- S-a eliminat
.form-control-label
clasa nefolosită. Dacă ați folosit această clasă, a fost duplicatul.col-form-label
clasei care a centrat vertical a<label>
cu intrarea asociată în forme orizontale. - S-a schimbat de
color-yiq
la un mixin care includeacolor
proprietatea la o funcție care returnează o valoare, permițându-vă să o utilizați pentru orice proprietate CSS. De exemplu, în loc decolor-yiq(#000)
, ai scriecolor: color-yiq(#000);
.
- S-a introdus o nouă
pointer-events
utilizare a modalelor. Exteriorul.modal-dialog
trece prin evenimente cupointer-events: none
pentru gestionarea personalizată a clicurilor (făcând posibil să ascultați doar.modal-backdrop
pentru orice clicuri), apoi îl contracarează pentru cel real.modal-content
cupointer-events: auto
.
Iată principalele articole de bilet de care veți dori să fiți conștienți atunci când treceți de la v3 la v4.
- S-a renunțat la suportul IE8, IE9 și iOS 6. v4 este acum doar IE10+ și iOS 7+. Pentru site-urile care au nevoie de oricare dintre acestea, utilizați v3.
- S-a adăugat suport oficial pentru browserul Android v5.0 Lollipop și WebView. Versiunile anterioare ale browserului Android și WebView rămân doar acceptate neoficial.
- Flexbox este activat în mod implicit. În general, aceasta înseamnă o îndepărtare de flotoare și mai mult între componentele noastre.
- Am trecut de la Less la Sass pentru fișierele noastre CSS sursă.
- Am trecut de la
px
larem
ca unitate CSS principală, deși pixelii sunt încă utilizați pentru interogări media și comportamentul grilei, deoarece ferestrele de vizualizare ale dispozitivului nu sunt afectate de dimensiunea tipului. - Dimensiunea globală a fontului a crescut de la
14px
la16px
. - Nivelurile de grilă au fost modernizate pentru a adăuga o a cincea opțiune (care se adresează dispozitivelor mai mici de la
576px
și de mai jos) și a eliminat-xs
infixul din acele clase. Exemplu:.col-6.col-sm-4.col-md-3
. - S-a înlocuit tema opțională separată cu opțiuni configurabile prin variabile SCSS (de exemplu,
$enable-gradients: true
). - Sistemul de construcție a fost revizuit pentru a utiliza o serie de scripturi npm în loc de Grunt. Consultați
package.json
toate scripturile sau citiți-mi proiectul nostru pentru nevoile de dezvoltare locală. - Utilizarea care nu răspunde a Bootstrap nu mai este acceptată.
- S-a renunțat la personalizarea online în favoarea unei documentații de configurare mai extinse și a versiunilor personalizate.
- S-au adăugat zeci de noi clase de utilitate pentru perechile comune de proprietate-valoare CSS și comenzi rapide pentru spațierea marjelor/padding.
- Mutat în flexbox.
- S-a adăugat suport pentru flexbox în mixurile de grilă și clasele predefinite.
- Ca parte a flexbox, a inclus suport pentru clasele de aliniere verticală și orizontală.
- Numele claselor de grilă actualizate și un nou nivel de grilă.
- A fost adăugat un nou
sm
nivel de grilă mai jos768px
pentru un control mai granular. Acum avemxs
,sm
,md
,lg
șixl
. Acest lucru înseamnă, de asemenea, că fiecare nivel a fost crescut cu un nivel (deci.col-md-6
în v3 este acum.col-lg-6
în v4). xs
Clasele de grilă au fost modificate pentru a nu necesita infixul pentru a reprezenta mai exact faptul că încep să aplice stiluri lamin-width: 0
și nu la o valoare setată a pixelului. În loc de.col-xs-6
, este acum.col-6
. Toate celelalte niveluri de grilă necesită infix (de exemplu,sm
).
- A fost adăugat un nou
- Dimensiunile grilei, mixurile și variabilele actualizate.
- Jgheaburile cu grilă au acum o hartă Sass, astfel încât să puteți specifica lățimi specifice de jgheab la fiecare punct de întrerupere.
- Mixine de grilă actualizate pentru a utiliza un
make-col-ready
mixin de pregătire și amake-col
pentru a setaflex
șimax-width
pentru dimensionarea individuală a coloanei. - S-au modificat punctele de întrerupere a interogării media a sistemului de grilă și lățimile containerului pentru a ține cont de noul nivel de grilă și pentru a se asigura că coloanele sunt divizibile uniform
12
la lățimea lor maximă. - Punctele de întrerupere a grilei și lățimile containerelor sunt acum gestionate prin hărți Sass (
$grid-breakpoints
și$container-max-widths
) în loc de câteva variabile separate. Acestea înlocuiesc în@screen-*
întregime variabilele și vă permit să personalizați complet nivelurile grilei. - Interogările media s-au schimbat și ele. În loc să repetăm declarațiile noastre de interogare media cu aceeași valoare de fiecare dată, acum avem
@include media-breakpoint-up/down/only
. Acum, în loc să scrieți@media (min-width: @screen-sm-min) { ... }
, puteți scrie@include media-breakpoint-up(sm) { ... }
.
- Panouri, miniaturi și godeuri abandonate pentru o nouă componentă atotcuprinzătoare, carduri .
- S-a eliminat fontul pictogramei Glyphicons. Dacă aveți nevoie de pictograme, câteva opțiuni sunt:
- versiunea din amonte a lui Glyphicons
- Octicoane
- Font Awesome
- Consultați pagina Extindere pentru o listă de alternative. Aveți sugestii suplimentare? Vă rugăm să deschideți o problemă sau PR.
- A renunțat la pluginul Affix jQuery.
- Vă recomandăm să utilizați
position: sticky
în schimb. Consultați intrarea HTML5 Vă rugăm să găsiți detalii și recomandări specifice de completare polivalentă. O sugestie este să folosiți o@supports
regulă pentru implementarea acesteia (de exemplu,@supports (position: sticky) { ... }
)/ - Dacă utilizați Affix pentru a aplica stiluri suplimentare, non-
position
stiluri, este posibil ca polyfills-urile să nu suporte cazul dvs. de utilizare. O opțiune pentru astfel de utilizări este biblioteca ScrollPos-Styler terță parte .
- Vă recomandăm să utilizați
- S -a renunțat la componenta pager, deoarece era în esență butoane ușor personalizate.
- Refactorizat aproape toate componentele pentru a utiliza mai multe selectoare de clasă neimbricate în loc de selectoare copii supraspecifice.
Această listă evidențiază modificările cheie în funcție de componentă între v3.xx și v4.0.0.
Nou în Bootstrap 4 este Reboot , o nouă foaie de stil care se bazează pe Normalize cu propriile noastre stiluri de resetare oarecum obișnuite. Selectoarele care apar în acest fișier folosesc doar elemente — aici nu există clase. Acest lucru izolează stilurile noastre de resetare de stilurile noastre componente pentru o abordare mai modulară. Unele dintre cele mai importante resetări pe care aceasta le include sunt box-sizing: border-box
schimbarea, trecerea de la em
la rem
unități pe multe elemente, stiluri de link și multe resetări ale elementelor de formular.
- Au mutat toate
.text-
utilitatile în_utilities.scss
fișier. - S-a abandonat
.page-header
deoarece, în afară de chenar, toate stilurile sale pot fi aplicate prin utilități. .dl-horizontal
a fost abandonat. În schimb, utilizați și folosiți clase.row
de<dl>
coloană grilă (sau mixine) pe ei<dt>
și<dd>
copii.- Stilul personalizat
<blockquote>
s-a mutat la clase.blockquote
și la.blockquote-reverse
modificator. .list-inline
acum necesită ca elementele sale din lista copiilor să aibă noua.list-inline-item
clasă aplicată.
- Redenumită
.img-responsive
în.img-fluid
. - Redenumită
.img-rounded
în.rounded
- Redenumită
.img-circle
în.rounded-circle
- Aproape toate instanțele
>
selectorului au fost eliminate, ceea ce înseamnă că tabelele imbricate vor moșteni automat stiluri de la părinții lor. Acest lucru simplifică foarte mult selectorii și potențialele personalizări. - Tabelele receptive nu mai necesită un element de împachetare. În schimb, puneți
.table-responsive
dreapta pe<table>
. - Redenumită
.table-condensed
în.table-sm
pentru consecvență. - S-a adăugat o nouă
.table-inverse
opțiune. - S- au adăugat modificatori pentru antetul tabelului:
.thead-default
și.thead-inverse
. - Clasele contextuale au fost redenumite pentru a avea un
.table-
-prefix. Prin urmare.active
,.success
,.warning
,.danger
și.info
către.table-active
,.table-success
,.table-warning
,.table-danger
și.table-info
.
- Elementul mutat se resetează în
_reboot.scss
fișier. - Redenumită
.control-label
în.col-form-label
. - Redenumită
.input-lg
și.input-sm
la.form-control-lg
și.form-control-sm
, respectiv. - Am renunțat
.form-group-*
la cursuri de dragul simplității. Folosiți.form-control-*
în schimb cursurile acum. - A scăpat
.help-block
și l-a înlocuit cu.form-text
text de ajutor la nivel de bloc. Pentru textul de ajutor inline și alte opțiuni flexibile, utilizați clase de utilitate precum.text-muted
. - Scăpat
.radio-inline
și.checkbox-inline
. - Consolidat
.checkbox
și.radio
în.form-check
și diferitele.form-check-*
clase. - Forme orizontale revizuite:
- S-a renunțat la
.form-horizontal
cerința de clasă. .form-group
nu mai aplică stiluri din.row
mixin-ul via, așa că.row
este acum necesar pentru aspectul grilă orizontală (de exemplu,<div class="form-group row">
).- S-a adăugat o nouă
.col-form-label
clasă pentru a centra vertical etichetele cu.form-control
s. - S-au adăugat noi
.form-row
forme de formulare compacte cu clasele grilă (schimbați-vă.row
cu a.form-row
și mergeți).
- S-a renunțat la
- S-a adăugat suport pentru formulare personalizate (pentru casete de selectare, radiouri, selecții și intrări de fișiere).
.has-error
Clasele ,.has-warning
, și au fost înlocuite.has-success
cu validarea formularelor HTML5 prin CSS:invalid
și:valid
pseudo-clase.- Redenumită
.form-control-static
în.form-control-plaintext
.
- Redenumită
.btn-default
în.btn-secondary
. - S-a renunțat la
.btn-xs
clasa în întregime, deoarece.btn-sm
este proporțional mult mai mică decât v3. - Funcția de buton cu stare a
button.js
pluginului jQuery a fost abandonată. Aceasta include$().button(string)
și$().button('reset')
metodele. Vă sfătuim să utilizați un pic de JavaScript personalizat, care va avea avantajul de a se comporta exact așa cum doriți.- Rețineți că celelalte caracteristici ale pluginului (casete de selectare a butoanelor, butoane radio, butoane cu comutare unică) au fost păstrate în v4.
- Schimbați butoanele
[disabled]
pentru:disabled
ca IE9+ acceptă:disabled
. Cu toate acesteafieldset[disabled]
, este încă necesar deoarece seturile de câmpuri native dezactivate sunt încă greșite în IE11 .
- Componenta rescrisă cu flexbox.
- Eliminat
.btn-group-justified
. Ca înlocuitor, puteți folosi<div class="btn-group d-flex" role="group"></div>
ca înveliș în jurul elementelor cu.w-100
. - S-a renunțat la
.btn-group-xs
clasa în întregime având în vedere eliminarea.btn-xs
. - S-a eliminat spațierea explicită între grupurile de butoane din barele de instrumente pentru butoane; utilizați acum utilitățile de marjă.
- Documentație îmbunătățită pentru utilizarea cu alte componente.
- Trecerea de la selectorii părinte la clasele singulare pentru toate componentele, modificatorii etc.
- Stiluri de meniuri derulante simplificate pentru a nu mai fi livrate cu săgețile orientate în sus sau în jos atașate la meniul drop-down.
- Dropdown-urile pot fi create cu
<div>
s sau<ul>
s acum. - Stiluri și marcaje derulante reconstruite pentru a oferi suport ușor, încorporat
<a>
și<button>
bazat pe elementele derulante. - Redenumită
.divider
în.dropdown-divider
. - Elementele drop-down necesită acum
.dropdown-item
. - Comutarile drop-down nu mai necesită un
<span class="caret"></span>
; acest lucru este acum furnizat automat prin CSS::after
pe.dropdown-toggle
.
- S-a adăugat un nou
576px
punct de întrerupere a rețelei casm
, ceea ce înseamnă că acum există cinci niveluri totale (xs
,sm
,md
,lg
șixl
). - Au fost redenumite clasele modificatoare de grilă receptive de la
.col-{breakpoint}-{modifier}-{size}
la.{modifier}-{breakpoint}-{size}
pentru clase de grilă mai simple. - S-au renunțat la clasele modificatoare push și pull pentru noile clase bazate pe flexbox
order
. De exemplu, în loc de.col-8.push-4
și.col-4.pull-8
, ați folosi.col-8.order-2
și.col-4.order-1
. - S-au adăugat clase de utilitate flexbox pentru sistemul de rețea și componente.
- Componenta rescrisă cu flexbox.
- Înlocuit
a.list-group-item
cu o clasă explicită,.list-group-item-action
, pentru stilul versiunilor de linkuri și butoane ale elementelor grupului de listă. - Clasă adăugată
.list-group-flush
pentru utilizare cu carduri.
- Componenta rescrisă cu flexbox.
- Având în vedere trecerea la flexbox, alinierea pictogramelor de respingere din antet este probabil întreruptă, deoarece nu mai folosim elemente flotante. Conținutul flotant este pe primul loc, dar cu flexbox nu mai este cazul. Actualizați pictogramele de respingere pentru a veni după titlurile modale pentru a remedia.
- Opțiunea
remote
(care ar putea fi folosită pentru a încărca și injecta automat conținut extern într-un modal) șiloaded.bs.modal
evenimentul corespunzător au fost eliminate. Vă recomandăm, în schimb, să utilizați un șablon la nivel de client sau un cadru de legare a datelor sau să apelați singur jQuery.load .
- Componenta rescrisă cu flexbox.
- S- au eliminat aproape toate
>
selectoarele pentru o stilizare mai simplă prin clase neimbricate. - În loc de selectoare specifice HTML, cum ar fi
.nav > li > a
, folosim clase separate pentru.nav
s,.nav-item
s și.nav-link
s. Acest lucru face ca HTML-ul dvs. să fie mai flexibil, aducând în același timp o extensibilitate crescută.
Bara de navigare a fost rescrisă în întregime în flexbox, cu suport îmbunătățit pentru aliniere, capacitate de răspuns și personalizare.
- Comportamentele navbar receptive sunt acum aplicate
.navbar
clasei prin intermediul necesarului.navbar-expand-{breakpoint}
, unde alegeți unde să restrângeți bara de navigare. Anterior, aceasta a fost o modificare mai puțin variabilă și necesita recompilare. .navbar-default
este acum.navbar-light
, deși.navbar-dark
rămâne același. Unul dintre acestea este necesar pe fiecare bară de navigare. Cu toate acestea, aceste clase nu mai stabilescbackground-color
s; în schimb ele afectează în esenţă doarcolor
.- Barele de navigare necesită acum o declarație de fundal de vreun fel. Alegeți dintre utilitățile noastre de fundal (
.bg-*
) sau setați-vă pe propria dvs. cu clasele light/inverse de mai sus pentru personalizare nebună . - Având în vedere stilurile flexbox, barele de navigare pot folosi acum utilitare flexbox pentru opțiuni de aliniere ușoare.
.navbar-toggle
este acum.navbar-toggler
și are stiluri diferite și marcaj interior (nu mai mult de trei<span>
s).- A renunțat la
.navbar-form
clasa complet. Nu mai este necesar; în schimb, utilizați.form-inline
și aplicați utilitățile de marjă după cum este necesar. - Barele de navigare nu mai includ
margin-bottom
sau nu mai includborder-radius
implicit. Utilizați utilitățile după cum este necesar. - Toate exemplele care prezintă bare de navigare au fost actualizate pentru a include un nou marcaj.
- Componenta rescrisă cu flexbox.
- Clasele explicite (
.page-item
,.page-link
) sunt acum necesare pentru descendenții.pagination
s - S -a renunțat
.pager
complet la componentă, deoarece era puțin mai mult decât butoane de contur personalizate.
- O clasă explicită,
.breadcrumb-item
, este acum necesară pentru descendenții lui.breadcrumb
s
- Redenumită
.label
în pentru.badge
a dezambigua de<label>
elementul. - A scăpat
.badge
componenta deoarece era aproape identică cu etichetele. Utilizați.badge-pill
modificatorul împreună cu componenta etichetă în schimb pentru acel aspect rotunjit. - Insignele nu mai sunt flotate automat în grupurile de liste și alte componente. Clasele de utilitate sunt acum necesare pentru asta.
.badge-default
a fost abandonat și.badge-secondary
adăugat pentru a potrivi clasele modificatoare de componente folosite în altă parte.
S-a abandonat în întregime pentru noua componentă a cardului.
.panel
la.card
, acum construit cu flexbox..panel-default
îndepărtat și fără înlocuire..panel-group
îndepărtat și fără înlocuire..card-group
nu este un înlocuitor, este diferit..panel-heading
la.card-header
.panel-title
la.card-title
. În funcție de aspectul dorit, este posibil să doriți să utilizați și elemente de antet sau clase (de exemplu<h3>
,.h3
) sau elemente sau clase aldine (de exemplu<strong>
,<b>
,.font-weight-bold
). Rețineți că.card-title
, deși este numit similar, produce un aspect diferit de.panel-title
..panel-body
la.card-body
.panel-footer
la.card-footer
.panel-primary
,.panel-success
,.panel-info
,.panel-warning
, și.panel-danger
au fost abandonate pentru.bg-
,.text-
, și.border
utilitățile generate din$theme-colors
harta noastră Sass.
.progress-bar-*
S-au înlocuit clasele contextuale cu.bg-*
utilitare. De exemplu,class="progress-bar progress-bar-danger"
devineclass="progress-bar bg-danger"
.- Înlocuit
.active
pentru barele de progres animate cu.progress-bar-animated
.
- S-a revizuit întreaga componentă pentru a simplifica designul și stilul. Avem mai puține stiluri pe care să le înlocuiți, indicatori noi și pictograme noi.
- Toate CSS au fost neimbricate și redenumite, asigurându-se că fiecare clasă are prefixul
.carousel-
.- Pentru articolele carusel,
.next
,.prev
,.left
, și.right
sunt acum.carousel-item-next
,.carousel-item-prev
,.carousel-item-left
, și.carousel-item-right
. .item
este si acum.carousel-item
.- Pentru controalele prev/next
.carousel-control.right
și.carousel-control.left
sunt acum.carousel-control-next
și.carousel-control-prev
, ceea ce înseamnă că nu mai necesită o anumită clasă de bază.
- Pentru articolele carusel,
- S-au eliminat toate stilurile receptive, amânarea la utilitare (de exemplu, afișarea subtitrărilor în anumite ferestre de vizualizare) și a stilurilor personalizate după cum este necesar.
- S-au eliminat suprascrierile de imagine pentru imaginile din elementele carusel, amânând utilități.
- Am ajustat exemplul Carusel pentru a include noile marcaje și stiluri.
- S-a eliminat suportul pentru tabele imbricate cu stil. Toate stilurile de tabel sunt acum moștenite în v4 pentru selectoare mai simple.
- S-a adăugat varianta de tabel invers.
- Afișare, ascuns și multe altele:
- A făcut ca utilitățile de afișare să răspundă (de ex.
.d-none
șid-{sm,md,lg,xl}-none
). - S-a renunțat la cea mai mare parte a
.hidden-*
utilităților pentru noile utilități de afișare . De exemplu, în loc de.hidden-sm-up
, utilizați.d-sm-none
. Redenumirea.hidden-print
utilitarelor pentru a utiliza schema de denumire a utilitarului de afișare. Mai multe informații în secțiunea Utilități responsive a acestei pagini. - Au fost adăugate
.float-{sm,md,lg,xl}-{left,right,none}
clase pentru floats responsive și eliminate.pull-left
și.pull-right
deoarece sunt redundante la.float-left
și.float-right
.
- A făcut ca utilitățile de afișare să răspundă (de ex.
- Tip:
- S-au adăugat variații receptive la clasele noastre de aliniere a textului
.text-{sm,md,lg,xl}-{left,center,right}
.
- S-au adăugat variații receptive la clasele noastre de aliniere a textului
- Alinierea și spațierea:
- S-au adăugat noi utilități de marjă de răspuns și umplutură pentru toate părțile, plus scurtături verticale și orizontale.
- Adăugat încărcătură de utilități flexbox .
- Renunțat
.center-block
la noua.mx-auto
clasă.
- Clearfix a fost actualizat pentru a elimina suportul pentru versiunile mai vechi de browser.
Mixinele de prefixe ale furnizorului Bootstrap 3 , care au fost depreciate în v3.2.0, au fost eliminate în Bootstrap 4. Deoarece folosim Autoprefixer , acestea nu mai sunt necesare.
Au fost eliminate următoarele mixuri : 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
Documentația noastră a primit, de asemenea, un upgrade general. Iată partea de jos:
- Încă folosim Jekyll, dar avem pluginuri în combinație:
bugify.rb
este folosit pentru a lista eficient intrările de pe pagina noastră de erori ale browserului .example.rb
este o furcă personalizată ahighlight.rb
pluginului implicit, permițând o gestionare mai ușoară a codului de exemplu.callout.rb
este o furcă personalizată similară, dar concepută pentru înștiințările noastre speciale pentru documente.markdown-block.rb
este folosit pentru a reda fragmente Markdown în elemente HTML, cum ar fi tabelele.- jekyll-toc este folosit pentru a genera cuprinsul nostru.
- Tot conținutul documentelor a fost rescris în Markdown (în loc de HTML) pentru o editare mai ușoară.
- Paginile au fost reorganizate pentru un conținut mai simplu și o ierarhie mai accesibilă.
- Am trecut de la CSS obișnuit la SCSS pentru a profita din plin de variabilele, mixurile și multe altele din Bootstrap.
Toate @screen-
variabilele au fost eliminate în v4.0.0. Folosiți în schimb mixurile media-breakpoint-up()
, media-breakpoint-down()
, sau media-breakpoint-only()
Sass sau $grid-breakpoints
harta Sass.
Clasele noastre de utilități receptive au fost în mare parte eliminate în favoarea display
utilităților explicite.
- Clasele
.hidden
și.show
au fost eliminate deoarece au intrat în conflict cu metodele$(...).hide()
și jQuery.$(...).show()
În schimb, încercați să comutați[hidden]
atributul sau folosiți stiluri inline precumstyle="display: none;"
șistyle="display: block;"
. - Toate
.hidden-
clasele au fost eliminate, cu excepția utilitarelor de imprimare care au fost redenumite.- Eliminat din v3:
.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
- Eliminat din versiunea alpha 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
- Eliminat din v3:
- Utilitarele de imprimare nu mai încep cu
.hidden-
sau.visible-
, ci cu.d-print-
.- Nume vechi:
.visible-print-block
,.visible-print-inline
,.visible-print-inline-block
,.hidden-print
- Clase noi:
.d-print-block
,.d-print-inline
,.d-print-inline-block
,.d-print-none
- Nume vechi:
În loc să utilizați clase explicite .visible-*
, faceți un element vizibil pur și simplu nu îl ascundeți la acea dimensiune a ecranului. Puteți combina o .d-*-none
clasă cu o .d-*-block
clasă pentru a afișa un element numai pe un interval dat de dimensiuni de ecran (de exemplu .d-none.d-md-block.d-xl-none
, arată elementul doar pe dispozitive medii și mari).
Rețineți că modificările la punctele de întrerupere ale grilei în v4 înseamnă că va trebui să măriți cu un punct de întrerupere pentru a obține aceleași rezultate. Noile clase de utilitate responsive nu încearcă să găzduiască cazuri mai puțin obișnuite în care vizibilitatea unui element nu poate fi exprimată ca o singură gamă contigua de dimensiuni ale ferestrei de vizualizare; în schimb, va trebui să utilizați CSS personalizat în astfel de cazuri.