Migrer vers la v4
Bootstrap 4 est une réécriture majeure de l'ensemble du projet. Les changements les plus notables sont résumés ci-dessous, suivis de changements plus spécifiques aux composants pertinents.
Changements stables
En passant de la bêta 3 à notre version stable v4.x, il n'y a pas de changements majeurs, mais il y a quelques changements notables.
Impression
-
Correction des utilitaires d'impression cassés. Auparavant, l'utilisation d'une
.d-print-*
classe annulait de manière inattendue toute autre.d-*
classe. Désormais, ils correspondent à nos autres utilitaires d'affichage et ne s'appliquent qu'à ce support (@media print
). -
Utilitaires d'affichage d'impression disponibles étendus pour correspondre à d'autres utilitaires. La version bêta 3 et les versions antérieures n'avaient que
block
,inline-block
,inline
etnone
. Stable v4 ajoutéflex
,inline-flex
,table
,table-row
ettable-cell
. -
Correction du rendu de l'aperçu avant impression dans les navigateurs avec de nouveaux styles d'impression qui spécifient
@page
size
.
Modifications de la bêta 3
Bien que la bêta 2 ait vu l'essentiel de nos changements de rupture pendant la phase bêta, nous en avons encore quelques-uns qui devaient être traités dans la version bêta 3. Ces modifications s'appliquent si vous effectuez une mise à jour vers la version bêta 3 à partir de la version bêta 2 ou de toute version antérieure de Bootstrap.
Divers
$thumbnail-transition
Suppression de la variable inutilisée . Nous n'étions pas en train de faire la transition, donc c'était juste du code supplémentaire.- Le package npm n'inclut plus aucun fichier autre que nos fichiers source et dist ; si vous comptiez sur eux et que vous exécutiez nos scripts via le
node_modules
dossier, vous devez adapter votre flux de travail.
Formes
-
Réécriture des cases à cocher et radios personnalisées et par défaut. Maintenant, les deux ont une structure HTML correspondante (externe
<div>
avec frère<input>
et<label>
) et les mêmes styles de mise en page (empilés par défaut, en ligne avec la classe de modificateur). Cela nous permet de styliser l'étiquette en fonction de l'état de l'entrée, de simplifier la prise en charge de l'disabled
attribut (nécessitant auparavant une classe parente) et de mieux prendre en charge notre validation de formulaire.Dans ce cadre, nous avons modifié le CSS pour gérer plusieurs
background-image
s sur les cases à cocher et les radios des formulaires personnalisés. Auparavant, l'.custom-control-indicator
élément maintenant supprimé avait la couleur d'arrière-plan, le dégradé et l'icône SVG. Personnaliser le dégradé d'arrière-plan signifiait remplacer tous ceux-ci chaque fois que vous deviez en changer un seul. Maintenant, nous avons.custom-control-label::before
pour le remplissage et le dégradé et.custom-control-label::after
gère l'icône.Pour créer une vérification personnalisée en ligne, ajoutez
.custom-control-inline
. -
Sélecteur mis à jour pour les groupes de boutons basés sur l'entrée. Au lieu de
[data-toggle="buttons"] { }
pour le style et le comportement, nous utilisons l'data
attribut uniquement pour les comportements JS et nous nous appuyons sur une nouvelle.btn-group-toggle
classe pour le style. -
Supprimé
.col-form-legend
au profit d'un.col-form-label
. De cette façon.col-form-label-sm
et.col-form-label-lg
peut être utilisé<legend>
facilement sur des éléments. -
Les entrées de fichier personnalisées ont reçu une modification de leur
$custom-file-text
variable Sass. Ce n'est plus une carte Sass imbriquée et n'alimente plus qu'une seule chaîne - leBrowse
bouton car c'est maintenant le seul pseudo-élément généré à partir de notre Sass. LeChoose file
texte vient maintenant du.custom-file-label
.
Groupes d'entrée
-
Les addons de groupe d'entrée sont désormais spécifiques à leur placement par rapport à une entrée. Nous avons abandonné
.input-group-addon
et.input-group-btn
pour deux nouvelles classes,.input-group-prepend
et.input-group-append
. Vous devez utiliser explicitement un ajout ou un préfixe maintenant, simplifiant une grande partie de notre CSS. Dans un ajout ou un préfixe, placez vos boutons comme ils existeraient n'importe où ailleurs, mais enveloppez le texte dans.input-group-text
. -
Les styles de validation sont désormais pris en charge, tout comme les entrées multiples (bien que vous ne puissiez valider qu'une seule entrée par groupe).
-
Les classes de dimensionnement doivent être sur le parent
.input-group
et non sur les éléments de formulaire individuels.
Modifications de la bêta 2
Pendant la version bêta, nous visons à n'avoir aucun changement de rupture. Cependant, les choses ne se passent pas toujours comme prévu. Vous trouverez ci-dessous les changements de rupture à garder à l'esprit lors du passage de la bêta 1 à la bêta 2.
Rupture
$badge-color
Variable supprimée et son utilisation sur.badge
. Nous utilisons une fonction de contraste de couleur pour choisir uncolor
basé sur lebackground-color
, donc la variable est inutile.grayscale()
Fonction renommée engray()
pour éviter de rompre le conflit avec legrayscale
filtre natif CSS.- Renommé
.table-inverse
,.thead-inverse
, et.thead-default
en.*-dark
et.*-light
, correspondant à nos schémas de couleurs utilisés ailleurs. - Les tables réactives génèrent désormais des classes pour chaque point d'arrêt de la grille. Cela rompt avec la version bêta 1 en ce que le que
.table-responsive
vous avez utilisé ressemble plus à.table-responsive-md
. Vous pouvez maintenant utiliser.table-responsive
ou.table-responsive-{sm,md,lg,xl}
au besoin. - Suppression de la prise en charge de Bower car le gestionnaire de packages a été déprécié pour les alternatives (par exemple, Yarn ou npm). Voir bower/bower#2298 pour plus de détails.
- Bootstrap nécessite toujours jQuery 1.9.1 ou supérieur, mais il est conseillé d'utiliser la version 3.x car les navigateurs pris en charge par la v3.x sont ceux que Bootstrap prend en charge et la v3.x contient des correctifs de sécurité.
- Suppression de la classe inutilisée
.form-control-label
. Si vous avez utilisé cette classe, il s'agissait d'un doublon de la.col-form-label
classe qui a centré verticalement a<label>
avec son entrée associée dans les dispositions de formulaire horizontales. - Modification
color-yiq
du mixin qui incluait lacolor
propriété en une fonction qui renvoie une valeur, vous permettant de l'utiliser pour n'importe quelle propriété CSS. Par exemple, au lieu decolor-yiq(#000)
, vous écririezcolor: color-yiq(#000);
.
Points forts
- Introduit une nouvelle
pointer-events
utilisation sur les modaux. L'extérieur.modal-dialog
passe par des événements avecpointer-events: none
pour la gestion personnalisée des clics (ce qui permet d'écouter simplement.modal-backdrop
tous les clics), puis le contrecarre pour le réel.modal-content
avecpointer-events: auto
.
Sommaire
Voici les éléments importants dont vous voudrez être conscient lors du passage de la v3 à la v4.
Prise en charge du navigateur
- Suppression de la prise en charge d'IE8, IE9 et iOS 6. La v4 est désormais uniquement IE10+ et iOS 7+. Pour les sites nécessitant l'un ou l'autre, utilisez la v3.
- Ajout de la prise en charge officielle du navigateur et de WebView d'Android v5.0 Lollipop. Les versions antérieures du navigateur Android et de WebView ne sont prises en charge que de manière non officielle.
Changements globaux
- Flexbox est activé par défaut. En général, cela signifie s'éloigner des flotteurs et plus sur nos composants.
- Passé de Less à Sass pour nos fichiers CSS source.
- Passé de
px
à enrem
tant qu'unité CSS principale, bien que les pixels soient toujours utilisés pour les requêtes multimédias et le comportement de la grille, car les fenêtres d'affichage de l'appareil ne sont pas affectées par la taille du texte. - La taille globale de la police est passée de
14px
à16px
. - Niveaux de grille remaniés pour ajouter une cinquième option (adressage des appareils plus petits au niveau
576px
et au-dessous) et suppression de l'-xs
infixe de ces classes. Exemple :.col-6.col-sm-4.col-md-3
. - Remplacement du thème facultatif séparé par des options configurables via des variables SCSS (par exemple,
$enable-gradients: true
). - Le système de construction a été révisé pour utiliser une série de scripts npm au lieu de Grunt. Voir
package.json
pour tous les scripts, ou notre projet readme pour les besoins de développement local. - L'utilisation non réactive de Bootstrap n'est plus prise en charge.
- Abandon du Customizer en ligne au profit d'une documentation de configuration plus complète et de versions personnalisées.
- Ajout de dizaines de nouvelles classes utilitaires pour les paires propriété-valeur CSS courantes et les raccourcis d'espacement marge/remplissage.
Système de grille
- Déplacé vers flexbox.
- Ajout de la prise en charge de flexbox dans les mixins de grille et les classes prédéfinies.
- Dans le cadre de flexbox, inclut la prise en charge des classes d'alignement vertical et horizontal.
- Noms de classe de grille mis à jour et nouveau niveau de grille.
- Ajout d'un nouveau
sm
niveau de grille ci-dessous768px
pour un contrôle plus granulaire. Nous avons maintenantxs
,sm
,md
,lg
etxl
. Cela signifie également que chaque niveau a été augmenté d'un niveau (donc.col-md-6
dans la v3 est maintenant.col-lg-6
dans la v4). xs
les classes de grille ont été modifiées pour ne pas exiger que l'infixe représente plus précisément qu'elles commencent à appliquer des styles àmin-width: 0
et non à une valeur de pixel définie. Au lieu de.col-xs-6
, c'est maintenant.col-6
. Tous les autres niveaux de grille nécessitent l'infixe (par exemple,sm
).
- Ajout d'un nouveau
- Mise à jour des tailles de grille, des mixins et des variables.
- Les gouttières de grille ont maintenant une carte Sass afin que vous puissiez spécifier des largeurs de gouttière spécifiques à chaque point d'arrêt.
- Mixins de grille mis à jour pour utiliser un
make-col-ready
mixin de préparation et unmake-col
pour définir leflex
etmax-width
pour le dimensionnement des colonnes individuelles. - Modification des points d'arrêt des requêtes multimédias du système de grille et des largeurs de conteneur pour tenir compte du nouveau niveau de grille et garantir que les colonnes sont divisibles de manière égale
12
à leur largeur maximale. - Les points d'arrêt de grille et les largeurs de conteneur sont désormais gérés via des cartes Sass (
$grid-breakpoints
et$container-max-widths
) au lieu d'une poignée de variables distinctes. Celles-ci remplacent@screen-*
entièrement les variables et vous permettent de personnaliser entièrement les niveaux de grille. - Les requêtes des médias ont également changé. Au lieu de répéter nos déclarations de requête multimédia avec la même valeur à chaque fois, nous avons maintenant
@include media-breakpoint-up/down/only
. Maintenant, au lieu d'écrire@media (min-width: @screen-sm-min) { ... }
, vous pouvez écrire@include media-breakpoint-up(sm) { ... }
.
Composants
- Panneaux, vignettes et puits supprimés pour un nouveau composant global, les cartes .
- Suppression de la police d'icône Glyphicons. Si vous avez besoin d'icônes, certaines options sont :
- la version amont de Glyphicons
- Octicons
- Police géniale
- Voir la page Étendre pour une liste d'alternatives. Vous avez des suggestions supplémentaires ? Veuillez ouvrir un problème ou PR.
- Suppression du plugin Affix jQuery.
- Nous vous recommandons d'utiliser à
position: sticky
la place. Voir l'entrée HTML5 Please pour plus de détails et des recommandations de polyfill spécifiques. Une suggestion est d'utiliser une@supports
règle pour l'implémenter (par exemple,@supports (position: sticky) { ... }
) - Si vous utilisiez Affixe pour appliquer des non-
position
styles supplémentaires, les polyfills pourraient ne pas prendre en charge votre cas d'utilisation. Une option pour de telles utilisations est la bibliothèque tierce ScrollPos-Styler .
- Nous vous recommandons d'utiliser à
- Suppression du composant de téléavertisseur car il s'agissait essentiellement de boutons légèrement personnalisés.
- Refactorisation de presque tous les composants pour utiliser davantage de sélecteurs de classe non imbriqués au lieu de sélecteurs d'enfants trop spécifiques.
Par composant
Cette liste met en évidence les principaux changements par composant entre la v3.xx et la v4.0.0.
Redémarrer
La nouveauté de Bootstrap 4 est le Reboot , une nouvelle feuille de style qui s'appuie sur Normalize avec nos propres styles de réinitialisation quelque peu opiniâtres. Les sélecteurs apparaissant dans ce fichier n'utilisent que des éléments - il n'y a pas de classes ici. Cela isole nos styles de réinitialisation de nos styles de composants pour une approche plus modulaire. Certaines des réinitialisations les plus importantes que cela inclut sont le box-sizing: border-box
changement, le passage d' em
unités rem
à de nombreux éléments, les styles de lien et de nombreuses réinitialisations d'éléments de formulaire.
Typographie
- Déplacement de tous les
.text-
utilitaires vers le_utilities.scss
fichier. - Abandonné
.page-header
car ses styles peuvent être appliqués via des utilitaires. .dl-horizontal
a été abandonné. Au lieu de cela, utilisez.row
on<dl>
et utilisez les classes de colonne de grille (ou mixins) sur ses<dt>
et ses<dd>
enfants.- Blocs de citations repensés, déplaçant leurs styles de l'
<blockquote>
élément vers une seule classe,.blockquote
. Suppression du.blockquote-reverse
modificateur pour les utilitaires de texte. .list-inline
exige maintenant que ses éléments de liste enfants aient la nouvelle.list-inline-item
classe qui leur est appliquée.
Images
- Renommé
.img-responsive
en.img-fluid
. - Renommé
.img-rounded
en.rounded
- Renommé
.img-circle
en.rounded-circle
les tables
- Presque toutes les instances du
>
sélecteur ont été supprimées, ce qui signifie que les tables imbriquées hériteront désormais automatiquement des styles de leurs parents. Cela simplifie grandement nos sélecteurs et les personnalisations potentielles. - Renommé
.table-condensed
en.table-sm
par souci de cohérence. - Ajout d'une nouvelle
.table-inverse
option. - Ajout de modificateurs d'en-tête de tableau :
.thead-default
et.thead-inverse
. - Classes contextuelles renommées pour avoir un
.table-
préfixe -. D'où.active
,.success
,.warning
,.danger
et.info
à.table-active
,.table-success
,.table-warning
,.table-danger
et.table-info
.
Formes
- L'élément déplacé est réinitialisé dans le
_reboot.scss
fichier. - Renommé
.control-label
en.col-form-label
. - Renommés
.input-lg
et.input-sm
en.form-control-lg
et.form-control-sm
, respectivement. - Cours abandonnés
.form-group-*
pour des raisons de simplicité. Utilisez.form-control-*
les classes à la place maintenant. - Supprimé
.help-block
et remplacé par.form-text
pour le texte d'aide au niveau du bloc. Pour le texte d'aide en ligne et d'autres options flexibles, utilisez des classes utilitaires telles que.text-muted
. - A chuté
.radio-inline
et.checkbox-inline
. - Consolidé
.checkbox
et.radio
dans.form-check
et les différentes.form-check-*
classes. - Formes horizontales révisées :
- Suppression de l'
.form-horizontal
exigence de classe. .form-group
n'applique plus les styles du.row
via mixin, il.row
est donc désormais nécessaire pour les dispositions de grille horizontales (par exemple,<div class="form-group row">
).- Ajout d'une nouvelle
.col-form-label
classe pour centrer verticalement les étiquettes avec.form-control
s. - Ajout de nouvelles
.form-row
pour les mises en page de formulaires compacts avec les classes de grille (échangez votre.row
pour un.form-row
et c'est parti).
- Suppression de l'
- Ajout de la prise en charge des formulaires personnalisés (pour les cases à cocher, les radios, les sélections et les entrées de fichiers).
- Remplacement des classes
.has-error
,.has-warning
et.has-success
par la validation des formulaires HTML5 via les CSS:invalid
et les:valid
pseudo-classes. - Renommé
.form-control-static
en.form-control-plaintext
.
Boutons
- Renommé
.btn-default
en.btn-secondary
. - Suppression
.btn-xs
complète de la classe car.btn-sm
elle est proportionnellement beaucoup plus petite que celle de la v3. - La fonctionnalité de bouton
button.js
avec état du plugin jQuery a été abandonnée. Cela inclut les méthodes$().button(string)
et .$().button('reset')
Nous vous conseillons d'utiliser un tout petit peu de JavaScript personnalisé à la place, qui aura l'avantage de se comporter exactement comme vous le souhaitez.- Notez que les autres fonctionnalités du plugin (cases à cocher des boutons, boutons radios, boutons à bascule unique) ont été conservées dans la v4.
- Remplacez les boutons
[disabled]
par:disabled
comme IE9 + prend en charge:disabled
. Cependantfieldset[disabled]
, cela reste nécessaire car les champs natifs désactivés sont toujours bogués dans IE11 .
Groupe de boutons
- Composant réécrit avec flexbox.
- Supprimé
.btn-group-justified
. En remplacement, vous pouvez utiliser<div class="btn-group d-flex" role="group"></div>
comme wrapper autour des éléments avec.w-100
. - Suppression de la
.btn-group-xs
classe entièrement compte tenu de la suppression de.btn-xs
. - Suppression de l'espacement explicite entre les groupes de boutons dans les barres d'outils de boutons ; utilisez les utilitaires de marge maintenant.
- Documentation améliorée pour une utilisation avec d'autres composants.
Listes déroulantes
- Passé des sélecteurs parents aux classes singulières pour tous les composants, modificateurs, etc.
- Styles de liste déroulante simplifiés pour ne plus être livrés avec des flèches orientées vers le haut ou vers le bas attachées au menu déroulant.
- Les listes déroulantes peuvent être construites avec
<div>
s ou<ul>
s maintenant. - Styles de liste déroulante et balisage reconstruits pour fournir une prise en charge facile et intégrée des
<a>
éléments de<button>
liste déroulante basés. - Renommé
.divider
en.dropdown-divider
. - Les éléments déroulants nécessitent désormais
.dropdown-item
. - Les bascules déroulantes ne nécessitent plus un explicite
<span class="caret"></span>
; ceci est maintenant fourni automatiquement via CSS::after
sur.dropdown-toggle
.
Système de grille
- Ajout d'un nouveau
576px
point d'arrêt de grille en tant quesm
, ce qui signifie qu'il y a maintenant cinq niveaux au total (xs
,sm
,md
,lg
, etxl
). - Renommer les classes de modificateurs de grille réactifs de
.col-{breakpoint}-{modifier}-{size}
à.{modifier}-{breakpoint}-{size}
pour des classes de grille plus simples. - Suppression des classes de modificateurs push et pull pour les nouvelles classes alimentées par flexbox
order
. Par exemple, au lieu de.col-8.push-4
et.col-4.pull-8
, vous utiliserez.col-8.order-2
et.col-4.order-1
. - Ajout de classes utilitaires flexbox pour le système de grille et les composants.
Liste des groupes
- Composant réécrit avec flexbox.
- Remplacé
a.list-group-item
par une classe explicite,.list-group-item-action
, pour styliser les versions de lien et de bouton des éléments de groupe de liste. - Classe ajoutée
.list-group-flush
pour une utilisation avec des cartes.
Modal
- Composant réécrit avec flexbox.
- Étant donné le passage à flexbox, l'alignement des icônes de rejet dans l'en-tête est probablement rompu car nous n'utilisons plus de flottants. Le contenu flottant vient en premier, mais avec flexbox ce n'est plus le cas. Mettez à jour vos icônes de rejet pour venir après les titres modaux à corriger.
- L'
remote
option (qui pouvait être utilisée pour charger et injecter automatiquement du contenu externe dans un modal) et l'loaded.bs.modal
événement correspondant ont été supprimés. Nous vous recommandons plutôt d'utiliser des modèles côté client ou un framework de liaison de données, ou d'appeler vous-même jQuery.load .
Navs
- Composant réécrit avec flexbox.
- Suppression de presque tous les
>
sélecteurs pour un style plus simple via des classes non imbriquées. - Au lieu de sélecteurs spécifiques à HTML comme
.nav > li > a
, nous utilisons des classes distinctes pour.nav
s,.nav-item
s et.nav-link
s. Cela rend votre HTML plus flexible tout en apportant une extensibilité accrue.
Barre de navigation
La barre de navigation a été entièrement réécrite en flexbox avec une prise en charge améliorée de l'alignement, de la réactivité et de la personnalisation.
- Les comportements de la barre de navigation réactive sont désormais appliqués à la
.navbar
classe via l' emplacement requis.navbar-expand-{breakpoint}
où vous choisissez où réduire la barre de navigation. Auparavant, il s'agissait d'une modification moins variable et d'une recompilation nécessaire. .navbar-default
est maintenant.navbar-light
, mais.navbar-dark
reste le même. L'un d'entre eux est requis sur chaque barre de navigation. Cependant, ces classes ne définissent plusbackground-color
s ; au lieu de cela, ils n'affectent essentiellement quecolor
.- Les barres de navigation nécessitent désormais une déclaration d'arrière-plan quelconque. Choisissez parmi nos utilitaires d'arrière-plan (
.bg-*
) ou définissez les vôtres avec les classes light/inverse ci-dessus pour une personnalisation folle . - Compte tenu des styles flexbox, les barres de navigation peuvent désormais utiliser les utilitaires flexbox pour des options d'alignement faciles.
.navbar-toggle
est maintenant.navbar-toggler
et a différents styles et balisage interne (pas plus de trois<span>
s).- A complètement abandonné la
.navbar-form
classe. Ce n'est plus nécessaire; à la place, utilisez.form-inline
et appliquez simplement les utilitaires de marge si nécessaire. - Les barres de navigation n'incluent plus
margin-bottom
ouborder-radius
par défaut. Utilisez les utilitaires si nécessaire. - Tous les exemples comportant des barres de navigation ont été mis à jour pour inclure un nouveau balisage.
Pagination
- Composant réécrit avec flexbox.
- Les classes explicites (
.page-item
,.page-link
) sont maintenant requises sur les descendants de.pagination
s - Suppression
.pager
complète du composant car il ne s'agissait que de boutons de contour personnalisés.
Chapelure
- Une classe explicite,
.breadcrumb-item
, est maintenant requise sur les descendants de.breadcrumb
s
Étiquettes et insignes
- Consolidé
.label
et.badge
pour lever l'ambiguïté de l'<label>
élément et simplifier les composants associés. - Ajouté
.badge-pill
comme modificateur pour un look "pilule" arrondi. - Les badges ne flottent plus automatiquement dans les groupes de listes et autres composants. Les classes utilitaires sont maintenant requises pour cela.
.badge-default
a été supprimé et.badge-secondary
ajouté pour correspondre aux classes de modificateurs de composants utilisées ailleurs.
Panneaux, vignettes et puits
Entièrement abandonné pour le nouveau composant de carte.
Panneaux
.panel
à.card
, maintenant construit avec flexbox..panel-default
supprimé et pas de remplacement..panel-group
supprimé et pas de remplacement..card-group
n'est pas un remplacement, c'est différent..panel-heading
à.card-header
.panel-title
à.card-title
. Selon l'apparence souhaitée, vous pouvez également utiliser des éléments ou des classes d'en-tête (par exemple<h3>
,.h3
) ou des éléments ou des classes en gras (par exemple<strong>
,<b>
,.font-weight-bold
). Notez que.card-title
, bien que portant le même nom, produit un aspect différent de.panel-title
..panel-body
à.card-body
.panel-footer
à.card-footer
.panel-primary
,.panel-success
,.panel-info
,.panel-warning
, et.panel-danger
ont été supprimés pour les utilitaires.bg-
,.text-
, et.border
générés à partir de notre$theme-colors
carte Sass.
Progrès
.progress-bar-*
Remplacement des classes contextuelles par des.bg-*
utilitaires. Par exemple,class="progress-bar progress-bar-danger"
devientclass="progress-bar bg-danger"
.- Remplacé
.active
pour les barres de progression animées par.progress-bar-animated
.
Carrousel
- Révision de l'ensemble du composant pour simplifier la conception et le style. Nous avons moins de styles à remplacer, de nouveaux indicateurs et de nouvelles icônes.
- Tous les CSS ont été désimbriqués et renommés, garantissant que chaque classe est préfixée par
.carousel-
.- Pour les éléments du carrousel,
.next
,.prev
,.left
et.right
sont désormais.carousel-item-next
,.carousel-item-prev
,.carousel-item-left
et.carousel-item-right
. .item
est aussi maintenant.carousel-item
.- Pour les contrôles prev/next,
.carousel-control.right
et.carousel-control.left
sont maintenant.carousel-control-next
et.carousel-control-prev
, ce qui signifie qu'ils ne nécessitent plus une classe de base spécifique.
- Pour les éléments du carrousel,
- Suppression de tous les styles réactifs, en reportant les utilitaires (par exemple, l'affichage des légendes sur certaines fenêtres) et les styles personnalisés selon les besoins.
- Suppression des remplacements d'image pour les images dans les éléments du carrousel, reportant aux utilitaires.
- Ajustement de l'exemple de carrousel pour inclure le nouveau balisage et les nouveaux styles.
les tables
- Suppression de la prise en charge des tableaux imbriqués stylisés. Tous les styles de tableau sont désormais hérités dans la v4 pour des sélecteurs plus simples.
- Ajout d'une variante de table inversée.
Utilitaires
- Afficher, masquer et plus :
- Rendre les utilitaires d'affichage réactifs (par exemple,
.d-none
etd-{sm,md,lg,xl}-none
). - Suppression de la majeure partie des
.hidden-*
utilitaires pour les nouveaux utilitaires d'affichage . Par exemple, au lieu de.hidden-sm-up
, utilisez.d-sm-none
. Renommer les.hidden-print
utilitaires pour utiliser le schéma de nommage des utilitaires d'affichage. Plus d'informations dans la section Utilitaires réactifs de cette page. - Classes ajoutées
.float-{sm,md,lg,xl}-{left,right,none}
pour les flottants réactifs et supprimées.pull-left
et.pull-right
puisqu'elles sont redondantes avec.float-left
et.float-right
.
- Rendre les utilitaires d'affichage réactifs (par exemple,
- Taper:
- Ajout de variantes réactives à nos classes d'alignement de texte
.text-{sm,md,lg,xl}-{left,center,right}
.
- Ajout de variantes réactives à nos classes d'alignement de texte
- Alignement et espacement :
- Ajout de nouveaux utilitaires de marge et de rembourrage réactifs pour tous les côtés, ainsi que de raccourcis verticaux et horizontaux.
- Ajout d'une cargaison d' utilitaires flexbox .
- Abandonné
.center-block
pour la nouvelle.mx-auto
classe.
- Clearfix mis à jour pour supprimer la prise en charge des anciennes versions de navigateur.
Mixins de préfixe de fournisseur
Les mixins de préfixe du fournisseur de Bootstrap 3 , qui étaient obsolètes dans la v3.2.0, ont été supprimés dans Bootstrap 4. Puisque nous utilisons Autoprefixer , ils ne sont plus nécessaires.
Suppression des mixins suivants : 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
Documentation
Notre documentation a également été mise à niveau dans tous les domaines. Voici le bas :
- Nous utilisons toujours Jekyll, mais nous avons des plugins dans le mix :
bugify.rb
est utilisé pour répertorier efficacement les entrées sur notre page de bogues de navigateur .example.rb
est un fork personnalisé duhighlight.rb
plugin par défaut, permettant une gestion plus facile des exemples de code.callout.rb
est un fork personnalisé similaire à celui-ci, mais conçu pour nos appels de documents spéciaux.- jekyll-toc est utilisé pour générer notre table des matières.
- Tout le contenu de la documentation a été réécrit en Markdown (au lieu de HTML) pour une édition plus facile.
- Les pages ont été réorganisées pour un contenu plus simple et une hiérarchie plus accessible.
- Nous sommes passés du CSS standard au SCSS pour tirer pleinement parti des variables, des mixins et plus encore de Bootstrap.
Utilitaires réactifs
Toutes les @screen-
variables ont été supprimées dans la v4.0.0. Utilisez plutôt les mixins , ou Sass ou la media-breakpoint-up()
carte media-breakpoint-down()
Sass .media-breakpoint-only()
$grid-breakpoints
Nos classes d'utilitaires réactifs ont été largement supprimées au profit d' display
utilitaires explicites.
- Les classes
.hidden
et ont été supprimées car elles étaient en conflit avec les méthodes et.show
de jQuery . Au lieu de cela, essayez de basculer l' attribut ou d'utiliser des styles en ligne comme et .$(...).hide()
$(...).show()
[hidden]
style="display: none;"
style="display: block;"
- Toutes les
.hidden-
classes ont été supprimées, à l'exception des utilitaires d'impression qui ont été renommés.- Supprimé de la 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
- Supprimé des alphas 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
- Supprimé de la v3 :
- Les utilitaires d'impression ne commencent plus par
.hidden-
ou.visible-
, mais par.d-print-
.- Anciens noms :
.visible-print-block
,.visible-print-inline
,.visible-print-inline-block
,.hidden-print
- Nouvelles classes :
.d-print-block
,.d-print-inline
,.d-print-inline-block
,.d-print-none
- Anciens noms :
Plutôt que d'utiliser des .visible-*
classes explicites, vous rendez un élément visible simplement en ne le masquant pas à cette taille d'écran. Vous pouvez combiner une .d-*-none
classe avec une .d-*-block
classe pour afficher un élément uniquement sur un intervalle donné de tailles d'écran (par exemple .d-none.d-md-block.d-xl-none
, affiche l'élément uniquement sur les appareils moyens et grands).
Notez que les modifications apportées aux points d'arrêt de la grille dans la v4 signifient que vous devrez augmenter d'un point d'arrêt pour obtenir les mêmes résultats. Les nouvelles classes d'utilitaires réactifs ne tentent pas de s'adapter aux cas moins courants où la visibilité d'un élément ne peut pas être exprimée sous la forme d'une seule plage contiguë de tailles de fenêtres ; vous devrez plutôt utiliser un CSS personnalisé dans de tels cas.