Dans Bootstrap v3, j'utilise souvent les classes cachées - ** combinées avec clearfix pour contrôler les dispositions multi-colonnes à différentes largeurs d'écran. Par exemple,
Je pourrais combiner plusieurs cachés - ** dans un DIV pour que mes colonnes multiples apparaissent correctement à différentes largeurs d'écran.
Par exemple, si je voulais afficher des lignes de photos de produits, 4 par ligne sur des écrans plus grands, 3 sur des écrans plus petits, puis 2 sur de très petits écrans. Les photos du produit peuvent avoir des hauteurs différentes, j'ai donc besoin du clearfix pour garantir que la ligne se casse correctement.
Voici un exemple en v3 ...
http://jsbin.com/tosebayode/edit?html,css,output
Maintenant que la v4 a supprimé ces classes et les a remplacées par les classes visible / cachée - ** - up / down, il semble que je doive faire la même chose avec plusieurs DIV à la place.
Voici un exemple similaire en v4 ...
http://jsbin.com/sagowihowa/edit?html,css,output
Je suis donc passé de DIVs simples à devoir ajouter plusieurs DIVs avec beaucoup de classes up / down pour réaliser la même chose.
De...
<div class="clearfix visible-xs-block visible-sm-block"></div>
à...
<div class="clearfix hidden-sm-up"></div>
<div class="clearfix hidden-md-up hidden-xs-down"></div>
<div class="clearfix hidden-md-down"></div>
Y a-t-il une meilleure façon de faire cela dans la v4 que j'ai ignorée?
d-initial
donc vous ne pouvez plus remplacer led-<breakpoint>-hidden
et le définir à sa valeur initiale. Si je veux masquer un élément sur des écrans plus petits tout en le montrant sur des écrans moyens et plus grands sans connaître l'affichage initial (qui pourrait être dynamique), je ne peux pas restaurer sa valeur. Ils n'ont pensé à rien de tout cela.Malheureusement , toutes les classes
hidden-*-up
ethidden-*-down
ont été retirés Bootstrap ( à partir de Bootstrap Version 4 Beta , dans la version 4 Alpha et la version 3 de ces classes existaient encore).Au lieu de cela, de nouvelles classes
d-*
doivent être utilisées, comme mentionné ici: https://getbootstrap.com/docs/4.0/migration/#utilitiesJ'ai découvert que la nouvelle approche est moins utile dans certaines circonstances. L'ancienne approche était de masquer les éléments tandis que la nouvelle approche était de montrer les éléments. Afficher des éléments n'est pas si simple avec CSS car vous devez savoir si l'élément est affiché sous forme de bloc, en ligne, bloc en ligne, tableau, etc.
Vous voudrez peut-être restaurer les anciens styles "hidden- *" connus de Bootstrap 3 avec ce CSS:
Les classes
hidden-unless-*
n'étaient pas incluses dans Bootstrap 3, mais elles sont également utiles et devraient être explicites.la source
Bootstrap v4.1 utilise de nouveaux noms de classe pour masquer les colonnes sur leur système de grille.
Pour masquer des colonnes en fonction de la largeur de l'écran, utilisez la
d-none
classe ou l'une desd-{sm,md,lg,xl}-none
classes. Pour afficher des colonnes sur certaines tailles d'écran, combinez les classes mentionnées ci-dessus avecd-block
oud-{sm,md,lg,xl}-block
classes.Voici des exemples:
Plus ici .
la source
Je ne m'attends pas à ce que plusieurs div soit une bonne solution.
Je pense également que vous pouvez remplacer
.visible-sm-block
par.hidden-xs-down
et.hidden-md-up
(ou.hidden-sm-down
et.hidden-lg-up
pour agir sur les mêmes requêtes multimédias).hidden-sm-up
se compile en:.hidden-sm-down
et.hidden-lg-up
compile en:Les deux situations devraient agir de la même manière.
Votre situation devient différente lorsque vous essayez de remplacer
.visible-sm-block
et.visible-lg-block
. Les documents Bootstrap v4 vous disent:la source
L'utilisateur Klaro a suggéré de restaurer les anciennes classes de visibilité, ce qui est une bonne idée. Malheureusement, leur solution n'a pas fonctionné dans mon projet.
Je pense que c'est une meilleure idée de restaurer l'ancien mixin de bootstrap, car il couvre tous les points d'arrêt qui peuvent être définis individuellement par l'utilisateur.
Voici le code:
Dans mon cas, j'ai inséré cette partie dans un
_custom.scss
fichier qui est inclus à ce stade dans lebootstrap.scss
:la source
display: block
ruptures de flux dans certains scénarios.http://v4-alpha.getbootstrap.com/layout/responsive-utilities/
Vous devez maintenant définir la taille de ce qui est caché
Cachera tout ce qui est xs et plus petit, seulement xs
Va tout cacher
la source
Pour bootstrap 4, voici une image matricielle expliquant les classes utilisées pour afficher / masquer les éléments en fonction de la taille de l'écran:
Source: Meduim: Bootstrap 4 caché et visible
la source
Bootstrap 4 pour masquer tout le contenu, utilisez cette classe '.d-none', ce sera tout masquer indépendamment des points d'arrêt, comme la classe de version de bootstrap précédente '.hidden'
la source
Malheureusement, ces nouvelles classes bootstrap 4 ne fonctionnent pas comme les anciennes sur un div en utilisant
collapse
car elles définissent le div visible surblock
lequel commence visible plutôt que caché et si vous ajoutez un div supplémentaire autour de lacollapse
fonctionnalité ne fonctionne plus.la source
la source