L'objectif est de modifier la propriété CSS display en fonction des besoins.
Ces possibilités se combinent avec les breakpoints du framework.
Les classes sont nommées suivant ce format :
.d-{value}: à partir de xs et +.d-{breakpoint}-{value}pour les devicessm,md,lg,xletxxl.
La value provient de cette liste :
noneinlineinline-blockblockgridinline-gridtabletable-celltable-rowflexinline-flex
<div class="d-inline p-2 bg-primary text-white">d-inline</div> <div class="d-inline p-2 bg-dark text-white">d-inline</div>
<span class="d-block p-2 bg-primary text-white">d-block</span> <span class="d-block p-2 bg-dark text-white">d-block</span>
Il est possible de jouer rapidement sur l'affichage / masquage d'éléments entre les différents devices.
Pour masquer, on utilise la classe .d-none ou ses copines responsives .d-{sm,md,lg,xl}-none.
Il faut raisonner du plus petit au plus grand. Voici quelques combinaisons possibles :
| Taille de l'écran | Classe |
|---|---|
| Caché sur tous | .d-none |
| Caché uniquement sur XS | .d-none .d-sm-block |
| Caché uniquement sur SM | .d-sm-none .d-md-block |
| Caché uniquement sur MD | .d-md-none .d-lg-block |
| Caché uniquement sur LG | .d-lg-none .d-xl-block |
| Disponible uniquement sur XL | .d-xl-none .d-xxl-block |
| Disponible uniquement sur XXL | .d-xxl-none |
| Visible sur tous | .d-block |
| Visible uniquement sur XS | .d-block .d-sm-none |
| Visible uniquement sur SM | .d-none .d-sm-block .d-md-none |
| Visible uniquement sur MD | .d-none .d-md-block .d-lg-none |
| Visible uniquement sur LG | .d-none .d-lg-block .d-xl-none |
| Visible uniquement sur XL | .d-none .d-xl-block .d-xxl-none |
| Visible uniquement sur XXL | .d-none .d-xxl-block |
<div class="d-lg-none">hide on lg and wider screens</div> <div class="d-none d-lg-block">hide on screens smaller than lg</div>
Il est possible de gérer des display dédiés au print. L'idée est d'indiquer à un élément comment se comporter en version print vs la version screen.
.d-print-none.d-print-inline.d-print-inline-block.d-print-block.d-print-grid.d-print-inline-grid.d-print-table.d-print-table-row.d-print-table-cell.d-print-flex.d-print-inline-flex
On peut imaginer de masquer des éléments en version screen et de les afficher en version print.
<div class="d-print-none">Screen Only (Hide on print only)</div> <div class="d-none d-print-block">Print Only (Hide on screen only)</div> <div class="d-none d-lg-block d-print-block">Hide up to large on screen, but always show on print</div>