Apprendre bootstrap 4 documentation
![Apprendre bootstrap 4 documentation](/images/remos_downloads/id-9941.9941.pdf_thumb_prev.jpg)
BOOTSTRAP 4
HTML, CSS & JS framework for RWD & mobile first projects
Bruxelles Formation | CEPEGRA | Olivier Céréssia | 2017
PRÉAMBULE
Bootstrap est le plus populaire de tous les frameworks HTML, CSS & JS.
En programmation informatique, un framework Web est un ensemble cohérent de composants structurels, qui sert à créer les fondations ainsi que les grandes lignes de tout ou d’une partie d'un site Web.
L’objectif de boostrap est simple : gagner en productivité et faciliter le passage à l’ère du mobile (Responsive design & mobile first).
Bootstrap met donc à notre disposition des tas de choses préconçues en HTML, CSS et JS pour nous faciliter la vie :
? Le principe de mise en page sous forme de grille comprenant X colonnes,
? des formulaires pré?stylisés,
? des boutons pré?stylisés,
? des outils de navigation,
? des extensions JS,
? une fonte?icône (glyphicons),
? etc.
Le tout est compatible avec tous les navigateurs récents et avec Internet Explorer à partir de sa version 8.
TABLE DES MATIÈRES
? Installation avec npm .. 4
? Installation par téléchargement classique 4
? Le corps de page 5
? Les paragraphes .. 5
? Les titres 5
? Les mises en évidence 6
? L’alignement du texte . 7
? Le texte coloré . 7
? Les adresses 8
? Les listes à puces 8
? L’affichage du code . 8
? La structure de base . 9
? Les formulaires en ligne 10
? D’autres exemples . 10
? Les boutons . 11
![](/images/remos_downloads/detail/99/id-9941.9941.pdf-004.jpg)
? Par défaut 12
? Arrondie . 12
? Inscrite dans un cercle / oval .. 12
? Adaptative 13
? Le flottement des blocs . 14
? Les paliers et le conteneur principal . 16
? La largeur des boîtes avec Bootstrap 16
? L’utilisation des lignes et de la class .row 17
? La largeur des colonnes . 17
? Les blocs décalés . 18
? Afficher et masquer des éléments .. 18
? Tooltips .. 20
? Fenêtres modales . 20
? Scrollspy 21
? Les accordéons . 21
? Les carrousels d’images . 22
Installation avec npm
Pour installer Bootstrap comme dépendance de votre projet, rien de plus simple, vous indiquez dans votre console :
npm install bootstrap
Installation par téléchargement classique
Vous vous rendez sur le site officiel de boostrap () et vous cliquez sur le gros bouton de téléchargement qui va vous rediriger vers la page de téléchargement où vous sélectionnerez le pack dont vous avez besoin (en sass ou en less).
Si vous optez pour cette solution, voici ce que vous retrouverez dans votre fichier zippé :
Dans le dossier CSS, vous retrouverez les versions minifiées et non?minifiées de toutes les règles CSS de bootstrap et des thèmes de bootstrap qui permettent de modifier le style de base de Bootstrap.
Dans le dossier fonts, vous trouverez toutes les extensions de glyphicons pour faire du font?icon.
Dans le dossier js, vous trouverez tout ce qui est déjà prévu par bootstrap niveau JS (slider, burger, etc.).
Vous glissez donc l’ensemble de ces fichiers dans votre projet et c’est parti pour l’aventure Bootstrap !
LE CSS POUR LE TEXTE
Avec Bootstrap, toute une série de règles sont prédéfinies pour vous. Il est bon de savoir lesquelles et comment les contourner/changer. Nous allons les parcourir ensemble.
Le corps de page
À partir du moment où vous faites la liaison entre votre fichier HTML et Bootstrap, votre body prend les propriétés CSS suivantes :
body { font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 1.42857143; color: #333; background-color: #fff; } |
Les paragraphes
Les paragraphes ont, par défaut, le style suivant (juste une marge en bas) :
![](/images/remos_downloads/detail/99/id-9941.9941.pdf-007.jpg)
p {
margin: 0 0 10px; }
Les titres
Les titres ont, par défaut, tous les styles suivants :
h1,h2,h3,h4,h5,h6,
{
font-family: inherit; font-weight: 500; line-height: 1.1; color: inherit;
}
Et chaque niveau de titre a ces valeurs par défaut :
h1{ font-size: 36px; } h2{ font-size: 30px; } h3{ font-size: 24px; } h4{ font-size: 18px; } h5{ font-size: 14px; } h6{ font-size: 12px; } |
Les marges des titres sont gérées indépendamment de h1 à h3 :
h1,h2,h3{ margin-top: 20px; margin-bottom: 10px;
}
Les marges des titres sont gérées indépendamment de h4 à h6 :
h4,h5,h6{ margin-top: 10px; margin-bottom: 10px; }
Il faut aussi savoir que Bootstrap propose des noms de classes .h1, .h2, .h3, .h4, .h5 et .h6 qui ont exactement les mêmes propriétés CSS que les titres ci?dessus.
Les mises en évidence
Contrairement au reset que l’on avait pour habitude d’utiliser, Bootstrap n’enlève rien au style par défaut des balises strong, b, em et i. Pour l’élément small, la règle stipule une taille de caractères de
85% :
small{
![](/images/remos_downloads/detail/99/id-9941.9941.pdf-014.jpg)
font-size: 85%;
}
Bootstrap propore une classe .small qui fait exactement la même chose que le sélecteur ci?dessus.
L’alignement du texte
Pour aligner du texte, Bootstrap a ses propres classes :
.text-left { text-align: left;
}
.text-right { text-align: right;
}
.text-center { text-align: center;
}
.text-justify { text-align: justify; }
Le texte coloré
Bootstrap a prévu un certain formatage pour le texte au niveau de sa couleur pour faire passer certaines informations du genre : pas important (muted), important (primary), succès (success), information (info), attention (warning) ou danger (danger) et les effets de hover qui vont avec.
.text-muted { color: #777; } .text-primary { color: #337ab7; } a.text-primary:hover,a.text-primary:focus { color: #286090; } .text-success { color: #3c763d; } a.text-success:hover,a.text-success:focus { color: #2b542c; } .text-info { color: #31708f; } a.text-info:hover,.text-info:focus { color: #245269; } .text-warning { color: #8a6d3b; } a.text-warning:hover,a.text-warning:focus { color: #66512c; } ![]() .text-danger { color: #a94442; } a.text-danger:hover,.text-danger:focus { color: #843534; } |
Les adresses
Vous pouvez mettre en forme un bloc d’adresse avec les styles par défaut de Bootstrap suivants :
address { margin-bottom: 20px; font-style: normal; line-height: 1.42857143; }
Les listes à puces
Bootstrap ne modifie pas grand?chose au comportement par défaut des listes à puces, il uniformise juste les marges.
ul,ol { margin-top: 0; margin-bottom: 10px;
}
Pour avoir une liste sans puces (et sans retrait) :
.list-unstyled { padding-left: 0; list-style: none;
}
Pour avoir une liste au format horizontal, la classe .list?inline existe :
.list-inline { padding-left: 0; margin-left: -5px; list-style: none;
}
.list-inline > li { display: inline-block; padding-right: 5px; padding-left: 5px; }
L’affichage du code
Bootstrap a prévu des styles pour la balise code afin de mettre du code HTML en page :
code { padding: 2px 4px; font-size: 90%; color: #c7254e; background-color: #f9f2f4; border-radius: 4px; } |
LE CSS POUR LES FORMULAIRES
Bootstrap a fait un travail considérable sur la mise en forme des formulaires. Voici les règles principales qui pourraient vous être utiles.
La structure de base
Pour profiter des styles de Bootstrap, vous devez englober votre label et son input/textarea dans un div qui aura la classe form?group alors que l’input de type textuel aura la classe form?control. Voici les styles appliqués à ces classes :
.form-control { display: block; width: 100%; height: 34px; padding: 6px 12px; font-size: 14px; line-height: 1.42857143; color: #555; background-color: #fff; background-image: none; border: 1px solid #ccc; border-radius: 4px; box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s; } .form-group { margin-bottom: 15px; ![]() } |
Avec une structure simple comme celle?ci :
<form>
<div class="form-group">
<label for="name">Nom</label>
<input type="text" class="form-control" id="name">
</div>
<div class="checkbox">
<label>
<input type="checkbox"> Accepter les conditions
</label>
</div>
<button type="submit" class="btn btn-default">Envoyer</button>
</form>
On obtient un résultat pré?formaté comme ceci :
Les formulaires en ligne
Si vous mettez la classe .form?inline sur la balise form, vous obtiendrez ce résultat?ci :
Plutôt pratique !
D’autres exemples
Les champs actifs dans bootstrap sont stylisés de cette façon, sans rien ajouter :
La classe .has?success sur le div qui regroupe le label et l’input change le rendu comme ceci :
Pour la classe .has?warning :
Pour la classe .has?error :
Les boutons
Dans Bootstrap, une attention toute particulière a été accordée aux styles des boutons.
.btn { display: inline-block; padding: 6px 12px; margin-bottom: 0; font-size: 14px; font-weight: normal; line-height: 1.42857143; text-align: center; white-space: nowrap; vertical-align: middle; -ms-touch-action: manipulation; touch-action: manipulation; cursor: pointer; -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; background-image: none; border: 1px solid transparent; border-radius: 4px; } |
Les boutons sont donc bien stylisés dans bootstrap et on peut leur appliquer différentes variantes grâce à la panoplie suivante et leurs classes (.btn?default, .btn?primary, .btn?success, etc.).
On retrouve donc les mêmes noms de classe que celles déjà présentes pour mettre en page le texte, logique !
![](/images/remos_downloads/detail/99/id-9941.9941.pdf-024.jpg)
Chaque bouton a son effet de survol et de focus.
On peut également modifier la taille des boutons en ajoutant une classe .btn?lg (long), .btn?sm (small) ou .btn?xs (extra?small).
Ici 4 boutons, avec en premier le bouton par défaut et ensuite du plus grand au plus petit :
On peut aussi transformer un bouton en balise bloc avec la classe .btn?block :
LE CSS POUR LES IMAGES
Bootstrap a quelques petits trucs pour nos images également.
Par défaut
Sur nos balises IMG, par défaut, bootstrap applique les styles suivants :
img { border: 0; } img { max-width: 100% !important; } img { vertical-align: middle; } |
Alignement vertical automatique, pas de bordure et les images sont prêtes pour le responsive design, cool !
Arrondie
Une simple classe .img?rounded suffira pour arrondir les angles de nos images :
Inscrite dans un cercle / oval
Une simple classe .img?circle permet d’inscrire votre image dans un oval (si votre image est rectangulaire) ou un rond si elle est carrée J.
Adaptative
Avec la classe .img?responsive, on dit à l’image de se comporter comme un élément de type block, d’adapter sa hauteur en fonction d’une largeur qu’on met en max?width : 100%.
.img-responsive
{
display: block; max-width: 100%; height: auto; }
LE CSS POUR LA MISE EN PAGE
Tout a été également prévu pour jouer avec les float dans Bootstrap, mais pas que.
Le flottement des blocs
Les classes .pull?left et .pull?right servent à floater à gauche ou à droite des éléments de type block.
.pull-right {
float: right !important;
}
.pull-left {
float: left !important; }
Pour contrer les problèmes de float, Bootstrap utilise la classe clearfix (avec injection d’une balise dans le code html).
LA GRILLE ADAPTATIVE
C’est le cœur de Bootstrap. C’est ici que Bootstrap prend encore plus de sens puisque si votre design a suivi les canvas d’une grille de mise en page, Bootstrap va vous aider à facilement rendre votre site responsive.
De manière générale, les grilles de mise en page pour le Web ont une largeur maximale de 960 pixels et sont composées de 12 à 16 colonnes.
Un exemple de site basé sur une grille en 12 colonnes.
Au niveau responsive design, Bootstrap travaille sur plusieurs paliers :
![](/images/remos_downloads/detail/99/id-9941.9941.pdf-025.jpg)
? Les écrans inférieurs à 768px (smartphones)
? Les écrans supérieurs à 768px (tablettes)
? Les écrans supérieurs à 992px (ordinateurs avec écrans de taille moyenne ou grandes tablettes)
? Les écrans supérieurs à 1200px (ordinateurs avec écrans de taille plus grande)
Ces règles se trouvent dans le fichier .
Généralement, vous allez avoir un conteneur principal et pour Bootstrap celui?ci doit avoir la classe container.
.container { padding-right: 15px; padding-left: 15px; margin-right: auto; margin-left: auto; } @media (min-width: 768px) { .container { width: 750px; } } @media (min-width: 992px) { .container { width: 970px; } } @media (min-width: 1200px) { .container { width: 1170px; } } |
Cet élément qui aura la classe container s’adapte déjà parfaitement à toutes les tailles d’écran et en plus contient déjà du padding et des margin.
La largeur des boîtes avec Bootstrap
Il est extrêmement important de savoir que Bootstrap utilise la propriété box?sizing :border?box dans son calcul de largeur des boîtes.
Ça veut donc dire qu’à la largeur (width) vont venir s’ajouter la valeur des padding de gauche et de droite mais aussi l’épaisseur des bordures.
Pour mieux organiser votre mise en page en ligne, Bootstrap préconise d’utiliser une boîte utilisant la classe .row.
Il faut donc penser votre mise en page sous forme de plusieurs lignes. Chaque ligne va comporter les boîtes disposées sur les colonnes de la grille.
Voici ce que fait la classe .row :
.row { margin-right: -15px; margin-left: -15px; } .row:after { clear: both; ![]() } |
Les marges négatives sont simplement là pour que les padding qui seront ajoutés dans les colonnes ne « doublent » pas la gouttière de 15 pixels.
La largeur des colonnes
Pour gérer la largeur des colonnes dans la grille adaptative, Bootstrap utilise un système de classes dédiées défini dans le fichier .
Chaque règle @media utilise son propre préfixe pour les classes CSS à utiliser :
Taille écran | @media | Préfixe des CSS |
Smartphone | Aucune règle, comportement par défaut | .col?xs?* |
Tablette | @media (min?width :768px) | .col?sm?* |
Moyenne | @media (min?width :992px) | .col?md?* |
Grande | @media (min?width :1200px) | .col?lg?* |
Le suffixe * correspond au nombre de colonnes sur lequel doit être placée la classe.
Par exemple, si nous voulons qu’un div prenne la place de 4 colonnes en taille moyenne, on lui attribuera la classe : .col?md?4.
Le tout en image, pour une grille en 12 colonnes en taille moyenne :
Toutes les largeurs des colonnes sont définies en % de leur parent (souvent l’élément qui a la classe .row). Ces colonnes sont floatées à gauche et sont en position relative par défaut. Elles ont également un padding à gauche et à droite de 15px pour récupérer une gouttière de 30px.
Bootstrap vous permet de décaler des blocs ou créer de l’espace de la taille de X colonnes.
Si vous voulez par exemple faire commencer votre bloc qui mesure 4 colonnes après l’équivalent en largeur de 3 colonnes, vous écrirez :
<div class="container">
<div class="row">
<div class="col-lg-4 col-lg-offset-3"> </div>
</div>
</div>
![](/images/remos_downloads/detail/99/id-9941.9941.pdf-028.jpg)
Dans ce cas, vous devez évidemment prendre en compte l’offset que vous avez indiqué dans le
« compte » de vos 12 colonnes. Ce bloc vaut en réalité 7 colonnes, offset y compris.
Afficher et masquer des éléments
En responsive design, il arrive souvent qu’on affiche certains blocs dans les résolutions plus larges mais qu’on s’en passe dans les résolutions plus étroites.
Bootstrap a pensé à ce genre de choses et des classes sont à votre disposition pour répondre à votre demande.
Classe à utiliser | < 768px | > 768px | > 992px | > 1200px |
.visible?xs | Affiché | Caché | Caché | Caché |
.visible?sm | Caché | Affiché | Caché | Caché |
.visible?md | Caché | Caché | Affiché | Caché |
.visible?lg | Caché | Caché | Caché | Affiché |
.hidden?xs ![]() | Caché | Affiché | Affiché | Affiché |
.hidden?sm | Affiché | Caché | Affiché | Affiché |
.hidden?md | Affiché | Affiché | Caché | Affiché |
.hidden?lg | Affiché | Affiché | Affiché | Caché |
COMPOSANTS PRÉ-FABRIQUÉS
Bootstrap regorge de composants () prêts à l’emploi pour :
? Des dropdowns ()
? Des boutons (?groups)
? Des boutons avec dropdown (?dropdowns)
? Des champs input (?groups)
? Des systèmes de navigation ()
? Des barres de navigation ()
? Des systèmes de breadcrumbs ()
? Des systèmes de pagination ()
? Des « étiquettes » ()
? Des « badges » ()
![](/images/remos_downloads/detail/99/id-9941.9941.pdf-032.jpg)
? Des blocs d’introduction ()
? Un bloc de header (?header)
? Des vignettes ()
? Des alertes ()
? Des barres de progression ()
? Des objets média ()
? Des groupes de listes (?group)
? Des panneaux ()
? Des embed responsive (?embed)
Il serait un peu inutile de les détailler ici tellement ils sont bien représentés sur la page des composants de Bootstrap.
PLUGINS JAVASCRIPT
Plein de plugins sont aussi inclus à l’intérieur de Bootstrap. Pour les rendre actifs, n’oubliez pas d’incorporer la bibliothèque jQuery avant d’appeler le fichier qui est le fichier js qui regroupe tous les plugins de Bootstrap.
Nous allons voir quels genres de plugins sont disponibles avec Bootstrap mais je vous renvoie dores et déjà vers leur site officiel pour voir comment les mettre en œuvre ().
Tooltips
Des « infobulles » sont utilisables dans bootstrap. On les active en passant par?dessus un élément et il est possible de les faire apparaître à gauche, à droit, en bas ou en haut d’un élément. Voici à quoi ces tooltips ressemblent :
Pour les voir en action et comprendre quelle structure vous devez mettre en place pour les utiliser, rendez?vous ici :
Fenêtres modales
Il est possible de faire apparaître des fenêtres modales au clic avec bootstrap. Elles ressemblent à ceci :
Elles apparaissent et disparaissent avec une transition et vous pouvez la fermer en cliquant sur la croix. Il y a pas mal de paramètres sur lesquels vous pouvez jouer pour personnaliser cette fenêtre et ses transitions. Toute la doc est ici :
Scrollspy
Vous pouvez facilement mettre en place un effet de scrollspy qui suit votre navigation au fur et à mesure que vous parcourez une page. L’utilisation du scrollspy demande d’utiliser le composant « nav » de Bootstrap pour bien fonctionner.
Toutes les infos sont ici :
Les accordéons
Vous avez toute une série d’accordéons pré?écrits pour vous avec Bootstrap. Certains qui se déroulent suite à un clic sur un bouton :
d’autres qui s’ouvrent dans un bloc d’accordéon classique :
Pour en savoir plus :
Les carrousels d’images
Il en existe un grand nombre et une grande variété sur Internet et Bootstrap a cru bon en intégrer un aussi dans ses plugins par défaut. Il est paramétrable et personnalisable sur plusieurs points et voici à quoi il ressemble :
Pour un savoir plus :
PERSONNALISEZ VOTRE EXPÉRIENCE
Chez Bootstrap, ils ont pensé à tout : vous avez le loisir de n’embarquer avec vous, dans votre projet, que ce dont vous avez strictement besoin à la réalisation complète de votre site.
Pour ce faire, ils ont créé un petit onglet « customize » dans leur menu.
Cet outil vous permet de choisir uniquement les « paquets » dont vous avez besoin et ça, c’est bien !