Migration auf v4
Bootstrap 4 ist eine umfassende Neufassung des gesamten Projekts. Die bemerkenswertesten Änderungen sind unten zusammengefasst, gefolgt von spezifischeren Änderungen an relevanten Komponenten.
Stabile Änderungen
Beim Wechsel von Beta 3 zu unserer stabilen v4.x-Version gibt es keine bahnbrechenden Änderungen, aber einige bemerkenswerte Änderungen.
-
Defekte Druckdienstprogramme behoben. Zuvor hat die Verwendung einer
.d-print-*
Klasse unerwarteterweise jede andere.d-*
Klasse außer Kraft gesetzt. Jetzt stimmen sie mit unseren anderen Anzeigedienstprogrammen überein und gelten nur für dieses Medium (@media print
). -
Erweiterte verfügbare Dienstprogramme für die Druckanzeige, um mit anderen Dienstprogrammen übereinzustimmen. Beta 3 und älter hatten nur
block
,inline-block
,inline
undnone
. Stable v4 hinzugefügtflex
,inline-flex
,table
,table-row
undtable-cell
. -
Das Rendern der Druckvorschau in Browsern mit neuen Druckstilen, die angeben, wurde korrigiert
@page
size
.
Beta 3-Änderungen
Während Beta 2 den Großteil unserer Breaking Changes während der Beta-Phase sah, haben wir noch einige, die in der Beta 3-Version behoben werden mussten. Diese Änderungen gelten, wenn Sie von Beta 2 oder einer älteren Version von Bootstrap auf Beta 3 aktualisieren.
Sonstig
- Die unbenutzte
$thumbnail-transition
Variable entfernt. Wir haben nichts umgestellt, also war es nur zusätzlicher Code. - Das npm-Paket enthält keine anderen Dateien mehr als unsere Quell- und dist-Dateien; Wenn Sie sich darauf verlassen haben und unsere Skripte über den
node_modules
Ordner ausgeführt haben, sollten Sie Ihren Workflow anpassen.
Formen
-
Sowohl benutzerdefinierte als auch standardmäßige Kontrollkästchen und Radios neu geschrieben. Jetzt haben beide eine übereinstimmende HTML-Struktur (äußere
<div>
mit Geschwistern<input>
und<label>
) und dieselben Layoutstile (gestapelte Standardeinstellung, inline mit Modifikatorklasse). Dadurch können wir die Bezeichnung basierend auf dem Status der Eingabe gestalten, die Unterstützung für dasdisabled
Attribut vereinfachen (bisher war eine übergeordnete Klasse erforderlich) und unsere Formularvalidierung besser unterstützen.Als Teil davon haben wir das CSS für die Verwaltung mehrerer
background-image
s in benutzerdefinierten Formular-Kontrollkästchen und Optionsfeldern geändert. Zuvor hatte das jetzt entfernte.custom-control-indicator
Element die Hintergrundfarbe, den Farbverlauf und das SVG-Symbol. Das Anpassen des Hintergrundverlaufs bedeutete, dass alle diese jedes Mal ersetzt werden mussten, wenn Sie nur einen ändern mussten. Jetzt haben wir.custom-control-label::before
für die Füllung und den Farbverlauf und.custom-control-label::after
behandeln das Symbol.Um eine benutzerdefinierte Inline-Prüfung vorzunehmen, fügen Sie hinzu
.custom-control-inline
. -
Aktualisierter Selektor für eingabebasierte Schaltflächengruppen. Anstatt
[data-toggle="buttons"] { }
für Stil und Verhalten verwenden wir dasdata
Attribut nur für JS-Verhalten und verlassen uns auf eine neue.btn-group-toggle
Klasse für das Styling. -
Entfernt
.col-form-legend
zugunsten einer leicht verbesserten.col-form-label
. Auf diese Weise.col-form-label-sm
und.col-form-label-lg
kann problemlos auf<legend>
Elementen verwendet werden. -
Benutzerdefinierte Dateieingaben erhielten eine Änderung an ihrer
$custom-file-text
Sass-Variablen. Es ist keine verschachtelte Sass-Karte mehr und versorgt jetzt nur noch eine Zeichenfolge – dieBrowse
Schaltfläche ist jetzt das einzige Pseudo-Element, das von unserem Sass generiert wird. DerChoose file
Text kommt jetzt aus der.custom-file-label
.
Eingangsgruppen
-
Eingabegruppen-Addons sind jetzt spezifisch für ihre Platzierung relativ zu einer Eingabe. Wir haben
.input-group-addon
und.input-group-btn
für zwei neue Klassen.input-group-prepend
und.input-group-append
. Sie müssen jetzt explizit ein Anhängen oder Präpendieren verwenden, was einen Großteil unseres CSS vereinfacht. Platzieren Sie Ihre Schaltflächen innerhalb eines Anhängens oder Voranstellens so, wie sie auch anderswo existieren würden, aber brechen Sie den Text in.input-group-text
. -
Validierungsstile werden jetzt ebenso unterstützt wie mehrere Eingaben (obwohl Sie nur eine Eingabe pro Gruppe validieren können).
-
Größenklassen müssen sich auf dem übergeordneten
.input-group
Element befinden und nicht auf den einzelnen Formularelementen.
Beta2-Änderungen
Während der Beta-Phase streben wir danach, keine bahnbrechenden Änderungen zu haben. Allerdings läuft nicht immer alles wie geplant. Nachfolgend sind die wichtigsten Änderungen aufgeführt, die Sie beim Wechsel von Beta 1 zu Beta 2 beachten sollten.
Brechen
$badge-color
Variable und ihre Verwendung auf entfernt.badge
. Wir verwenden eine Farbkontrastfunktion, um acolor
basierend auf auszuwählenbackground-color
, sodass die Variable unnötig ist.grayscale()
Funktion umbenannt ingray()
, um Konflikte mit dem nativen CSSgrayscale
-Filter zu vermeiden..table-inverse
,.thead-inverse
, und.thead-default
in.*-dark
und umbenannt.*-light
, passend zu unseren anderswo verwendeten Farbschemata.- Responsive Tabellen generieren jetzt Klassen für jeden Grid-Breakpoint. Dies unterscheidet sich von Beta 1 dadurch, dass das
.table-responsive
, was Sie bisher verwendet haben, eher wie.table-responsive-md
. Sie können jetzt.table-responsive
oder.table-responsive-{sm,md,lg,xl}
nach Bedarf verwenden. - Gefallene Bower-Unterstützung, da der Paketmanager für Alternativen (z. B. Yarn oder npm) veraltet ist. Siehe Bower/bower#2298 für Details.
- Bootstrap erfordert immer noch jQuery 1.9.1 oder höher, aber es wird empfohlen, Version 3.x zu verwenden, da die unterstützten Browser von v3.x diejenigen sind, die Bootstrap unterstützt, und v3.x einige Sicherheitskorrekturen enthält.
- Die unbenutzte
.form-control-label
Klasse wurde entfernt. Wenn Sie diese Klasse verwendet haben, war sie ein Duplikat der Klasse, die a mit der zugehörigen Eingabe in horizontalen Formularlayouts.col-form-label
vertikal zentriert hat.<label>
color-yiq
Das wurde von einem Mixin, das die Eigenschaft enthielt, in eine Funktion geändertcolor
, die einen Wert zurückgibt, sodass Sie es für jede CSS-Eigenschaft verwenden können. Anstelle voncolor-yiq(#000)
würden Sie beispielsweise schreibencolor: color-yiq(#000);
.
Höhepunkte
- Neue
pointer-events
Verwendung für Modale eingeführt. Das Äußere.modal-dialog
durchläuft Ereignisse mitpointer-events: none
für eine benutzerdefinierte Klickbehandlung (wodurch es möglich ist, nur auf.modal-backdrop
Klicks zu hören) und wirkt dann für das eigentliche.modal-content
mit entgegenpointer-events: auto
.
Zusammenfassung
Hier sind die wichtigsten Punkte, die Sie beachten sollten, wenn Sie von v3 zu v4 wechseln.
Browserunterstützung
- Die Unterstützung für IE8, IE9 und iOS 6 wurde eingestellt. v4 ist jetzt nur noch IE10+ und iOS 7+. Verwenden Sie für Sites, die eines davon benötigen, v3.
- Offizielle Unterstützung für den Browser und WebView von Android v5.0 Lollipop hinzugefügt. Frühere Versionen des Android-Browsers und WebView werden weiterhin nur inoffiziell unterstützt.
Globale Veränderungen
- Flexbox ist standardmäßig aktiviert. Im Allgemeinen bedeutet dies eine Abkehr von Schwimmern und mehr bei unseren Komponenten.
- Für unsere Quell-CSS-Dateien von Less auf Sass umgestellt.
- Von
px
zurem
als unsere primäre CSS-Einheit gewechselt, obwohl Pixel immer noch für Medienabfragen und das Rasterverhalten verwendet werden, da Geräteansichtsfenster nicht von der Schriftgröße beeinflusst werden. - Die globale Schriftgröße wurde von
14px
auf erhöht16px
. - Überarbeitete Grid-Ebenen, um eine fünfte Option hinzuzufügen (Adressierung kleinerer Geräte bei
576px
und darunter) und das-xs
Infix aus diesen Klassen entfernt. Beispiel:.col-6.col-sm-4.col-md-3
. - Das separate optionale Thema wurde durch konfigurierbare Optionen über SCSS-Variablen (z . B.
$enable-gradients: true
) ersetzt. - Das Build-System wurde überarbeitet, um eine Reihe von npm-Skripten anstelle von Grunt zu verwenden. Siehe
package.json
für alle Skripte oder unsere Projekt-Readme für lokale Entwicklungsanforderungen. - Die nicht reagierende Verwendung von Bootstrap wird nicht mehr unterstützt.
- Der Online-Customizer wurde zugunsten einer umfassenderen Setup-Dokumentation und angepasster Builds eingestellt.
- Dutzende neuer Hilfsklassen für gängige CSS-Eigenschaft-Wert-Paare und Tastenkombinationen für Rand-/Padding-Abstände hinzugefügt.
Grid-System
- Auf FlexBox verschoben.
- Unterstützung für Flexbox in den Grid-Mixins und vordefinierten Klassen hinzugefügt.
- Als Teil von Flexbox enthaltene Unterstützung für vertikale und horizontale Ausrichtungsklassen.
- Aktualisierte Grid-Klassennamen und eine neue Grid-Ebene.
- Für eine genauere Steuerung wurde unten eine neue
sm
Rasterebene hinzugefügt768px
. Wir haben jetztxs
,sm
,md
,lg
, undxl
. Das bedeutet auch, dass jede Stufe um eine Stufe angehoben wurde (also.col-md-6
in v3 ist jetzt.col-lg-6
in v4). xs
Grid-Klassen wurden so geändert, dass das Infix nicht erforderlich ist, um genauer darzustellen, dass sie beginnen, Stile beimin-width: 0
und nicht bei einem festgelegten Pixelwert anzuwenden. Anstelle von.col-xs-6
ist es jetzt.col-6
. Alle anderen Grid-Ebenen erfordern das Infix (z . B.sm
).
- Für eine genauere Steuerung wurde unten eine neue
- Rastergrößen, Mixins und Variablen aktualisiert.
- Gitterrinnen haben jetzt eine Sass-Karte, sodass Sie an jedem Haltepunkt bestimmte Rinnenbreiten angeben können.
- Grid-Mixins aktualisiert, um ein
make-col-ready
Prep-Mixin und einmake-col
zum Festlegen vonflex
undmax-width
für die individuelle Spaltengröße zu verwenden. - Grid-System-Medienabfrage-Breakpoints und Containerbreiten geändert, um neue Grid-Ebenen zu berücksichtigen und sicherzustellen, dass Spalten
12
bei ihrer maximalen Breite gleichmäßig durch teilbar sind. - Grid-Breakpoints und Container-Breiten werden jetzt über Sass-Maps (
$grid-breakpoints
und$container-max-widths
) statt einer Handvoll separater Variablen behandelt. Diese ersetzen die@screen-*
Variablen vollständig und ermöglichen es Ihnen, die Rasterebenen vollständig anzupassen. - Auch die Medienabfragen haben sich geändert. Anstatt unsere Media-Query-Deklarationen jedes Mal mit demselben Wert zu wiederholen, haben wir jetzt
@include media-breakpoint-up/down/only
. Anstatt zu schreiben@media (min-width: @screen-sm-min) { ... }
, können Sie jetzt schreiben@include media-breakpoint-up(sm) { ... }
.
Komponenten
- Weggelassene Panels, Thumbnails und Wells für eine neue allumfassende Komponente, Karten .
- Die Icon-Schriftart Glyphicons wurde entfernt. Wenn Sie Symbole benötigen, sind einige Optionen:
- die Upstream-Version von Glyphicons
- Oktikone
- Schriftart genial
- Auf der Seite Erweitern finden Sie eine Liste mit Alternativen. Haben Sie zusätzliche Vorschläge? Bitte öffnen Sie ein Problem oder PR.
- Das Affix jQuery-Plugin wurde gelöscht.
- Wir empfehlen
position: sticky
stattdessen die Verwendung. Einzelheiten und spezifische Polyfill-Empfehlungen finden Sie im HTML5 Please-Eintrag . Ein Vorschlag ist, eine@supports
Regel für die Implementierung zu verwenden (z. B.@supports (position: sticky) { ... }
) - Wenn Sie Affix verwendet haben, um zusätzliche Nicht-
position
Stile anzuwenden, unterstützen die Polyfills Ihren Anwendungsfall möglicherweise nicht. Eine Option für solche Verwendungen ist die ScrollPos-Styler- Bibliothek eines Drittanbieters.
- Wir empfehlen
- Die Pager-Komponente wurde entfernt, da es sich im Wesentlichen um leicht angepasste Schaltflächen handelte.
- Nahezu alle Komponenten wurden umgestaltet , um mehr nicht verschachtelte Klassenselektoren anstelle von überspezifischen untergeordneten Selektoren zu verwenden.
Nach Komponente
Diese Liste hebt wichtige Änderungen nach Komponenten zwischen v3.xx und v4.0.0 hervor.
Neustart
Neu bei Bootstrap 4 ist Reboot , ein neues Stylesheet, das auf Normalize mit unseren eigenen etwas eigenwilligen Reset-Stilen aufbaut. Selektoren, die in dieser Datei vorkommen, verwenden nur Elemente – hier gibt es keine Klassen. Dies isoliert unsere Reset-Stile von unseren Komponentenstilen für einen modulareren Ansatz. Einige der wichtigsten Zurücksetzungen, die dies beinhaltet, sind die box-sizing: border-box
Änderung, der Wechsel von em
zu rem
Einheiten bei vielen Elementen, Link-Stile und viele Zurücksetzungen von Formularelementen.
Typografie
- Alle
.text-
Dienstprogramme in die_utilities.scss
Datei verschoben. - Gelöscht
.page-header
, da seine Stile über Dienstprogramme angewendet werden können. .dl-horizontal
wurde fallen gelassen. Verwenden Sie stattdessen.row
on-<dl>
und Grid-Spaltenklassen (oder Mixins) für seine<dt>
und untergeordneten Elemente<dd>
.- Blockquotes wurden neu gestaltet und ihre Stile vom
<blockquote>
Element in eine einzelne Klasse verschoben,.blockquote
. Der.blockquote-reverse
Modifikator für Text-Utilities wurde entfernt. .list-inline
erfordert jetzt, dass die neue Klasse auf die untergeordneten Listenelemente.list-inline-item
angewendet wird.
Bilder
- Umbenannt
.img-responsive
in.img-fluid
. - Umbenannt
.img-rounded
in.rounded
- Umbenannt
.img-circle
in.rounded-circle
Tische
- Fast alle Instanzen des
>
Selektors wurden entfernt, was bedeutet, dass verschachtelte Tabellen jetzt automatisch Stile von ihren Eltern erben. Dies vereinfacht unsere Selektoren und mögliche Anpassungen erheblich. - Aus Konsistenzgründen
.table-condensed
in umbenannt ..table-sm
- Neue
.table-inverse
Option hinzugefügt. - Modifikatoren für Tabellenkopfzeilen hinzugefügt:
.thead-default
und.thead-inverse
. - Kontextabhängige Klassen umbenannt, sodass sie ein
.table-
-Präfix haben. Daher.active
,.success
,.warning
,.danger
und.info
zu.table-active
,.table-success
,.table-warning
,.table-danger
und.table-info
.
Formen
- Das verschobene Element wird auf die
_reboot.scss
Datei zurückgesetzt. - Umbenannt
.control-label
in.col-form-label
. - Umbenannt in
.input-lg
und.input-sm
in.form-control-lg
bzw..form-control-sm
. - Der Einfachheit
.form-group-*
halber auf Klassen verzichtet. Verwenden Sie.form-control-*
jetzt stattdessen Klassen. - Gelöscht
.help-block
und durch Hilfetext.form-text
auf Blockebene ersetzt. Verwenden Sie für Inline-Hilfetext und andere flexible Optionen Hilfsklassen wie.text-muted
. - Gefallen
.radio-inline
und.checkbox-inline
. - Konsolidiert
.checkbox
und.radio
in.form-check
und die verschiedenen.form-check-*
Klassen. - Horizontale Formen überarbeitet:
- Die
.form-horizontal
Klassenanforderung wurde fallen gelassen. .form-group
Wendet Stile aus dem.row
Via-Mixin nicht mehr an, ist also.row
jetzt für horizontale Rasterlayouts erforderlich (z . B.<div class="form-group row">
).- Neue
.col-form-label
Klasse hinzugefügt, um Beschriftungen mit.form-control
s vertikal zu zentrieren. - Neu hinzugefügt
.form-row
für kompakte Formularlayouts mit den Rasterklassen (tauschen Sie Ihre.row
gegen a.form-row
und los).
- Die
- Unterstützung benutzerdefinierter Formulare hinzugefügt (für Kontrollkästchen, Radios, Auswahlen und Dateieingaben).
.has-error
,.has-warning
und.has-success
-Klassen durch HTML5-Formularvalidierung über CSS:invalid
und Pseudoklassen ersetzt:valid
.- Umbenannt
.form-control-static
in.form-control-plaintext
.
Tasten
- Umbenannt
.btn-default
in.btn-secondary
. .btn-xs
Die Klasse wurde vollständig fallen gelassen , da sie.btn-sm
proportional viel kleiner ist als die von v3.- Die Stateful-Button -Funktion des
button.js
jQuery-Plugins wurde entfernt. Dazu gehören die$().button(string)
und$().button('reset')
Methoden. Wir empfehlen, stattdessen ein kleines bisschen benutzerdefiniertes JavaScript zu verwenden, das den Vorteil hat, sich genau so zu verhalten, wie Sie es möchten.- Beachten Sie, dass die anderen Funktionen des Plugins (Button-Checkboxen, Button-Radios, Single-Toggle-Buttons) in v4 beibehalten wurden.
- Ändern Sie die Schaltflächen
[disabled]
in:disabled
wie IE9+ unterstützt:disabled
. Diesfieldset[disabled]
ist jedoch immer noch erforderlich, da native deaktivierte Feldsätze in IE11 immer noch fehlerhaft sind .
Schaltflächengruppe
- Komponente mit Flexbox umgeschrieben.
- Entfernt
.btn-group-justified
. Als Ersatz können Sie<div class="btn-group d-flex" role="group"></div>
als Wrapper um Elemente mit verwenden.w-100
. - Die
.btn-group-xs
Klasse wurde vollständig gelöscht, da.btn-xs
. - Explizite Abstände zwischen Schaltflächengruppen in Schaltflächensymbolleisten entfernt; Verwenden Sie jetzt Margin-Dienstprogramme.
- Verbesserte Dokumentation für die Verwendung mit anderen Komponenten.
Dropdowns
- Von übergeordneten Selektoren auf einzelne Klassen für alle Komponenten, Modifikatoren usw. umgestellt.
- Vereinfachte Dropdown-Stile, um nicht mehr mit aufwärts oder abwärts gerichteten Pfeilen an das Dropdown-Menü ausgeliefert zu werden.
- Dropdowns können jetzt mit
<div>
s oder<ul>
s erstellt werden. - Dropdown-Stile und -Markup neu erstellt, um einfache, integrierte Unterstützung für
<a>
und<button>
basierte Dropdown-Elemente bereitzustellen. - Umbenannt
.divider
in.dropdown-divider
. - Dropdown-Elemente erfordern jetzt
.dropdown-item
. - Dropdown-Umschalter erfordern kein explizites
<span class="caret"></span>
; Dies wird jetzt automatisch über CSS::after
auf bereitgestellt.dropdown-toggle
.
Grid-System
- Es wurde ein neuer
576px
Grid-Breakpoint als hinzugefügtsm
, was bedeutet, dass es jetzt insgesamt fünf Ebenen gibt (xs
,sm
,md
,lg
, undxl
). - Die responsiven Grid-Modifikatorklassen wurden von
.col-{breakpoint}-{modifier}-{size}
in.{modifier}-{breakpoint}-{size}
für einfachere Grid-Klassen umbenannt. - Gelöschte Push- und Pull-Modifikatorklassen für die neuen Flexbox-betriebenen
order
Klassen. Anstelle von.col-8.push-4
und.col-4.pull-8
verwenden Sie beispielsweise.col-8.order-2
und.col-4.order-1
. - Flexbox-Utility-Klassen für Grid-System und Komponenten hinzugefügt.
Gruppen auflisten
- Komponente mit Flexbox umgeschrieben.
- Ersetzt
a.list-group-item
durch eine explizite Klasse,.list-group-item-action
, zum Gestalten von Link- und Schaltflächenversionen von Listengruppenelementen. .list-group-flush
Klasse zur Verwendung mit Karten hinzugefügt .
Modal
- Komponente mit Flexbox umgeschrieben.
- Angesichts der Umstellung auf Flexbox ist die Ausrichtung der Entlassungssymbole in der Kopfzeile wahrscheinlich fehlerhaft, da wir keine Floats mehr verwenden. Floating Content steht an erster Stelle, aber bei Flexbox ist das nicht mehr der Fall. Aktualisieren Sie Ihre Entlassungssymbole so, dass sie nach modalen Titeln erscheinen, um sie zu beheben.
- Die
remote
Option (mit der externe Inhalte automatisch geladen und in ein Modal eingefügt werden konnten) und das entsprechendeloaded.bs.modal
Ereignis wurden entfernt. Wir empfehlen stattdessen, clientseitige Vorlagen oder ein Datenbindungsframework zu verwenden oder jQuery.load selbst aufzurufen.
Navis
- Komponente mit Flexbox umgeschrieben.
- Fast alle
>
Selektoren für einfacheres Styling über nicht verschachtelte Klassen fallen gelassen. - Anstelle von HTML-spezifischen Selektoren wie
.nav > li > a
verwenden wir separate Klassen für.nav
s,.nav-item
s und.nav-link
s. Dies macht Ihr HTML flexibler und bringt eine erhöhte Erweiterbarkeit mit sich.
Navigationsleiste
Die Navigationsleiste wurde in Flexbox komplett neu geschrieben, mit verbesserter Unterstützung für Ausrichtung, Reaktionsfähigkeit und Anpassung.
- Responsive Navigationsleistenverhalten werden jetzt auf die
.navbar
Klasse über das erforderliche.navbar-expand-{breakpoint}
Element angewendet, bei dem Sie auswählen, wo die Navigationsleiste reduziert werden soll. Zuvor war dies eine Less-Variablenänderung und erforderte eine Neukompilierung. .navbar-default
ist jetzt.navbar-light
,.navbar-dark
bleibt aber gleich. Einer davon ist für jede Navigationsleiste erforderlich. Diese Klassen setzen jedoch nicht mehrbackground-color
s; stattdessen betreffen sie im Wesentlichen nurcolor
.- Navbars erfordern jetzt eine Art Hintergrunddeklaration. Wählen Sie aus unseren Hintergrunddienstprogrammen (
.bg-*
) oder stellen Sie Ihre eigenen mit den Light/Inverse-Klassen oben ein, um eine verrückte Anpassung zu ermöglichen . - Bei gegebenen Flexbox-Stilen können Navigationsleisten jetzt Flexbox-Dienstprogramme für einfache Ausrichtungsoptionen verwenden.
.navbar-toggle
ist jetzt.navbar-toggler
und hat verschiedene Stile und inneres Markup (keine drei<span>
s mehr).- Habe die
.navbar-form
Klasse komplett fallen gelassen. Es ist nicht mehr notwendig; Verwenden Sie stattdessen einfach die.form-inline
erforderlichen Margin-Dienstprogramme und wenden Sie sie an. - Navigationsleisten enthalten
margin-bottom
oderborder-radius
standardmäßig nicht mehr. Verwenden Sie nach Bedarf Dienstprogramme. - Alle Beispiele mit Navigationsleisten wurden aktualisiert, um neues Markup einzuschließen.
Seitennummerierung
- Komponente mit Flexbox umgeschrieben.
- Explizite Klassen (
.page-item
,.page-link
) sind jetzt für die Nachkommen von.pagination
s erforderlich - Die
.pager
Komponente wurde vollständig gelöscht, da sie kaum mehr als angepasste Gliederungsschaltflächen war.
Semmelbrösel
- Eine explizite Klasse,
.breadcrumb-item
, ist jetzt für die Nachkommen von.breadcrumb
s erforderlich
Etiketten und Abzeichen
- Konsolidiert
.label
und.badge
um das Element zu disambiguieren<label>
und verwandte Komponenten zu vereinfachen. .badge-pill
Als Modifikator für abgerundeten „Pillen“-Look hinzugefügt .- Abzeichen werden nicht mehr automatisch in Listengruppen und anderen Komponenten schwebend angezeigt. Dafür werden jetzt Gebrauchsklassen benötigt.
.badge-default
wurde gelöscht und.badge-secondary
hinzugefügt, um Komponentenmodifikatorklassen zu entsprechen, die an anderer Stelle verwendet werden.
Panels, Thumbnails und Wells
Für die neue Kartenkomponente vollständig fallen gelassen.
Platten
.panel
zu.card
, jetzt gebaut mit flexbox..panel-default
entfernt und kein Ersatz..panel-group
entfernt und kein Ersatz..card-group
ist kein Ersatz, es ist anders..panel-heading
zu.card-header
.panel-title
zu.card-title
. Je nach gewünschtem Aussehen können Sie auch Überschriftelemente oder Klassen (zB<h3>
,.h3
) oder fette Elemente oder Klassen (zB<strong>
,<b>
,.font-weight-bold
) verwenden. Beachten Sie, dass.card-title
, obwohl ähnlich benannt, ein anderes Aussehen erzeugt als.panel-title
..panel-body
zu.card-body
.panel-footer
zu.card-footer
.panel-primary
,.panel-success
,.panel-info
,.panel-warning
, und.panel-danger
wurden für.bg-
,.text-
, und.border
Dienstprogramme gelöscht, die aus unserer$theme-colors
Sass-Karte generiert wurden.
Fortschritt
- Kontextabhängige
.progress-bar-*
Klassen durch.bg-*
Dienstprogramme ersetzt. Beispielsweiseclass="progress-bar progress-bar-danger"
wirdclass="progress-bar bg-danger"
. - Ersetzt
.active
für animierte Fortschrittsbalken durch.progress-bar-animated
.
Karussell
- Die gesamte Komponente wurde überarbeitet, um Design und Styling zu vereinfachen. Wir haben weniger Stile, die Sie überschreiben können, neue Anzeigen und neue Symbole.
- Alle CSS wurden entschachtelt und umbenannt, um sicherzustellen, dass jeder Klasse das Präfix
.carousel-
.- Für Karussellelemente sind ,
.next
,.prev
,.left
und.right
jetzt.carousel-item-next
,.carousel-item-prev
,.carousel-item-left
, und.carousel-item-right
. .item
ist jetzt auch.carousel-item
.- Für vorherige/nächste Steuerelemente sind
.carousel-control.right
und.carousel-control.left
jetzt.carousel-control-next
und.carousel-control-prev
, was bedeutet, dass sie keine bestimmte Basisklasse mehr benötigen.
- Für Karussellelemente sind ,
- Alle reaktionsschnellen Stile entfernt, auf Dienstprogramme (z. B. Anzeigen von Beschriftungen in bestimmten Ansichtsfenstern) und benutzerdefinierte Stile nach Bedarf verschoben.
- Bildüberschreibungen für Bilder in Karussellelementen entfernt, auf Dienstprogramme verschoben.
- Das Karussell-Beispiel wurde optimiert, um das neue Markup und die neuen Stile einzuschließen.
Tische
- Unterstützung für formatierte verschachtelte Tabellen entfernt. Alle Tabellenstile werden jetzt in v4 für einfachere Selektoren geerbt.
- Umgekehrte Tabellenvariante hinzugefügt.
Dienstprogramme
- Anzeigen, Ausblenden und mehr:
- Responsive Anzeige-Utilities gemacht (zB
.d-none
undd-{sm,md,lg,xl}-none
). - Der Großteil der
.hidden-*
Dienstprogramme wurde für neue Anzeige-Dienstprogramme entfernt ..hidden-sm-up
Verwenden Sie beispielsweise anstelle von.d-sm-none
. Die Dienstprogramme wurden umbenannt.hidden-print
, um das Benennungsschema für Anzeige-Dienstprogramme zu verwenden. Weitere Informationen finden Sie im Abschnitt Responsive Dienstprogramme auf dieser Seite. .float-{sm,md,lg,xl}-{left,right,none}
Klassen für responsive Floats hinzugefügt und entfernt.pull-left
und.pull-right
da sie redundant zu.float-left
und sind.float-right
.
- Responsive Anzeige-Utilities gemacht (zB
- Typ:
- Responsive Variationen zu unseren Textausrichtungsklassen hinzugefügt
.text-{sm,md,lg,xl}-{left,center,right}
.
- Responsive Variationen zu unseren Textausrichtungsklassen hinzugefügt
- Ausrichtung und Abstand:
- Neue Hilfsprogramme für reaktionsfähige Ränder und Auffüllungen für alle Seiten sowie vertikale und horizontale Abkürzungen hinzugefügt.
- Bootsladung von Flexbox-Hilfsprogrammen hinzugefügt .
- Für
.center-block
die neue.mx-auto
Klasse gestrichen.
- Clearfix aktualisiert, um die Unterstützung für ältere Browserversionen einzustellen.
Herstellerpräfix-Mixins
Die Anbieterpräfix -Mixins von Bootstrap 3 , die in v3.2.0 veraltet waren, wurden in Bootstrap 4 entfernt. Da wir Autoprefixer verwenden , sind sie nicht mehr erforderlich.
Die folgenden Mixins wurden entfernt: 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
Dokumentation
Auch unsere Dokumentation hat ein umfassendes Upgrade erhalten. Hier ist der Tiefpunkt:
- Wir verwenden immer noch Jekyll, aber wir haben Plugins in der Mischung:
bugify.rb
wird verwendet, um die Einträge auf unserer Browser-Fehlerseite effizient aufzulisten .example.rb
ist ein benutzerdefinierter Fork des Standardhighlight.rb
-Plugins, der eine einfachere Handhabung des Beispielcodes ermöglicht.callout.rb
ist ein ähnlicher benutzerdefinierter Fork davon, aber für unsere speziellen Docs-Callouts konzipiert.- Jekyll-toc wird verwendet, um unser Inhaltsverzeichnis zu generieren.
- Der gesamte Dokumentinhalt wurde zur einfacheren Bearbeitung in Markdown (anstelle von HTML) umgeschrieben.
- Die Seiten wurden für einfachere Inhalte und eine zugänglichere Hierarchie neu organisiert.
- Wir sind von regulärem CSS auf SCSS umgestiegen, um die Variablen, Mixins und mehr von Bootstrap voll auszunutzen.
Reaktionsschnelle Dienstprogramme
Alle @screen-
Variablen wurden in v4.0.0 entfernt. Verwenden Sie stattdessen die Mixins media-breakpoint-up()
, media-breakpoint-down()
, oder Sass oder die Sass-Karte.media-breakpoint-only()
$grid-breakpoints
Unsere reaktionsschnellen Hilfsklassen wurden größtenteils zugunsten expliziter display
Hilfsprogramme entfernt.
- Die Klassen
.hidden
und wurden entfernt, da sie mit den Methoden und.show
von jQuery in Konflikt standen . Versuchen Sie stattdessen, das Attribut umzuschalten, oder verwenden Sie Inline-Stile wie und .$(...).hide()
$(...).show()
[hidden]
style="display: none;"
style="display: block;"
- Alle
.hidden-
Klassen wurden entfernt, mit Ausnahme der umbenannten Druckdienstprogramme.- Aus v3 entfernt:
.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
- Aus v4-Alphas entfernt:
.hidden-xs-up
.hidden-xs-down
.hidden-sm-up
.hidden-sm-down
.hidden-md-up
.hidden-md-down
.hidden-lg-up
.hidden-lg-down
- Aus v3 entfernt:
- Druckdienstprogramme beginnen nicht mehr mit
.hidden-
oder.visible-
, sondern mit.d-print-
.- Alte Namen:
.visible-print-block
,.visible-print-inline
,.visible-print-inline-block
,.hidden-print
- Neue Klassen:
.d-print-block
,.d-print-inline
,.d-print-inline-block
,.d-print-none
- Alte Namen:
Anstatt explizite .visible-*
Klassen zu verwenden, machen Sie ein Element sichtbar, indem Sie es bei dieser Bildschirmgröße einfach nicht ausblenden. Sie können eine .d-*-none
Klasse mit einer .d-*-block
Klasse kombinieren, um ein Element nur in einem bestimmten Intervall von Bildschirmgrößen anzuzeigen (z. B. .d-none.d-md-block.d-xl-none
zeigt das Element nur auf mittleren und großen Geräten).
Beachten Sie, dass die Änderungen an den Grid-Breakpoints in v4 bedeuten, dass Sie einen Breakpoint größer setzen müssen, um die gleichen Ergebnisse zu erzielen. Die neuen responsiven Utility-Klassen versuchen nicht, seltenere Fälle zu berücksichtigen, in denen die Sichtbarkeit eines Elements nicht als ein einziger zusammenhängender Bereich von Ansichtsfenstergrößen ausgedrückt werden kann; In solchen Fällen müssen Sie stattdessen benutzerdefiniertes CSS verwenden.