
Bootstrap est une collection d’outils utiles à la création du design de sites et d’applications web. C’est un ensemble qui contient des codes HTML et CSS, des formulaires, boutons, outils de navigation et autres éléments interactifs, ainsi que des extensions JavaScript en option.
Le framework Bootstrap est donc un ensemble de fichiers CSS et JavaScript qui contiennent des règles prédéfinies et qui définissent des composants. Ces ensembles de règles sont enfermés dans des classes et nous n’aurons donc qu’à utiliser les classes qui nous intéressent afin d’appliquer un ensemble de styles à tel ou tel élément HTML.
Le framework est à récupérer ici : http://getbootstrap.com/getting-started#download il contient différents fichiers fichiers ventilés dans des répertoires :
Bootstrap propose un DOM de base pour les fichiers HTML. Il faut l’utiliser pour profiter des avantages du framework.
Voici cette base :
<!DOCTYPE html> <!-- WARNING : Respond.js doesn't work if you view the page via ile:// --> |
On y reconnaît le doctype du HTML5 (obligatoire pour Bootstrap), et des éléments particuliers dans le head :
On retrouve aussi des balises script dans le body qui permettent d’activer d’autres programmes en JavaScript de Bootstrap.
En conception web, comme en typographie et en publication assistée par ordinateur, une grille est un quadrillage invisible sur lequel sont calés les contenus. Elle contient donc des colonnes (col) et parfois des lignes (row).
Voici quelques exemples avec « * » correspondant à un nombre de colonnes.
Les deux dernières classes (col-md-pull-* et col-md-push-*) permettent donc de choisir l’ordre des colonnes.
D’autres classes proposées par Bootstrap permettent de s’intéresser à l’aspect des contenus et à la typographie. Voici quelques exemples :
Bootstrap, comme la plupart des frameworks CSS, propose des mécaniques pour aider à faire un tel menu.
L’élément qui contient le menu (ex. <nav>) devra comporter au moins deux classes :
Il faut noter que l’élément qui porte ces deux classes doit contenir une liste portant elle aussi deux classes particulières : nav et navbar-nav :
<ul class=”nav navbar-nav”> <li><a href=”lien1″>Premier élément du menu< /a></li > <li><a href=”lien2″>Second< /a></li > <li><a href=”lien3″>Troisième< /a></li > < /ul > |
Quelques autres classes :
Le principe du « responsive design » est de faire des sites capables de s’afficher correctement et lisiblement sur tous les types d’écrans (grands et petits, portrait ou paysage, etc.).
C’est inclus par défaut dans les frameworks CSS récents comme Bootstrap. C’est facilement vérifiable grâce à la fonction dédiée de Firefox qui permet de tester un site avec différents types d’écrans. On accède à cette fonction par le raccourci ¦§M.
Néanmoins, il est possible de contrôler plus finement cet automatisme pour avoir un affichage choisi pour chaque type d’écran.
Nous avons vu que les classes définissant la largeur des contenus sont de la forme col-md-* (avec « * » pour la largeur en colonnes, c’est-à-dire de 1 à 12). Il s’agit en fait de la classe qui détermine cela pour les écrans moyens (entre 992 et 1200 pixels de large), mais, il en existe d’autres pour les autres types d’écrans. Il y a :
Grâce à ces classes, on peut choisir pour chaque contenu de la page la façon dont ils vont s’afficher les uns par rapport aux autres en fonction du périphérique de consultation. Ex. : sur grand écran, on évitera les textes trop larges (illisibles) et donc on privilégiera les contenus rangés les uns à côté des autres. Au contraire, sur un appareil mobile à l’écran peu large, on favorisera les contenus placés les uns au-dessus des autres.
Note : on appelle « xs », « sm », « md », et « lg » des « breakpoints » car ils déterminent pour quelle taille d’écran un changement de comportement a lieu. Nous verrons plus loin que d’autres classes les utilisent.
Voir en détail les 4 types de classes : http://getbootstrap.com/css/#grid-options pour les différentes tailles d’écrans
D’autres classes permettent d’aller plus loin en donnant la possibilité de montrer ou de cacher certains contenus en fonction de la taille de l’écran. Les classes les plus simples à utiliser sont les classes pour cacher : hidden-* avec « * » à remplacer par les breakpoints de Bootstrap (« xs », « sm », « md » et « lg ») pour choisir sur quel type d’écran le contenu sera caché.
Les classes visible-x-y jouent le rôle inverse en permettant de montrer des contenus en fonction de la taille de l’écran. Elles prennent deux paramètres. « x » correspond au breakpoint utilisé et permet donc de choisir pour quelle taille d’écran montrer quelque chose. « y » correspond au type d’affichage à produire parmi trois possibilités : « block », « inline » et « inline-block » (voir le cours sur les CSS).
Voir : http://getbootstrap.com/css/#responsive-utilities-classes
Bootstrap propose aussi des fondations pour rendre les barres de menu plus agréables à utiliser sur les petits écrans : sur les grands écrans, le menu est affiché tel que nous l’avons défini précédemment, alors que sur les petits écrans il est remplacé par une icône, et le menu se déplie lorsque l’on clique (ou appuie avec son doigt) dessus.
Ce mécanisme dans Bootstrap met en jeu un programme JavaScript fourni et qui surveille dans le DOM la présence de contenus portant les deux classes navbar-collapse et collapse. Si ces classes sont présentes et que la taille d’écran atteint moins de 994px (écrans petits selon les breakpoints de Bootstrap), alors le contenu qu’elles désignent est caché au profit du contenu portant les classes navbar-toggle et collapsed ainsi que des attributs particuliers data-toggle=”collapse” et datatarget=”#bs-example-navbar-collapse-1″. Voici un exemple concret :
<nav class="navbar navbar-default" role="navigation">
<div class="container-luid">
<div class="navbar-header">
<button type="button" class="navbar-toggle collapsed"
data-toggle="collapse" datatarget="#bs-example-navbar-collapse-1">
<span class="sr-only">Toggle navigation< /span >
<span class="icon-bar">< /span >
<span class="icon-bar">< /span >
<span class="icon-bar">< /span >
< /button >
<a class="navbar-brand" href="#">Brand< /a >
< /div >
<div class="collapse navbar-collapse"
id="bs-example-navbar-collapse-1">
<ul class="nav navbar-nav">
<li class="active"><a href="#">Link< /a></li >
<a href="#">Link< /a></li >
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
Dropdown <span class="caret">< /span></a >
<ul class="dropdown-menu" role="menu"><a href="#">Action< /a></li >
<a href="#">Another action< /a></li >
<a href="#">Something else here< /a></li >
<li class="divider">< /li >
<a href="#">Separated link< /a></li >
<li class="divider">< /li>
<a href="#">One more separated link< /a></li >
< /ul >
< /li >
< /ul >
< /nav >
</div>
</div>
Vous pouvez tester cette barre de menu dans jsfiddle. Vous constaterez qu’elle contient un menu dépliant qui est également rendu possible grâce à un programme en JavaScript fourni avec Bootstrap.
Plus de détails :
| L | M | M | J | V | S | D |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| 8 | 9 | 10 | 11 | 12 | 13 | 14 |
| 15 | 16 | 17 | 18 | 19 | 20 | 21 |
| 22 | 23 | 24 | 25 | 26 | 27 | 28 |
| 29 | 30 | |||||