Migrazione alla v4
Bootstrap 4 è un'importante riscrittura dell'intero progetto. Le modifiche più significative sono riepilogate di seguito, seguite da modifiche più specifiche alle componenti rilevanti.
Cambiamenti stabili
Passando dalla Beta 3 alla nostra versione stabile v4.x, non ci sono modifiche sostanziali, ma ci sono alcune modifiche degne di nota.
Stampa
-
Risolto il problema con le utilità di stampa interrotte. In precedenza, l'utilizzo di una
.d-print-*
classe prevaleva inaspettatamente su qualsiasi altra.d-*
classe. Ora corrispondono alle nostre altre utilità di visualizzazione e si applicano solo a quel supporto (@media print
). -
Utilità di visualizzazione della stampa disponibili ampliate per adattarsi ad altre utilità. Beta 3 e precedenti avevano solo
block
,inline-block
,inline
enone
. Stable v4 aggiuntoflex
,inline-flex
,table
,table-row
etable-cell
. -
Risolto il problema con il rendering dell'anteprima di stampa nei browser con nuovi stili di stampa che specificano
@page
size
.
Beta 3 cambia
Sebbene la Beta 2 abbia visto la maggior parte delle nostre modifiche sostanziali durante la fase beta, ne abbiamo ancora alcune che devono essere affrontate nella versione Beta 3. Queste modifiche si applicano se stai aggiornando alla Beta 3 dalla Beta 2 o qualsiasi versione precedente di Bootstrap.
Varie
$thumbnail-transition
Rimossa la variabile inutilizzata . Non stavamo effettuando la transizione di nulla, quindi era solo codice extra.- Il pacchetto npm non include più file diversi dai nostri file sorgente e dist; se ti affidi a loro e stavi eseguendo i nostri script tramite la
node_modules
cartella, dovresti adattare il tuo flusso di lavoro.
Le forme
-
Ha riscritto le caselle di controllo e le radio sia personalizzate che predefinite. Ora, entrambi hanno una struttura HTML corrispondente (esterno
<div>
con fratello<input>
e<label>
) e gli stessi stili di layout (impostazione predefinita in pila, in linea con la classe del modificatore). Questo ci consente di definire lo stile dell'etichetta in base allo stato dell'input, semplificando il supporto per l'disabled
attributo (che in precedenza richiedeva una classe padre) e supportando meglio la nostra convalida del modulo.Come parte di questo, abbiamo cambiato il CSS per la gestione di più
background-image
messaggi di posta su caselle di controllo e radio di moduli personalizzati. In precedenza, l'elemento ora rimosso.custom-control-indicator
aveva il colore di sfondo, la sfumatura e l'icona SVG. Personalizzare il gradiente di sfondo significava sostituirli tutti ogni volta che ne dovevi cambiare solo uno. Ora abbiamo.custom-control-label::before
per il riempimento e il gradiente e.custom-control-label::after
gestisce l'icona.Per creare un controllo personalizzato in linea, aggiungi
.custom-control-inline
. -
Selettore aggiornato per i gruppi di pulsanti basati su input. Invece
[data-toggle="buttons"] { }
che per lo stile e il comportamento, utilizziamo l'data
attributo solo per i comportamenti JS e ci affidiamo a una nuova.btn-group-toggle
classe per lo stile. -
Rimosso
.col-form-legend
a favore di un leggermente migliorato.col-form-label
. In questo modo.col-form-label-sm
e.col-form-label-lg
può essere utilizzato sugli<legend>
elementi con facilità. -
Gli input di file personalizzati hanno ricevuto una modifica alla loro
$custom-file-text
variabile Sass. Non è più una mappa Sass annidata e ora alimenta solo una stringa: ilBrowse
pulsante poiché ora è l'unico pseudo-elemento generato dal nostro Sass. IlChoose file
testo ora deriva dal.custom-file-label
.
Gruppi di input
-
I componenti aggiuntivi del gruppo di input ora sono specifici per il loro posizionamento rispetto a un input. Abbiamo abbandonato
.input-group-addon
e.input-group-btn
per due nuove classi,.input-group-prepend
e.input-group-append
. È necessario utilizzare esplicitamente un'aggiunta o un anteposto ora, semplificando gran parte del nostro CSS. All'interno di un'accodamento o di una prepensione, posiziona i tuoi pulsanti come se esistessero altrove, ma avvolgi il testo in.input-group-text
. -
Gli stili di convalida sono ora supportati, così come più input (sebbene sia possibile convalidare solo un input per gruppo).
-
Le classi di dimensionamento devono essere sul genitore
.input-group
e non sui singoli elementi del modulo.
Beta 2 cambia
Durante la versione beta, miriamo a non avere modifiche sostanziali. Tuttavia, le cose non vanno sempre come previsto. Di seguito sono riportate le principali modifiche da tenere a mente quando si passa dalla Beta 1 alla Beta 2.
Rottura
- Rimossa
$badge-color
la variabile e il suo utilizzo su.badge
. Usiamo una funzione di contrasto del colore per scegliere uncolor
basato subackground-color
, quindi la variabile non è necessaria. grayscale()
Funzione rinominata ingray()
per evitare di rompere il conflitto con ilgrayscale
filtro nativo CSS.- Rinominato
.table-inverse
,.thead-inverse
, e.thead-default
in.*-dark
e.*-light
, corrispondente ai nostri schemi di colori usati altrove. - Le tabelle reattive ora generano classi per ogni punto di interruzione della griglia. Questo si discosta dalla Beta 1 in quanto quello
.table-responsive
che hai utilizzato è più simile a.table-responsive-md
. È ora possibile utilizzare.table-responsive
o.table-responsive-{sm,md,lg,xl}
secondo necessità. - Abbandonato il supporto di Bower poiché il gestore dei pacchetti è stato deprecato per le alternative (ad esempio, Yarn o npm). Vedere bower/bower#2298 per i dettagli.
- Bootstrap richiede ancora jQuery 1.9.1 o versioni successive, ma ti consigliamo di utilizzare la versione 3.x poiché i browser supportati da v3.x sono quelli supportati da Bootstrap più v3.x ha alcune correzioni di sicurezza.
- Rimossa la
.form-control-label
classe inutilizzata. Se hai utilizzato questa classe, era un duplicato della.col-form-label
classe che centrava verticalmente a<label>
con il suo input associato nei layout dei moduli orizzontali. - Modificato
color-yiq
da un mixin che includeva lacolor
proprietà a una funzione che restituisce un valore, consentendo di utilizzarlo per qualsiasi proprietà CSS. Ad esempio, invece dicolor-yiq(#000)
, dovresti scriverecolor: color-yiq(#000);
.
Mette in risalto
- Introdotto un nuovo
pointer-events
utilizzo sui modali. L'esterno.modal-dialog
passa attraverso gli eventi conpointer-events: none
la gestione dei clic personalizzata (consentendo di ascoltare solo.modal-backdrop
per eventuali clic) e quindi lo contrasta per l'effettivo.modal-content
conpointer-events: auto
.
Riepilogo
Ecco i big ticket di cui vorrai essere a conoscenza quando passi dalla v3 alla v4.
Supporto browser
- Eliminato il supporto per IE8, IE9 e iOS 6. v4 ora è solo IE10+ e iOS 7+. Per i siti che necessitano di uno di questi, utilizzare v3.
- Aggiunto il supporto ufficiale per il browser e WebView di Android v5.0 Lollipop. Le versioni precedenti del browser Android e WebView rimangono supportate solo in modo non ufficiale.
Cambiamenti globali
- Flexbox è abilitato per impostazione predefinita. In generale questo significa un allontanamento dai galleggianti e altro attraverso i nostri componenti.
- Passato da Less a Sass per i nostri file CSS di origine.
- Passata da
px
arem
come unità CSS principale, anche se i pixel sono ancora utilizzati per le query multimediali e il comportamento della griglia poiché le viste del dispositivo non sono influenzate dalle dimensioni del tipo. - Dimensione carattere globale aumentata da
14px
a16px
. - Livelli di griglia rinnovati per aggiungere una quinta opzione (indirizzando dispositivi più piccoli a
576px
e sotto) e rimosso l'-xs
infisso da quelle classi. Esempio:.col-6.col-sm-4.col-md-3
. - Sostituito il tema opzionale separato con opzioni configurabili tramite variabili SCSS (ad esempio,
$enable-gradients: true
). - Sistema di build revisionato per utilizzare una serie di script npm invece di Grunt. Vedi
package.json
tutti gli script o il readme del nostro progetto per le esigenze di sviluppo locale. - L'utilizzo non reattivo di Bootstrap non è più supportato.
- Eliminato il Customizer online a favore di una documentazione di installazione più ampia e build personalizzate.
- Aggiunte dozzine di nuove classi di utilità per coppie di valori proprietà CSS comuni e scorciatoie per spaziatura margini/padding.
Sistema a griglia
- Spostato in Flexbox.
- Aggiunto supporto per flexbox nei mixin della griglia e nelle classi predefinite.
- Come parte di flexbox, includeva il supporto per le classi di allineamento verticale e orizzontale.
- Nomi delle classi della griglia aggiornati e un nuovo livello della griglia.
- Aggiunto un nuovo
sm
livello di griglia di seguito768px
per un controllo più granulare. Ora abbiamoxs
,sm
,md
,lg
exl
. Ciò significa anche che ogni livello è stato aumentato di un livello (quindi.col-md-6
in v3 è ora.col-lg-6
in v4). xs
le classi grid sono state modificate per non richiedere che l'infisso rappresenti in modo più accurato che iniziano ad applicare gli stili amin-width: 0
e non a un valore pixel impostato. Invece di.col-xs-6
, è ora.col-6
. Tutti gli altri livelli della griglia richiedono l'infisso (ad esempio,sm
).
- Aggiunto un nuovo
- Dimensioni griglia, mixin e variabili aggiornati.
- Le grondaie della griglia ora hanno una mappa Sass in modo da poter specificare larghezze di grondaia specifiche in ogni punto di interruzione.
- Mixin griglia aggiornati per utilizzare un
make-col-ready
mixin di preparazione e amake-col
per impostareflex
emax-width
per il dimensionamento delle singole colonne. - Modificati i punti di interruzione delle query multimediali del sistema della griglia e le larghezze dei contenitori per tenere conto del nuovo livello della griglia e garantire che le colonne siano equamente divisibili per
12
la larghezza massima. - I punti di interruzione della griglia e le larghezze dei contenitori ora vengono gestiti tramite le mappe Sass (
$grid-breakpoints
e$container-max-widths
) invece di una manciata di variabili separate. Questi sostituiscono@screen-*
completamente le variabili e consentono di personalizzare completamente i livelli della griglia. - Anche le query sui media sono cambiate. Invece di ripetere le nostre dichiarazioni di media query con lo stesso valore ogni volta, ora abbiamo
@include media-breakpoint-up/down/only
. Ora, invece di scrivere@media (min-width: @screen-sm-min) { ... }
, puoi scrivere@include media-breakpoint-up(sm) { ... }
.
Componenti
- Pannelli, miniature e pozzi eliminati per un nuovo componente onnicomprensivo, le carte .
- Rilasciato il carattere dell'icona Glyphicons. Se hai bisogno di icone, alcune opzioni sono:
- la versione a monte di Glyphicons
- Octicons
- Carattere fantastico
- Vedere la pagina Estendi per un elenco di alternative. Hai ulteriori suggerimenti? Si prega di aprire un problema o PR.
- Rilasciato il plug-in Affix jQuery.
- Si consiglia di utilizzare
position: sticky
invece. Vedere la voce HTML5 Please per i dettagli e le raccomandazioni specifiche per il polyfill. Un suggerimento è quello di utilizzare una@supports
regola per implementarla (es.@supports (position: sticky) { ... }
) - Se stavi utilizzando Affix per applicare ulteriori non
position
stili, i polyfill potrebbero non supportare il tuo caso d'uso. Un'opzione per tali usi è la libreria ScrollPos-Styler di terze parti.
- Si consiglia di utilizzare
- Rilasciato il componente cercapersone poiché si trattava essenzialmente di pulsanti leggermente personalizzati.
- È stato eseguito il refactoring di quasi tutti i componenti per utilizzare più selettori di classe non nidificati anziché selettori figlio eccessivamente specifici.
Per componente
Questo elenco evidenzia le modifiche chiave per componente tra v3.xx e v4.0.0.
Riavviare
Una novità di Bootstrap 4 è Reboot , un nuovo foglio di stile che si basa su Normalize con i nostri stili di ripristino un po' supponenti. I selettori che appaiono in questo file usano solo elementi, non ci sono classi qui. Questo isola i nostri stili di ripristino dai nostri stili di componenti per un approccio più modulare. Alcuni dei reset più importanti inclusi sono la box-sizing: border-box
modifica, il passaggio da unità em
a rem
molti elementi, stili di collegamento e molti reset di elementi del modulo.
Tipografia
- Spostate tutte le
.text-
utilità nel_utilities.scss
file. - Rilasciato
.page-header
poiché i suoi stili possono essere applicati tramite utilità. .dl-horizontal
è stato abbandonato. Invece, usa e usa.row
le<dl>
classi di colonne della griglia (o mixin) su suoi<dt>
e<dd>
figli.- virgolette ridisegnate, spostando i loro stili
<blockquote>
dall'elemento a una singola classe,.blockquote
. Eliminato il.blockquote-reverse
modificatore per le utilità di testo. .list-inline
ora richiede che agli elementi dell'elenco figli sia.list-inline-item
applicata la nuova classe.
immagini
- Rinominato
.img-responsive
in.img-fluid
. - Rinominato
.img-rounded
in.rounded
- Rinominato
.img-circle
in.rounded-circle
Tabelle
- Quasi tutte le istanze del
>
selettore sono state rimosse, il che significa che le tabelle nidificate ora erediteranno automaticamente gli stili dai loro genitori. Ciò semplifica notevolmente i nostri selettori e le potenziali personalizzazioni. - Rinominato
.table-condensed
per.table-sm
coerenza. - Aggiunta una nuova
.table-inverse
opzione. - Aggiunti modificatori dell'intestazione della tabella:
.thead-default
e.thead-inverse
. - Classi contestuali rinominate per avere un
.table-
-prefisso. Quindi.active
,.success
,.warning
,.danger
e.info
a.table-active
,.table-success
,.table-warning
,.table-danger
e.table-info
.
Le forme
- L'elemento spostato viene reimpostato sul
_reboot.scss
file. - Rinominato
.control-label
in.col-form-label
. - Rinominato
.input-lg
e.input-sm
to.form-control-lg
e.form-control-sm
, rispettivamente. - Classi abbandonate
.form-group-*
per semplicità. Usa.form-control-*
invece le classi ora. - Eliminato
.help-block
e sostituito con.form-text
per il testo della guida a livello di blocco. Per il testo della guida in linea e altre opzioni flessibili, utilizzare classi di utilità come.text-muted
. - Caduto
.radio-inline
e.checkbox-inline
. - Consolidato
.checkbox
e.radio
in.form-check
e le varie.form-check-*
classi. - Forme orizzontali revisionate:
- Abbandonato il
.form-horizontal
requisito di classe. .form-group
non applica più gli stili dal.row
mixin via, quindi.row
è ora richiesto per i layout a griglia orizzontali (ad esempio,<div class="form-group row">
).- Aggiunta una nuova
.col-form-label
classe per centrare verticalmente le etichette con.form-control
s. - Aggiunte nuove
.form-row
per layout di moduli compatti con le classi della griglia (scambia il tuo.row
per un.form-row
e vai).
- Abbandonato il
- Aggiunto supporto per moduli personalizzati (per caselle di controllo, radio, selezioni e input di file).
- Sostituite le classi
.has-error
,.has-warning
e.has-success
con la convalida dei moduli HTML5 tramite CSS:invalid
e:valid
pseudo-classi. - Rinominato
.form-control-static
in.form-control-plaintext
.
Bottoni
- Rinominato
.btn-default
in.btn-secondary
. - La
.btn-xs
classe è stata completamente eliminata poiché.btn-sm
è proporzionalmente molto più piccola di quella della v3. - La funzione del pulsante
button.js
con stato del plug- in jQuery è stata eliminata. Ciò include i metodi$().button(string)
e .$().button('reset')
Ti consigliamo invece di utilizzare un po' di JavaScript personalizzato, che avrà il vantaggio di comportarsi esattamente come desideri.- Si noti che le altre funzionalità del plug-in (caselle di controllo dei pulsanti, pulsanti di opzione, pulsanti a commutazione singola) sono state mantenute nella v4.
- Cambia pulsanti'
[disabled]
in:disabled
IE9+ supporta:disabled
. Tuttaviafieldset[disabled]
è ancora necessario perché i fieldset nativi disabilitati sono ancora difettosi in IE11 .
Gruppo di pulsanti
- Componente riscritto con flexbox.
- Rimosso
.btn-group-justified
. In sostituzione puoi usare<div class="btn-group d-flex" role="group"></div>
come wrapper gli elementi con.w-100
. - La classe è stata completamente abbandonata a
.btn-group-xs
causa della rimozione di.btn-xs
. - Rimossa la spaziatura esplicita tra i gruppi di pulsanti nelle barre degli strumenti dei pulsanti; usa le utilità di margine ora.
- Documentazione migliorata per l'utilizzo con altri componenti.
Dropdown
- Passato da selettori padre a classi singolari per tutti i componenti, modificatori, ecc.
- Stili a discesa semplificati per non essere più spediti con frecce rivolte verso l'alto o verso il basso attaccate al menu a discesa.
- I menu a discesa possono essere creati con
<div>
s o<ul>
s ora. - Stili e markup a discesa ricostruiti per fornire un supporto integrato semplice per elementi
<a>
a<button>
discesa basati su. - Rinominato
.divider
in.dropdown-divider
. - Gli elementi a discesa ora richiedono
.dropdown-item
. - Gli interruttori a discesa non richiedono più un esplicito
<span class="caret"></span>
; questo è ora fornito automaticamente tramite CSS::after
su.dropdown-toggle
.
Sistema a griglia
- Aggiunto un nuovo
576px
punto di interruzione della griglia comesm
, il che significa che ora ci sono cinque livelli totali (xs
,sm
,md
,lg
exl
). - Rinominate le classi del modificatore di griglia reattivo da
.col-{breakpoint}-{modifier}-{size}
a.{modifier}-{breakpoint}-{size}
per classi di griglia più semplici. - Classi modificatori push e pull eliminate per le nuove classi basate su flexbox
order
. Ad esempio, invece di.col-8.push-4
e.col-4.pull-8
, useresti.col-8.order-2
e.col-4.order-1
. - Aggiunte classi di utilità flexbox per il sistema e i componenti della griglia.
Elenca i gruppi
- Componente riscritto con flexbox.
- Sostituita
a.list-group-item
con una classe esplicita,.list-group-item-action
, per lo stile delle versioni dei collegamenti e dei pulsanti degli elementi del gruppo di elenchi. - Aggiunta
.list-group-flush
classe per l'uso con le carte.
Modale
- Componente riscritto con flexbox.
- Dato il passaggio a flexbox, è probabile che l'allineamento delle icone di eliminazione nell'intestazione sia interrotto poiché non utilizziamo più i float. Il contenuto mobile viene prima, ma con flexbox non è più così. Aggiorna le icone di eliminazione in modo che vengano dopo i titoli modali da correggere.
- L'
remote
opzione (che potrebbe essere utilizzata per caricare e inserire automaticamente contenuto esterno in un modale) e l'loaded.bs.modal
evento corrispondente sono stati rimossi. Ti consigliamo invece di utilizzare modelli lato client o un framework di associazione dati o di chiamare tu stesso jQuery.load .
navi
- Componente riscritto con flexbox.
- Eliminati quasi tutti i
>
selettori per uno stile più semplice tramite classi non nidificate. - Invece di selettori specifici per HTML come
.nav > li > a
, utilizziamo classi separate per.nav
s,.nav-item
s e.nav-link
s. Ciò rende il tuo codice HTML più flessibile e allo stesso tempo aumenta l'estendibilità.
barra di navigazione
La barra di navigazione è stata interamente riscritta in flexbox con un supporto migliorato per allineamento, reattività e personalizzazione.
- I comportamenti reattivi della barra di navigazione vengono ora applicati alla
.navbar
classe tramite il campo richiesto.navbar-expand-{breakpoint}
in cui scegli dove comprimere la barra di navigazione. In precedenza si trattava di una modifica meno variabile e richiedeva la ricompilazione. .navbar-default
è ora.navbar-light
, anche se.navbar-dark
rimane lo stesso. Uno di questi è richiesto su ciascuna barra di navigazione. Tuttavia, queste classi non impostano piùbackground-color
s; invece essenzialmente influiscono solo sucolor
.- Le barre di navigazione ora richiedono una dichiarazione in background di qualche tipo. Scegli tra le nostre utilità in background (
.bg-*
) o impostane una tua con le classi light/inverse sopra per una personalizzazione pazzesca . - Dati gli stili flexbox, le barre di navigazione ora possono utilizzare le utilità flexbox per semplificare le opzioni di allineamento.
.navbar-toggle
è ora.navbar-toggler
e ha stili e markup interni diversi (non più tre<span>
s).- Abbandonato
.navbar-form
completamente la classe. Non è più necessario; invece, usa.form-inline
e applica le utilità di margine secondo necessità. - Le barre di navigazione non includono più
margin-bottom
oborder-radius
per impostazione predefinita. Utilizzare le utilità secondo necessità. - Tutti gli esempi con le barre di navigazione sono stati aggiornati per includere un nuovo markup.
Impaginazione
- Componente riscritto con flexbox.
- Classi esplicite (
.page-item
,.page-link
) sono ora richieste ai discendenti di.pagination
s - Rilasciato
.pager
completamente il componente perché era poco più che pulsanti di contorno personalizzati.
Briciole di pane
- Una classe esplicita,
.breadcrumb-item
, è ora richiesta ai discendenti di.breadcrumb
s
Etichette e distintivi
- Consolidare
.label
e.badge
disambiguare<label>
dall'elemento e semplificare le relative componenti. - Aggiunto
.badge-pill
come modificatore per l'aspetto arrotondato della "pillola". - I badge non vengono più spostati automaticamente nei gruppi di elenchi e in altri componenti. Le classi di utilità ora sono necessarie per questo.
.badge-default
è stato eliminato e.badge-secondary
aggiunto per abbinare le classi di modificatori di componenti utilizzate altrove.
Pannelli, miniature e pozzi
Eliminato completamente per il nuovo componente della carta.
Pannelli
.panel
a.card
, ora costruito con flexbox..panel-default
rimosso e nessuna sostituzione..panel-group
rimosso e nessuna sostituzione..card-group
non è un sostituto, è diverso..panel-heading
a.card-header
.panel-title
a.card-title
. A seconda dell'aspetto desiderato, potresti anche voler utilizzare elementi di intestazione o classi (es<h3>
. ,.h3
) o elementi o classi in grassetto (es .<strong>
,<b>
,.font-weight-bold
). Si noti che.card-title
, sebbene abbia un nome simile, produce un aspetto diverso da.panel-title
..panel-body
a.card-body
.panel-footer
a.card-footer
.panel-primary
,.panel-success
,.panel-info
,.panel-warning
, e.panel-danger
sono stati eliminati per.bg-
,.text-
, e.border
le utilità generate dalla nostra$theme-colors
mappa Sass.
Progresso
.progress-bar-*
Classi contestuali sostituite con.bg-*
utilità. Ad esempio,class="progress-bar progress-bar-danger"
diventaclass="progress-bar bg-danger"
.- Sostituito
.active
per le barre di avanzamento animate con.progress-bar-animated
.
Giostra
- Revisionato l'intero componente per semplificare il design e lo styling. Abbiamo meno stili da sovrascrivere, nuovi indicatori e nuove icone.
- Tutti i CSS sono stati annullati e rinominati, assicurando che ogni classe abbia il prefisso
.carousel-
.- Per gli elementi del carosello,
.next
,.prev
,.left
, e.right
ora sono.carousel-item-next
,.carousel-item-prev
,.carousel-item-left
e.carousel-item-right
. .item
è anche adesso.carousel-item
.- Per i controlli prev/next,
.carousel-control.right
e.carousel-control.left
sono ora.carousel-control-next
e.carousel-control-prev
, il che significa che non richiedono più una classe base specifica.
- Per gli elementi del carosello,
- Rimosso tutto lo stile reattivo, rinviando alle utilità (ad es. mostrare didascalie su determinate finestre) e agli stili personalizzati secondo necessità.
- Rimosse le sostituzioni delle immagini per le immagini negli elementi del carosello, rinviando alle utilità.
- Modificato l'esempio Carousel per includere il nuovo markup e gli stili.
Tabelle
- Rimosso il supporto per le tabelle nidificate con stili. Tutti gli stili di tabella sono ora ereditati nella v4 per i selettori più semplici.
- Aggiunta la variante della tabella inversa.
Utilità
- Visualizza, nascosto e altro:
- Rese reattive le utilità di visualizzazione (ad es.
.d-none
ed-{sm,md,lg,xl}-none
). - Eliminata la maggior parte delle
.hidden-*
utilità per le nuove utilità di visualizzazione . Ad esempio, invece di.hidden-sm-up
, usa.d-sm-none
. Rinominate le.hidden-print
utilità per utilizzare lo schema di denominazione delle utilità di visualizzazione. Maggiori informazioni nella sezione Utilità reattive di questa pagina. - Aggiunte
.float-{sm,md,lg,xl}-{left,right,none}
classi per float reattivi e rimosse.pull-left
e.pull-right
poiché sono ridondanti per.float-left
e.float-right
.
- Rese reattive le utilità di visualizzazione (ad es.
- Tipo:
- Aggiunte variazioni reattive alle nostre classi di allineamento del testo
.text-{sm,md,lg,xl}-{left,center,right}
.
- Aggiunte variazioni reattive alle nostre classi di allineamento del testo
- Allineamento e spaziatura:
- Aggiunti nuovi margini reattivi e utilità di riempimento per tutti i lati, oltre a abbreviazioni verticali e orizzontali.
- Aggiunto carico di barche di utilità flexbox .
- Abbandonato
.center-block
per la nuova.mx-auto
classe.
- Clearfix aggiornato per eliminare il supporto per le versioni precedenti del browser.
Prefisso fornitore mixins
I mixin del prefisso del fornitore di Bootstrap 3 , che erano deprecati nella v3.2.0, sono stati rimossi in Bootstrap 4. Poiché utilizziamo Autoprefixer , non sono più necessari.
Rimossi i seguenti mixin: 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
Documentazione
Anche la nostra documentazione ha ricevuto un aggiornamento su tutta la linea. Ecco il basso:
- Stiamo ancora usando Jekyll, ma abbiamo dei plugin nel mix:
bugify.rb
viene utilizzato per elencare in modo efficiente le voci sulla nostra pagina dei bug del browser .example.rb
è un fork personalizzato del plug-in predefinitohighlight.rb
, che consente una gestione più semplice del codice di esempio.callout.rb
è un fork personalizzato simile, ma progettato per i nostri callout di documenti speciali.- jekyll-toc viene utilizzato per generare il nostro sommario.
- Tutto il contenuto dei documenti è stato riscritto in Markdown (invece che in HTML) per una modifica più semplice.
- Le pagine sono state riorganizzate per un contenuto più semplice e una gerarchia più accessibile.
- Siamo passati da CSS normale a SCSS per sfruttare appieno le variabili, i mixin e altro di Bootstrap.
Utilità reattive
Tutte @screen-
le variabili sono state rimosse nella v4.0.0. Utilizzare invece i mixin media-breakpoint-up()
, media-breakpoint-down()
, o Sass o la mappa Sass.media-breakpoint-only()
$grid-breakpoints
Le nostre classi di utilità reattive sono state in gran parte rimosse a favore di display
utilità esplicite.
- Le classi
.hidden
e.show
sono state rimosse perché erano in conflitto con jQuery$(...).hide()
e$(...).show()
metodi. Prova invece a cambiare l'[hidden]
attributo o usa stili inline comestyle="display: none;"
estyle="display: block;"
. - Tutte le
.hidden-
classi sono state rimosse, ad eccezione delle utilità di stampa che sono state rinominate.- Rimosso dalla 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
- Rimosso dagli 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
- Rimosso dalla v3:
- Le utilità di stampa non iniziano più con
.hidden-
o.visible-
, ma con.d-print-
.- Vecchi nomi:
.visible-print-block
,.visible-print-inline
,.visible-print-inline-block
,.hidden-print
- Nuove classi:
.d-print-block
,.d-print-inline
,.d-print-inline-block
,.d-print-none
- Vecchi nomi:
Invece di usare .visible-*
classi esplicite, rendi visibile un elemento semplicemente non nascondendolo a quella dimensione dello schermo. Puoi combinare una .d-*-none
classe con una .d-*-block
classe per mostrare un elemento solo su un determinato intervallo di dimensioni dello schermo (es. .d-none.d-md-block.d-xl-none
mostra l'elemento solo su dispositivi di medie e grandi dimensioni).
Tieni presente che le modifiche ai punti di interruzione della griglia nella v4 significano che dovrai aumentare di un punto di interruzione per ottenere gli stessi risultati. Le nuove classi di utilità reattive non tentano di accogliere casi meno comuni in cui la visibilità di un elemento non può essere espressa come un unico intervallo contiguo di dimensioni del viewport; dovrai invece utilizzare CSS personalizzati in questi casi.