683140 Bootstrap de Twitter Un Kit Css Et Plus

167
Bootstrap de Twitter : un kit CSS et plus ! Par bestmomo www.siteduzero.com Licence Creative Commons 6 2.0 Dernière mise à jour le 12/10/2012 

Transcript of 683140 Bootstrap de Twitter Un Kit Css Et Plus

  • Bootstrap de Twitter :un kit CSS et plus !

    Par bestmomo

    www.siteduzero.com

    Licence Creative Commons 6 2.0Dernire mise jour le 12/10/2012

  • Sommaire 2Sommaire ........................................................................................................................................... 2Lire aussi ............................................................................................................................................ 4 Bootstrap de Twitter : un kit CSS et plus ! .......................................................................................... 5Partie 1 : Premiers pas ....................................................................................................................... 5Mise en route ..................................................................................................................................................................... 5Un framework ? ........................................................................................................................................................................................................... 6Dcouverte de Bootstrap ............................................................................................................................................................................................. 6Origine de Bootstrap ................................................................................................................................................................................................... 6Contenu du kit ............................................................................................................................................................................................................. 6Installation ................................................................................................................................................................................................................... 8Une trame pour dmarrer ............................................................................................................................................................................................

    10Une grille ? ...................................................................................................................................................................... 11Prsentation .............................................................................................................................................................................................................. 11Le principe de la grille ................................................................................................................................................................................................ 11Organisation de la grille ............................................................................................................................................................................................. 13La grille fixe ............................................................................................................................................................................................................... 13Une seule range ...................................................................................................................................................................................................... 13Plusieurs ranges ..................................................................................................................................................................................................... 14Sauter des colonnes ................................................................................................................................................................................................. 15Imbrication d'lments .............................................................................................................................................................................................. 16 Un petit TP ............................................................................................................................................................................................................... 17La grille lastique ...................................................................................................................................................................................................... 17Un peu d'lasticit ..................................................................................................................................................................................................... 20Mise en page ............................................................................................................................................................................................................. 20Mise en page fixe ...................................................................................................................................................................................................... 21Mise en page lastique .............................................................................................................................................................................................

    23Un peu de pratique .......................................................................................................................................................... 23Un exemple de page ................................................................................................................................................................................................. 27Un petit TP ................................................................................................................................................................................................................

    28Partie 2 : Mise en forme des lments .............................................................................................. 29Elments de base ............................................................................................................................................................ 29Listes et tableaux ...................................................................................................................................................................................................... 31Les listes ................................................................................................................................................................................................................... 32Les tableaux .............................................................................................................................................................................................................. 36Formulaires ............................................................................................................................................................................................................... 51Boutons, icnes et images ........................................................................................................................................................................................ 58Un petit TP ................................................................................................................................................................................................................

    59Les composants intgrs ................................................................................................................................................ 60La navigation ............................................................................................................................................................................................................. 60Une barre de navigation ............................................................................................................................................................................................ 65La pagination ............................................................................................................................................................................................................. 67Effets typographiques ................................................................................................................................................................................................ 67Hero Unit ................................................................................................................................................................................................................... 69Des libells colors ................................................................................................................................................................................................... 69Des badges colors .................................................................................................................................................................................................. 69Thumbnails ................................................................................................................................................................................................................ 72Alertes et barres de progression ............................................................................................................................................................................... 72Alertes ....................................................................................................................................................................................................................... 74Barres de progression ...............................................................................................................................................................................................

    77Partie 3 : Mise en forme avance ..................................................................................................... 77Les plugins jQuery ........................................................................................................................................................... 77Menu droulant ......................................................................................................................................................................................................... 77Menu droulant dans la barre de navigation ............................................................................................................................................................. 78 Menu droulant dans un bouton ............................................................................................................................................................................... 80Sous-menu ................................................................................................................................................................................................................ 81Fentre modale ......................................................................................................................................................................................................... 84Onglets ...................................................................................................................................................................................................................... 87Carousel .................................................................................................................................................................................................................... 92Info-bulles et Popover ............................................................................................................................................................................................... 92Info-bulle .................................................................................................................................................................................................................... 93Popover ..................................................................................................................................................................................................................... 96Boutons ..................................................................................................................................................................................................................... 96Bouton bascule ......................................................................................................................................................................................................... 96Boutons effet "checkbox" .......................................................................................................................................................................................... 97Boutons effet "radio" .................................................................................................................................................................................................. 97Boutons pour attente de processus .......................................................................................................................................................................... 99Typeahead .................................................................................................................................................................................................................

    100Effet accordon ....................................................................................................................................................................................................... 105Un exemple de ralisation ....................................................................................................................................................................................... 105Le rsultat final luvre ........................................................................................................................................................................................ 107Organisation de la page .......................................................................................................................................................................................... 109La barre de menu .................................................................................................................................................................................................... 110Les barres de boutons et les canvas ....................................................................................................................................................................... 111Le pied de page .......................................................................................................................................................................................................

    2/168

    www.siteduzero.com

  • 112Les pages modales ................................................................................................................................................................................................. 113Configurer Bootstrap ..................................................................................................................................................... 113Configuration simplifie ........................................................................................................................................................................................... 113Configurer en ligne sur le site de Bootstrap ............................................................................................................................................................ 115Configurer en ligne sur le site Stylebootstrap .......................................................................................................................................................... 115Varier les styles ....................................................................................................................................................................................................... 118Un gnrateur de thmes ........................................................................................................................................................................................ 118Utilisation de LESS .................................................................................................................................................................................................. 119C'est quoi LESS ? ................................................................................................................................................................................................... 121 Exemple simple de configuration ........................................................................................................................................................................... 125Utilisation dynamique de LESS ...............................................................................................................................................................................

    127Partie 4 : Bootstrap et son environnement ...................................................................................... 127Le responsive design .................................................................................................................................................... 127Prsentation ............................................................................................................................................................................................................ 127Prsentation ............................................................................................................................................................................................................ 128Un exemple sans Bootstrap .................................................................................................................................................................................... 136Un exemple avec Bootstrap ....................................................................................................................................................................................

    142Plugins et extensions .................................................................................................................................................... 143Plugins .................................................................................................................................................................................................................... 143Bootstrap Image Gallery .......................................................................................................................................................................................... 147 Colorpicker and Datepicker for Twitter Bootstrap ................................................................................................................................................... 154Extensions ............................................................................................................................................................................................................... 154De jolis boutons ....................................................................................................................................................................................................... 157Des icnes vectorielles ........................................................................................................................................................................................... 160Kickstrap ................................................................................................................................................................................................................. 162Intgration divers environnements ....................................................................................................................................................................... 162jQuery UI Bootstrap ................................................................................................................................................................................................. 163jQuery-Mobile-Bootstrap-Theme ............................................................................................................................................................................. 163Django-bootstrap-toolkit .......................................................................................................................................................................................... 163Thmes pour Wordpress ......................................................................................................................................................................................... 164 Thme pour Joomla ............................................................................................................................................................................................... 165Extension pour Typo ................................................................................................................................................................................................ 165Extension pour Yii .................................................................................................................................................................................................... 165Un template pour Photoshop .................................................................................................................................................................................. 166Une extension pour Fireworks ................................................................................................................................................................................. 166Une bote outils pour facebook .............................................................................................................................................................................

    Sommaire 3/168

    www.siteduzero.com

  • Bootstrap de Twitter : un kit CSS et plus !

    Par bestmomoMise jour : 12/10/2012Difficult : Intermdiaire Dure d'tude : 20 jours

    3 848 visites depuis 7 jours, class 40/798Vous crez des pages web et vous passez beaucoup de temps avec le CSS ?

    Alors Bootstrap est fait pour vous et ce cours va vous guider dans la dcouverte de cette puissante bote outil. Bootstrap estun framework qui peut rendre votre vie de plus facile pour crer l'architecture d'une page web.

    Mais Bootstrap va bien plus loin qu'offrir du code CSS dj bien organis et structur. Il offre aussi des plugins jQuery dequalit pour enrichir vos pages.

    Vous tes prt ? Bon on y va mais il serait bien pour profiter pleinement de ce cours de possder quelques connaissances :

    La base indispensable est de bonnes notions en HTML et CSS. Vous avez des lacunes ? Comblez-les avec le cours deMateoPour comprendre la mise en uvre des plugins jQuery vous aurez besoin des quelques bases dans ce domaine. Il vousen manque, alors vous pouvez rparer a ici.Si vous voulez modifier Bootstrap pour l'adapter vos besoins il vous faudra connatre LESS. L aussi vous avez besoind'un coup de main ? C'est ici.

    Ce tutoriel a t mis jour et complt pour la version 2.1.

    Allez on y va !

    Sommaire 4/168

    www.siteduzero.com

  • Partie 1 : Premiers pas

    Dans cette premire partie, nous allons voir ce qu'est un framework et en quoi il peut nous tre utile. Nous allons voir commentinstaller Bootstrap. Nous allons commencer l'utiliser pour organiser une page web avec un systme de grille simple et efficace.

    Aprs une prsentation gnrale et une illustration des principales possibilits de structuration de page avec Bootstrap nousverrons un cas pratique d'application.

    Mise en routePour utiliser efficacement Bootstrap vous devez dj tre convaincu de son utilit, vous devez aussi savoir l'installer. Ce chapitreest destin vous faire dcouvrir en quoi Bootstrap peut vous aider et comment vous devez le mettre en uvre pour l'utiliserefficacement.

    Un framework ?Un framework, c'est quoi ?

    C'est un ensemble de composants structurs qui sert crer les fondations et organiser le code informatique pour faciliter letravail des programmeurs, que ce soit en terme de productivit ou de simplification de la maintenance. Il en existe beaucoup pourles applications web qui ciblent les langages Java, Python, Ruby, PHP...

    Les frameworks CSS sont spcialiss, comme leur nom l'indique, dans les CSS ! C'est--dire qu'ils nous aident mettre en formedes pages web : organisation, aspect, animation...

    Ils semblent devenus la mode et il en existe un certain nombre :Blueprint960 Grid SystemYUI Grid CSS52Frameworkinuit.cssElements CSS frameworkBlueTripez-css...

    Quel en est l'intrt ?

    Les navigateurs sont pleins de fantaisies et ont des comportements trs diffrents, surtout pour les anciennes versions.Les frameworks sont cross-browser et on a la garantie d'une prsentation similaire quel que soit le navigateur utilis etd'une parfaite compatibilit,Les frameworks CSS font gagner du temps de dveloppement parce qu'ils nous proposent les fondations de laprsentation,Les frameworks CSS normalisent la prsentation en proposant un ensemble homogne de styles,Les frameworks CSS offrent souvent des lments complmentaires : boutons esthtiques, barres de navigation...La grande diffusion de nouveaux moyens de visualisation du web (iPod, iPad...) impose dsormais la prise en compte detailles d'cran trs varies, les frameworks CSS prennent gnralement en compte cette contrainte.

    Et les inconvnients ?

    Pour utiliser efficacement un framework il faut bien le connatre, ce qui implique un temps d'apprentissageLa normalisation de la prsentation peut devenir lassante en lissant les effets visuels

    Par rapport aux deux inconvnients noncs, Bootstrap est d'une prise en main rapide mme pour un dbutant (surtout avec unjoli tuto comme celui-ci ) et est totalement configurable parce qu'il est construit avec LESS (que nous verrons un peu plus

    Bootstrap de Twitter : un kit CSS et plus ! 5/168

    www.siteduzero.com

  • loin dans le cours).Dcouverte de BootstrapOrigine de Bootstrap

    Vous connaissez forcment Twitter, un des principaux rseaux sociaux qui inondent la plante de liens virtuels entre les humainsdevenus des noyaux cyberntiques. Le projet Bootstrap a t publi en aot 2011 pour rpondre des besoins internes dedveloppement de cette entreprise. Il a t mis disposition du public sous licence Apache. La version 2.1 est sortie en aot2012.

    Contenu du kitBootstrap propose :

    une mise en page base sur une grille de 12 colonnes. Vous avez donc une grille disposition bien pratique. Bien sr, sivous avez besoin de plus de 12 colonnes, ou de moins, il est toujours possible de modifier la configuration.un reset CSS bas sur Normalize.cssdu code fond sur HTML 5 et CSS 3une bibliothque totalement open source sous licence Apachedu code qui tient compte du format d'affichage des principaux outils de navigation (responsive design) : smartphones,tablettes...des plugins jQuery de qualitun rsultat cross-browser, en prenant mme en compte IE7, donc une garantie de compatibilit maximaleune bonne documentation sur le site de Twitterla garantie d'une volution permanenteune architecture base sur LESS, un outil bien pratique qui tend les possibilits de CSS

    Vous pouvez trouver toutes les informations sur Bootstrap directement sur le site ddi.

    C'est quoi un reset CSS ?

    Les navigateurs n'adoptent pas tous les mmes valeurs par dfaut pour les styles des lments HTML. Cela peut gnrerquelques surprises au rendu des pages WEB selon le navigateur utilis. Le reset consiste mettre zro toutes les valeurs pourainsi uniformiser le rendu. Le reset de Bootstrap est bas sur celui d'Eric Meyer, allg et adapt.

    InstallationL'installation de Bootstrap est simple : cliquez sur le bouton de tlchargement sur le site de Twitter.

    Mise jour avec la version 2.1

    Quand vous tlchargez la librairie vous obtenez un fichier zipp contenant un rpertoire bootstrap avec 3 sous-rpertoirescontenant quelques fichiers :

    Partie 1 : Premiers pas 6/168

    www.siteduzero.com

  • Voyons un peu ces fichiers :bootstrap.css comporte les classes de base de Bootstrap ;bootstrap.min.css comporte les mmes classes de base que bootstrap.css sans les commentaires ; bootstrap-responsive.css comporte les classes de base pour le responsive design ;bootstrap-responsive.min.css comporte les mmes classes de base que bootstrap-responsive.css sans les commentaires ; glyphicons-halflings.png comporte une collection d'icnes fournies par glyphicons ;glyphicons-halflings-white.png comporte la mme collection d'icnes mais blanche ;bootstrap.js contient des fonctions JavaScript des composants de Bootstrap ;bootstrap.min.js contient les mmes fonctions JavaScript sans les commentaires. C'est le fichier utiliser en production.

    Les fichiers "min" (bootstrap.min.css et bootstrap-responsive.min.css) contiennent le mme code que leurs quivalents(bootstrap.css et bootstrap-responsive.css) mais ont t purs des commentaires et ainsi allgs pour acclrer leur chargement.

    D'accord, mais que mettre sur un site pour que Bootstrap fonctionne ?

    Il faut distinguer les deux situations :Pendant la phase de dveloppement, il est intressant de pouvoir naviguer dans le code de Bootstrap, il faut donc mettreles fichiers CSS non compresss ;Lorsque votre site est en ligne vous n'avez plus vous inquiter du code et seule compte la vitesse de chargement, il fautdonc cette fois utiliser les versions compresses ("min").

    Voil les fichiers utiles pendant la phase de dveloppement (le fichier bootstrap-responsive.css n'est prvoir que si vous avezbesoin du responsive design, le fichier bootstrap.js n'est prvoir que si vous utilisez des plugins jQuery) :

    Voil les fichiers utiles lorsque le site est en ligne (le fichier bootstrap-responsive.min.css n'est prvoir que si vous avez besoindu responsive design, le fichier bootstrap.min.js n'est prvoir que si vous utilisez des plugins jQuery) :

    Dans tous les exemples de ce tuto je pars du principe qu'un rpertoire bootstrap a t cr la racine du site avec les troisrpertoires css, img et js comportant les fichiers cits ci-dessus.

    Pour que bootstrap fonctionne il faut le dclarer dans les pages HTML qui doivent d'ailleurs tre imprativement au formatHTML 5 , donc :

    Code : HTML

    Partie 1 : Premiers pas 7/168

    www.siteduzero.com

  • ...

    Il faut ensuite dclarer au minimum le fichier bootstrap.min.css (ou bootstrap.css) dans l'en-tte de la page web :

    Code : HTML

    ...

    Si votre application est destine tre utilise sur des supports varis (tablettes, iPhones...) vous devez aussi dclarer le fichierbootstrap-responsive.min.css (ou bootstrap-responsive.css) dans l'en-tte de la page web :

    Code : HTML

    ...

    A partir de l toutes les classes sont accessibles... videmment vous devez adapter le lien selon la localisation de vos fichiers,c'est le cas d'ailleurs sur mon site de dmonstration o vous trouverez le lien ainsi libell :

    Code : HTML

    Pour remonter dans l'arbre des rpertoires.Une trame pour dmarrer

    Vous trouvez aussi sur le site une page de dmarrage comportant l'essentiel des lments pour vous aider initier un projet. Pourle moment vous n'allez pas encore comprendre l'utilit de tous ces lments, mais vous y reviendrez par la suite lorsque vousaurez fait le tour de ce cours.

    Vous y trouvez les appels aux fichiers CSS :

    Code : HTML

    body { padding-top: 60px; /* 60px to make the container go all theway to the bottom of the topbar */ }

    Il faut videmment adapter les liens votre situation. Nous verrons l'utilit du style ajout lors de lexamen des barres denavigation.

    Partie 1 : Premiers pas 8/168

    www.siteduzero.com

  • Je rappelle que le fichier bootstrap-responsive.css est utile si votre application doit s'adapter une varit de tailles d'crans. Jedvelopperai cette notion un peu dlicate dans un chapitre ultrieur.

    On trouve ensuite les icnes pour les appareils d'Apple (iPhone, iPod Touch et iPad):

    Code : HTML

    A adapter videmment avec vos icnes personnelles . Je rappelle que ces icnes sont pertinentes pour qu'il n'y ait pas unecration automatique d'une icne partir d'une capture d'cran de votre site.

    Une trame de la barre de navigation (je vous explique tout a en dtail dans ce cours) :

    Code : HTML

    Project name Home About Contact

    Et en fin de page les appels Javascript (utiles si vous utilisez des plugins jQuery, comme nous allons le voir dans ce cours):

    Code : HTML

    Partie 1 : Premiers pas 9/168

    www.siteduzero.com

  • L aussi il ne faut conserver que les appels utiles et adapter les liens.

    Ces fichiers ne se trouvent pas dans le pacquage de Bootstrap, on les trouve o ?

    Le fichier jquery.js peut tre tlcharg sur le site de jQuery. Les autres fichiers correspondent aux plugins jQuery de Bootstrap.Tout le code se trouve galement dans le fichier bootstrap.js (ou bootstrap.min.js) qui se trouve lui dans le pacquage. Il y a lune petite incohrence dans la documentation de Bootstrap. Vous avez donc le choix entre utiliser le fichier bootstrap.js (oubootstrap.min.js) pour avoir tous les plugins disponibles avec une seule rfrence comme je vous le propose dans le chapitrecorrespondant ou rcuprer individuellement les fichiers.

    Ainsi donc si vous optez pour le fichier contenant tous les plugins, ce que je vous conseille, le code devient plus simple :

    Code : HTML

    Bon maintenant vous savez tout pour dmarrer avec Bootstrap, on va pouvoir commencer les choses intressantes

    Partie 1 : Premiers pas 10/168

    www.siteduzero.com

  • Une grille ?L'organisation spatiale des pages web est toujours la premire proccupation lorsquon cre un site. Est-ce qu'on prvoit unebannire ? Faut-il un espace pour un menu gauche ou en haut ? Y aura-t-il des blocs sur un des cts pour recevoir certainesfonctionnalits comme la connexion ou des infos ? Faut-il prvoir un bas de page ?

    Bootstrap ne rpond videmment pas ces questions, mais par contre il peut grandement vous faciliter la tche, avec sonsystme de grille, pour obtenir le rsultat que vous souhaitez.

    Petite visite guide...PrsentationLe principe de la grille

    La grille est tout simplement un dcoupage en cellules de mmes dimensions :

    On peut alors dcider d'organiser du contenu en utilisant pour chaque lment une ou plusieurs cellules :

    La grille de Bootstrap comporte 12 colonnes comme dans l'illustration ci-dessus. Vous commencez sans doute comprendrel'utilit de cette organisation

    Organisation de la grilleBootstrap est essentiellement un fichier CSS. Il comporte de trs nombreuses classes que l'on peut utiliser directement dans lesbalises HTML.

    La premire classe connatre est row qui reprsente une range. Il faut ensuite dfinir le nombre de colonnes pour chaquelment en s'arrangeant pour en avoir 12 en tout. Pour dfinir le nombre de colonnes utilises pour chaque lment on disposed'une batterie de 12 classes :

    span1span2span3span4span5span6span7span8span9span10span11span12

    Partie 1 : Premiers pas 11/168

    www.siteduzero.com

  • Ces classes sont trs simples, elles hritent d'une dfinition commune :Code : CSS

    [class*="span"] { float: left; margin-left: 20px;}

    Il y a donc une marge de 20px entre les colonnes. On trouve aussi une fixation individuelle de la largeur, par exemple :Code : CSS

    .span4 { width: 300px;}

    Pourquoi 300px ?

    Si vous regardez la largeur pour le "span1" vous trouvez la valeur 60. On pourrait donc s'attendre une valeur de 4 * 60 = 240pour le "span4", mais il ne faut pas oublier les 3 marges intermdiaires 3 * 20 = 60, au final 240 + 60 = 300

    On a dit que la grille complte fait 940px, hors si chaque colonne avec sa marge occupe 80px on a en tout 80 * 12 = 960px. D'ovient cette diffrence de 20px ? Tout simplement de la marge gauche de la premire colonne qui est inutile. Cette diffrence estgre par la classe row :

    Code : CSS

    .row { margin-left: -20px;}

    Un petit exemple ?

    Pour avoir un lment de 4 colonnes de large accoupl avec un lment de 8 colonnes de large on a :

    Code : HTML

    4 colonnes 8 colonnes

    Voici une illustration de ce code :

    Aprs cette petite mise en jambe pour vous prsenter la notion de grille dans Bootstrap on va passer en revue les possibilitsdans le dtail. Mais pour visualiser tous les exemples qui vont suivre je vous propose d'ajouter un peu de style, histoired'afficher les lments de faon explicite. Pour viter de polluer le code HTML on va mettre ce style spcifique au tuto dans unfichier CSS particulier :

    Partie 1 : Premiers pas 12/168

    www.siteduzero.com

  • Code : CSS - css/tuto 1.css

    [class*="span"] { background-color: lightgreen; margin-bottom: 10px; border-radius: 5px 5px 5px 5px; line-height: 80px; text-align: center;}[class="span10"] { background-color: green;}

    Le seul but de ces rgles de style est de faire apparatre nettement les lments l'cran et tant qu' faire de faon lgante...La grille fixeUne seule range

    Dans ce premier exemple, on va dclarer une seule range avec deux lments :

    Code : HTML - tuto01_ 01

    4 colonnes8 colonnes

    Mise en page rapide et simple non ? Cliquez sur l'image pour voir l'effet rel. Il en sera de mme pour presque toutes lesillustrations de ce tutoriel.

    Plusieurs rangesPour obtenir plusieurs ranges, il suffit d'utiliser plusieurs fois la classe row. Un petit exemple avec 3 ranges pour voir l'effet :

    Code : HTML - tuto 01_02

    Partie 1 : Premiers pas 13/168

    www.siteduzero.com

  • 1 col 2 colonnes 3 colonnes 6 colonnes

    12 colonnes

    4 colonnes 8 colonnes

    Sauter des colonnesBootstrap permet aussi de sauter des colonnes :

    Il y a quelques classes d'offset pour a :offset1offset2offset3offset4offset5offset6offset7offset8offset9offset10offset11

    Ces classes se contentent d'ajouter une marge gauche. Par exemple :

    Partie 1 : Premiers pas 14/168

    www.siteduzero.com

  • Code : CSS

    .offset6 { margin-left: 500px;}

    Dans ce cas 6 colonnes 60px + 7 marges gauches 20px

    Voici un exemple :

    Code : HTML - tuto 01_03

    3 colonnes 6 colonnes 3 colonnes 3 colonnes3 colonnes

    On a saut 6 colonnes grce la classe offset6.

    Imbrication d'lmentsOn doit souvent imbriquer des lments dans une page web, est-ce possible avec Bootstrap ?

    Autrement dit d'inclure un row dans un span. Et bien on va tester a tout de suite :

    Code : HTML - tuto 01_04

    Partie 1 : Premiers pas 15/168

    www.siteduzero.com

  • Niveau 1

    Niveau 2Niveau 2

    On dirait bien que a fonctionne

    Un petit TPPour vous entraner, je vous propose d'obtenir le rsultat suivant :

    Donc deux zones spares avec un offset de 2 colonnes dans la deuxime.

    Voici la solution :

    Secret (cliquez pour afficher)Code : HTML

    Niveau 1

    Partie 1 : Premiers pas 16/168

    www.siteduzero.com

  • Niveau 2 Niveau 2 Niveau 1 Niveau 2 Niveau 2

    La grille lastiqueUn peu d'lasticit

    Dans le chapitre prcdent, nous avons vu comment utiliser une grille fixe, chaque colonne ayant une largeur fixe en pixels. Ilexiste une autre possibilit dans laquelle les largeurs ne sont plus tablies en pixels mais en pourcentages.

    Reprenons le code du "tuto 01_01" de la partie prcdente. Voici ce que donne l'affichage :

    La largeur de la fentre tant plus grande que celle d'un row on constate juste l'apparition d'une marge droite. Que se passe-t-ilsi on rduit la largeur de la fentre ?

    Les colonnes ayant des largeurs fixes, le deuxime lment passe sous le premier puisqu'il n'a plus suffisamment de place.Maintenant, voyons ce que a donne avec une grille lastique. La seule modification effectuer est au niveau de la classe rowqui devient row-fluid.

    Voici la classe "row-fluid" :Code : CSS

    Partie 1 : Premiers pas 17/168

    www.siteduzero.com

  • .row-fluid { width: 100%;}

    On a donc une occupation totale du contenant.

    Code : HTML - tuto 01_05

    4 colonnes 8 colonnes

    Cette fois les lments occupent toute la largeur de la fentre dans tous les cas tant donn qu'ils sont affects en pourcentage.

    Mais on a vu que les classes span dfinissent une largeur en pixel, comment sont-elles maintenant dfinies enpourcentage ?

    Regardez cette classe :Code : CSS

    .row-fluid .span4 { width: 31.914893617021278%;}

    Hormis cette lasticit on conserve les mmes principes qu'avec une grille fixe.

    Il y a toutefois une petite question qu'on peut se poser : que se passe-t-il si on introduit moins de colonnes dans lecontenu que dans le contenant dans cette version lastique ?

    Partie 1 : Premiers pas 18/168

    www.siteduzero.com

  • On va tester...

    Code : HTML - tuto 01_06

    Niveau 1 Niveau 2 Niveau 2

    De faon trs logique les lments occupent la totalit des colonnes qui leurs sont assignes et rien de plus...

    La version 2.1 a vu l'apparition des offsets aussi pour les grilles lastiques

    Ainsi on peut dsormais faire ce genre de composition en grille lastique :

    Code : HTML

    3 colonnes

    Partie 1 : Premiers pas 19/168

    www.siteduzero.com

  • 6 colonnes 3 colonnes 3 colonnes 3 colonnes

    Mise en pageL'intrt principal d'une grille est de raliser une mise en page. Nous allons voir les deux faons de raliser cela avec Bootstrap,avec toujours la mme simplicit de mise en uvre.

    Mise en page fixeLa classe englobante pour raliser une mise en page est container :

    Code : HTML

    ...

    Voici un premier exemple :

    Code : HTML - tuto 01_07

    Partie 1 : Premiers pas 20/168

    www.siteduzero.com

  • Partie 1 Partie 2

    On constate un centrage de la grille utilise.

    Il est intressant de jeter un il sur la classe container :

    Code : CSS

    .container { margin-right: auto; margin-left: auto;}

    La mise en "auto" des marges gauche et droite provoque le centrage.

    Mise en page lastiquePour une mise en page lastique le principe est le mme, mais la classe utiliser est container-fluid :

    Code : HTML

    ...

    Voici un exemple simple :

    Code : HTML - tuto 01_08

    Partie 1 : Premiers pas 21/168

    www.siteduzero.com

  • Partie 1 Partie 2

    Maintenant on peut redimensionner la fentre, on a une adaptation des lments.

    Voyons un peu cette classe container-fluid :

    Code : CSS

    .container-fluid { padding-right: 20px; padding-left: 20px;}

    Un petit dcalage du contenu de 20px des deux cts...Maintenant plus rien de la mise en page avec Bootstrap ne vous chappe alors nous allons passer un exemple pratique...

    Partie 1 : Premiers pas 22/168

    www.siteduzero.com

  • Un peu de pratiqueIl est temps maintenant de mettre en application ce que je vous ai expliqu prcdemment

    Un exemple de pageVoici le premier jet d'une page web de test que je vais faire voluer progressivement, pour le moment avec ce template :

    Code : HTML

    ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...

    Partie 1 : Premiers pas 23/168

    www.siteduzero.com

  • Une simple composition avec un en-tte et 3 ranges. L'en-tte ne comporte que le titre avec une classe un peu particulire quenous allons voir plus loin. La premire range comporte un seul lment. La deuxime par contre en comporte 12 d'une largeur de2 colonnes. Si on calcule bien a donne une largeur de 24 colonnes, le rsultat est que les lments se rpartissent en fait surdeux niveaux l'cran comme on peut le constater. La dernire range enfin comporte deux lments.

    Voici une visualisation du dcoupage :

    Partie 1 : Premiers pas 24/168

    www.siteduzero.com

  • La classe page-headerCette classe fixe quelques valeurs :

    Code : CSS - classe page-header

    .page-header { border-bottom: 1px solid #EEEEEE; margin: 18px 0; padding-bottom: 17px;}

    Une marge gauche de 18 pixels, une ligne infrieure de 1px de couleur grise avec un cart du contenu par rapport cette ligne de17px. Donc une approche sympathique pour un en-tte de page. Il suffit d'y placer un titre comme je l'ai fait ici :

    Code : HTML

    Mon amour pour les tigres

    Quelques mises en valeurDans le premier paragraphe, j'ai utilis quelques mises en valeur :

    Partie 1 : Premiers pas 25/168

    www.siteduzero.com

  • Code : HTML

    Je suis passionn par les tigres depuis trs longtemps. Ce site a t construit en hommage ces merveilleux flins... Je fais partie de la SAT qui a pour but de faire connatre ces splendides animaux.

    Observez la qualit du popup lorsqu'on passe le curseur au-dessus de l'abrviation SAT :

    Une citationLe chapitre suivant comporte une citation avec utilisation de la balise blockquote :

    Code : HTML

    Le Tigre (Panthera tigris) est un mammifre carnivore...Wikipedia

    Le rsultat est sobre et lgant :

    La rfrence infrieure "Wikipedia" a t renvoye droite avec la classe pull-right qui se contente de rendre flottant droite :

    Code : CSS - Classe pull-right

    .pull-right { float: right;}

    Une adresseDans la partie infrieure gauche figure une adresse. j'ai simplement utilis la balise :

    Code : HTML

    Vous pouvez me contacter cette adresse : Tigrou Alfred

    Partie 1 : Premiers pas 26/168

    www.siteduzero.com

  • Alle des fauves 28645 Flins-sur-Loire

    Pour un rsultat vraiment satisfaisant :

    Juste un peu de style ajoutPour donner plus d'harmonie cette page, j'ai t oblig d'ajouter une marge basse de 20px tous les span :

    Code : CSS

    [class*="span"] { margin-bottom: 20px;}

    C'est le seul lment de style ajout cette page.Un petit TP

    Maintenant un petit TP pour voir si vous avez compris tout ce que j'ai racont dans ce chapitre.

    Le but est d'obtenir une mise en page fixe de ce type :

    Donc un bandeau suprieur, une zone de contenu centrale, deux zones latrales comportant chacune deux blocs superposs etun pied de page.

    Rflchissez quand mme un peu avant de regarder ma solution

    Secret (cliquez pour afficher)

    Code : HTML

    Partie 1 : Premiers pas 27/168

    www.siteduzero.com

  • /* Styles utiles la mise en page */header { height: 100px;}section { height: 300px;}footer { height: 50px;}.bloc { height: 150px;}/* Les styles suivants sont juste pour faire apparatre la miseen page */.span12 { background-color:#0CF;}.span6 { background-color:#EE0;}[class="span3 bloc"] { background-color:#F60;}[class="span3 bloc"]:first-child { background-color:#090;}

    Pour voir ce que a donne, c'est ici.Maintenant que vous savez tout sur la mise en page nous allons passer au contenu et voir ce que Bootstrap a nous proposerdans ce domaine...

    Partie 1 : Premiers pas 28/168

    www.siteduzero.com

  • Partie 2 : Mise en forme des lments

    Dans cette deuxime partie, nous allons voir ensemble comment mettre en page, mettre en forme et agrmenter un peu le site.

    Elments de baseDans cette partie nous allons voir ce que Bootstrap peut nous apporter dans la mise en forme et la prsentation des lments debase d'une page web : listes, tableaux, formulaires, boutons , icnes...

    Listes et tableauxVoici le deuxime jet de la page web de test avec ce template :

    Code : HTML

    ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...

    Partie 2 : Mise en forme des lments 29/168

    www.siteduzero.com

  • La prsentation s'est enrichie d'une range et de nouveaux lments. Voici une visualisation du dcoupage :

    Partie 2 : Mise en forme des lments 30/168

    www.siteduzero.com

  • Les listesBootStrap propose une mise en forme lgante des listes. J'en ai prvu une sur la page :

    Code : HTML

    Voici les sous-espces des tigres :

    Tigre de Sibrie Tigre de Chine mridionale Tigre de Bali Tigre de d'Indochine Tigre de Malaisie Tigre de Java Tigre de Sumatra Tigre du Bengale Tigre de la Caspienne

    Le rsultat :

    Partie 2 : Mise en forme des lments 31/168

    www.siteduzero.com

  • A noter l'existence d'une classe "unstyled" appliquer la balise , ce qui donne donc , quisupprime les puces. Voici le rsultat sur la liste de la page :

    Les tableauxPlusieurs mises en forme sont prvues pour les tableaux, j'en ai retenu une pour le tableau de la page :

    Code : HTML

    Les menaces pour les tigres Lieu Menace Grand Mekong Demande croissante de certaines parties de lanimal pour la mdecine chinoise traditionnelle et fragmentation des habitats du fait du dveloppement non durable dinfrastructures le de Sumatra Production dhuile de palme et de ptes papiers Indonsie et Malaisie

    Partie 2 : Mise en forme des lments 32/168

    www.siteduzero.com

  • Pte papier, lhuile de palme et le caoutchouc tats-Unis Les tigres captifs reprsentent un danger pour les tigres sauvages Europe Gros apptit pour lhuile de palme Npal Commerce illgal de produits drivs de tigres

    Le rsultat :

    On va analyser les classes utilises...

    Classe "table"C'est la classe de base pour les tableaux, elle fixe quelques styles et cre une bordure suprieure :

    Code : CSS

    Classe "table-bordered"C'est la classe pour avoir de jolies bordures avec des coins arrondis :

    Partie 2 : Mise en forme des lments 33/168

    www.siteduzero.com

  • Code : CSS

    Classe "table-striped"Cette classe ajoute un fond avec un gris trs lger pour les lignes impaires (1, 3, ...) :

    Code : CSS

    Je ne vous mets pas d'illustration parce que franchement, le gris est si lger qu'on ne voit rien . Quand je regarde la couleurutilise, je trouve la valeur #F9F9F9, ce qui est effectivement un gris trs trs lger... Vous pouvez remarquer aussi que lorsqu'onpasse le curseur au-dessus du tableau la couleur de fond de la ligne correspondante change avec la valeur #F5F5F5, ce qui estdj un gris assez lger. Je pense que des valeurs un peu plus marques auraient t souhaitables. Mais rien n'empche de leschanger . Pour la page d'exemple, je suis pass par une autre approche qui apparatra dans un chapitre ultrieur.

    BootStrap fait une utilisation intensive des nouvelles possibilits du CSS3 comme ici pour changer la couleur de fonddes lignes impaires avec cette lgante syntaxe :

    Code : CSS

    .table-striped tbody tr:nth-child(odd) td, .table-stripedtbody tr:nth-child(odd) th { background-color: #f9f9f9;}

    Mais il parat que IE ne les digre pas, je n'ai pas test...

    Classe "table-condensed"Cette classe permet de condenser le tableau pour qu'il occupe moins de place verticale :

    Code : CSS

    Partie 2 : Mise en forme des lments 34/168

    www.siteduzero.com

  • C'est la version finale que j'ai adopte. Vous avez remarqu qu'on peut cumuler l'application des classes sans problme, comme jel'ai fait dans cette dmonstration progressive.

    Un peu de couleur dans les tableauxLa version 2.1 introduit la possibilit de colorer le fond des lignes des tableaux avec les classes success error et info. Voici letableau de notre exemple un peu anim de couleurs avec ces classes :

    Code : HTML

    Les menaces pour les tigres Lieu Menace

    Grand Mekong Demande croissante de certaines parties de lanimal pour la mdecine chinoise traditionnelle et fragmentation des habitats du fait du dveloppement non durable dinfrastructures

    le de Sumatra Production dhuile de palme et de ptes papiers

    Indonsie et Malaisie Pte papier, lhuile de palme et le caoutchouc

    tats-Unis Les tigres captifs reprsentent un danger pour les tigres sauvages

    Europe Gros apptit pour lhuile de palme

    Npal Commerce illgal de produits drivs de tigres

    Partie 2 : Mise en forme des lments 35/168

    www.siteduzero.com

  • Mais videmment cette possibilit de colorisation prend tout son sens dans une gestion dynamique de donnes pour faireapparatre des enregistrements possdant certaines caractristiques.

    FormulairesPour cette troisime version j'ai ajout un peu de style et des formulaires :

    Partie 2 : Mise en forme des lments 36/168

    www.siteduzero.com

  • Partie 2 : Mise en forme des lments 37/168

    www.siteduzero.com

  • Au niveau du style juste une petite touche :

    Code : CSS

    body { background-color:#DDD;}[class*="span"] { margin-top: 10px; margin-bottom: 10px;}#formulaire { background-color:#CCC; padding: 10px;}

    Le fond d'un lger gris met bien en valeur le texte et les photos, les petites marges de 10px dlimitent bien les lments. Quant auformulaire c'est l'objet de ce chapitre...

    Un formulaire de baseBootstrap propose de base une mise en forme lgante des formulaires. Voici le formulaire de la page sans BootStrap :

    Code : HTML

    Si vous voulez me laisser un message Comment m'avez-vous trouv ?

    Partie 2 : Mise en forme des lments 38/168

    www.siteduzero.com

  • Par un ami Sur le web Par hasard Autre... Votre message : Vous pouvez agrandir la fentre Envoyer

    Et le rsultat l'cran :

    Bon ce n'est pas trs folichon, juste ce que gnre le navigateur lorsqu'on l'aide pas. Voyons maintenant ce que a donne enutilisant BootStrap avec le mme code HTML :

    Partie 2 : Mise en forme des lments 39/168

    www.siteduzero.com

  • On a gagn en qualit typographique, mais au niveau organisation c'est un peu la panique. Nous allons arranger a...

    Les classes "radio" et "checkbox"Bootstrap ncessite l'utilisation d'une classe particulire pour les cases cocher (checkbox) et les zones d'option (radio). Voyonsce que a donne en utilisant la classe radio pour notre formulaire :

    Code : HTML

    Si vous voulez me laisser un message Comment m'avez-vous trouv ? Par un ami Sur le web Par hasard Autre... Votre message : Vous pouvez aggrandir la fentre Envoyer

    Partie 2 : Mise en forme des lments 40/168

    www.siteduzero.com

  • J'ai aussi supprim les sauts de ligne qui deviennent inutiles. Rsultat :

    Maintenant les zones d'option sont bien organises. Mais l'ensemble manque un peu d'homognit.

    La classe "well" et la largeur des inputVoil une classe que j'aime bien, elle provoque une jolie stylisation. Si j'apporte ce petit complment au formulaire prcdent :

    Code : CSS

    On obtient dj quelque chose de plus joli sans trop d'effort :

    Partie 2 : Mise en forme des lments 41/168

    www.siteduzero.com

  • Mais je trouve la zone de texte un peu petite, je pourrais l'largir en lui appliquant directement un style, mais Bootstrap nouspropose des classes pratiques, par exemple input-xlarge :

    Code : HTML

    Cette classe ne fait pas grande chose, elle se contente de fixer la largeur 270px :

    Partie 2 : Mise en forme des lments 42/168

    www.siteduzero.com

  • Les valeurs possibles pour la largeur :

    Code : CSS

    .input-mini{width:60px;}

    .input-small{width:90px;}

    .input-medium{width:150px;}

    .input-large{width:210px;}

    .input-xlarge{width:270px;}

    .input-xxlarge{width:530px;}

    Le rsultat commence tre pas mal du tout. La dernire chose qui me gne est l'emplacement de la zone de texte et la placeoccupe par le texte d'aide "Vous pouvez agrandir la fentre". J'aimerais qu'il soit plus discret. Mais pour arranger a, il va falloirun peu creuser les possibilits de Bootstrap au niveau des types de formulaires.

    Les quatre types de formulairesBootstrap propose 4 types de formulaires :

    Vertical (valeur par dfaut) : la classe correspondante tait form-vertical dans les versions prcdentes mais elle ajudicieusement disparue avec la version 2.1 puisqu'elle n'tait jamais utilise, tant la valeur par dfaut. Dans cette miseen forme de base les libells sont au-dessus de leur contrle :

    Partie 2 : Mise en forme des lments 43/168

    www.siteduzero.com

  • Inline : les libells sont aligns gauche suivis de leur contrle. La classe correspondante est form-inline. En gros leslments deviennent en ligne et aligns gauche. a peut tre pratique pour ne pas encombrer une page verticalementmais ne peut s'envisager que pour un petit formulaire sans beaucoup de contrles sinon a devient vite illisible. Voici unexemple avec quelques contrles :

    Code : HTML

    Bouh ! Hey ! 1 2 3 Ahh !!! Attention !

    Search : forme arrondie spciale des zones de saisie de texte. La classe correspondante est form-search. Nous allonsl'utiliser pour le formulaire de recherche situ dans l'en-tte de la page.

    Horizontal : les contrles ont un alignement flottant gauche avec leur libell align droite sur la mme ligne. La classecorrespondante est form-horizontal. C'est ce que j'aimerais pour la zone de texte, alors nous allons utiliser cette classe.

    Les classes "form-horizontal", "control-group", "control-label", "controls" et "help-block"Lorsqu'on applique la classe form-horizontal au formulaire :

    Code : HTML

    On obtient ce rsultat :

    Partie 2 : Mise en forme des lments 44/168

    www.siteduzero.com

  • Autrement dit on a rien chang ! Que se passe-t-il ? En analysant, on se rend compte que le possde ce style :

    Code : CSS

    label { display: block; margin-bottom: 5px;}

    On a donc encore un comportement de type "block" avec un retour la ligne. Autrement dit avec la classe form-horizontal on aun comportement sans doute correct pour les contrles standards mais il faut un complment pour un . Bootstrap a prvupour cela la classe control-label. Appliquons l pour voir l'effet :

    Code : HTML

    Votre message :

    Cette fois on a bien un comportement "en ligne" mais il faut amliorer la mise en forme. Le libell est trop coll la zone de texte.On va arranger a avec la classe controls :

    Partie 2 : Mise en forme des lments 45/168

    www.siteduzero.com

  • Code : HTML

    Vous pouvez agrandir la fentre

    Il ne reste plus qu' rendre plus discret le texte d'aide situ au-dessous de la zone de texte, ce que nous accomplissons avec laclasse help-block:

    Code : HTML

    Vous pouvez agrandir la fentre

    On est enfin arriv ce qu'on voulait ! Mais pour peaufiner l'aspect j'ai ajout ma petite touche personnelle en changeant lacouleur de fond et la marge interne :

    Code : CSS

    #formulaire { background-color:#CCC; padding: 10px;}

    En identifiant mon formulaire pour l'application du style :

    Code : HTML

    Partie 2 : Mise en forme des lments 46/168

    www.siteduzero.com

  • Et voici le rsultat final :

    Enfin pas vraiment final parce que nous allons voir bientt l'aspect du bouton...

    Un formulaire pour la rechercheLa page comporte aussi un formulaire de recherche dans l'en-tte. La version 2.1 a apport des amliorations dans l'aspect de cetype de formulaire. Nous allons utiliser la classe form-search pour le formulaire et search-query pour la zone de texte :

    Code : HTML

    Recherche

    La classe input-append a pour but de dcouper le bouton sur son ct gauche pour l'accoler la zone de texte. Il existe aussi sarciproque input-prepend avec videmment le rsultat inverse :

    Code : HTML

    Recherche

    Partie 2 : Mise en forme des lments 47/168

    www.siteduzero.com

  • Les classes input-append et input-prepend l'oeuvreCes deux classes que nous avons utilises dans les formulaires de recherche pour accoler un bouton un input peuvent aussiservir, associes la classe add-on, accoler une information :

    Code : HTML

    On peut aussi les utiliser conjointement pour accoler devant et derrire :

    Code : HTML

    .00

    Remarquez l'utilisation de la classe span1 lintrieur de l'input. C'est une alternative l'utilisation de la serie des input-xxx.

    On peut videmment accoler un bouton comme nous l'avons vu dans le formulaire de recherche , mais on peut galement enaccoler plusieurs :

    Code : HTML

    Vrifier

    Partie 2 : Mise en forme des lments 48/168

    www.siteduzero.com

  • Annuler Valider

    Stylisation selon l'tatBootstrap comporte des classes de stylisation des zones de saisie selon l'tat. Voici un exemple :

    Code : HTML

    Validation, erreur et succs

    Erreur Corrigez l'erreur s'il vous plait

    Avertissement Il y a un problme dans la saisie

    Russite Saisie correcte

    Avec ce rsultat (cliquez sur l'image pour voir en action) :

    Bon en fait d'action il y en a peu parce que je n'ai pas prvu d'interactivit. Alors un petit exemple

    Partie 2 : Mise en forme des lments 49/168

    www.siteduzero.com

  • Nous voulons faire un formulaire de ce genre :

    Et nous voulons tester la saisie pour vrifier que le texte fait au moins 4 caractres. Si ce n'est pas le cas, on change le style de lazone de texte et on fait apparatre un message d'avertissement :

    Tant qu' faire on veut aussi que le message d'avertissement disparaisse au bout de 4 secondes et que le tout se fasse avecfluidit. En combinant Bootstrap et jQuery c'est un jeu d'enfant :

    Code : HTML

    Envoyer Erreur ! Vous devez entrer au moins 4 caractres !

    $(function(){ $("form").on("submit", function(){ if($("input").val().length < 4){ $("div.control-group").addClass("error"); $("div.alert").show("slow").delay(4000).hide("slow"); return false; } }); });

    Tester !

    Je ne commente pas le code jQuery ajout parce que ce n'est pas l'objet de ce cours, mais je conseille vraiment de connatre ceframework Javascript puissant et lgant pour tirer pleinement parti de toutes les possibilits de Bootstrap.

    Mise en forme des listes de choixLa version 2.1 a introduit une mise en forme des listes avec slection multiple. Voici un exemple avec deux listes identiques maisla deuxime a t quipe de la slection multiple :

    Partie 2 : Mise en forme des lments 50/168

    www.siteduzero.com

  • Code : HTML

    Slection simple : 1 2 3 4 5 Slection multiple :

    1 2 3 4 5

    Boutons, icnes et imagesBootstrap propose quelques classes intressantes pour l'aspect des boutons. Nous allons en appliquer sur la page d'exemple auniveau des deux formulaires.

    Un joli bouton pour les formulairesReprenons le formulaire de recherche en lui ajoutant une mise en forme du bouton :

    Code : HTML

    Recherche

    Partie 2 : Mise en forme des lments 51/168

    www.siteduzero.com

  • La classe de base pour les boutons est btn, voici ce que a donne :

    Le bouton est en harmonie avec les zone de texte. On peut aussi amliorer avec des couleurs :

    Code : HTML

    Recherche

    C'est la couleur de base donne par la classe btn-primary. Il y en a quelques autres :

    Les classes correspondantes sont :

    btn-infobtn-successbtn-warningbtn-dangerbnt-inverse

    A utiliser selon les situations et faire varier selon l'humeur .

    On peut aussi ajuster la dimension du bouton :

    Code : HTML

    Recherche

    Les valeurs possibles sont :btn-minibtn-smallbtn-large

    Partie 2 : Mise en forme des lments 52/168

    www.siteduzero.com

  • La version 2.1 introduit la nouvelle classe btn-block qui rgle la largeur du bouton sur la dimension de son contenant. Voici unexemple :

    Code : HTML

    Span 2 Span 4 Span 3

    Grouper des boutonsIl est possible de grouper des boutons avec la classe btn-group. Ce groupement peut s'effectuer de faon verticale avec la classebtn-group-vertical depuis la version 2.1. Voici un exemple avec deux groupements :

    Code : HTML

    1 2 3

    4 5 6

    Partie 2 : Mise en forme des lments 53/168

    www.siteduzero.com

  • De jolies icnesBootstrap propose aussi des icnes. Elles sont toutes regroupes dans deux fichiers :

    glyphicons-halflings.png

    glyphicons-halflings-white.png

    Bon l je peux pas vous montrer les images parce qu'elles sont blanches et sur le fond blanc de la page on vapas voir grand-chose . Mais ce sont exactement les mmes qu'on utilisera videmment sur des fondssombres.

    Le principe utilis est celui des sprites. On a toutes les icnes sur une seule image et on s'arrange pour afficher une seule icne.Pour tout savoir sur cette mthode, vous pouvez voir le tuto de warpShadow sur le sujet.

    L'intgration d'une icne un bouton est trs facile parce qu'il suffit d'utiliser la balise . On va complter le formulaire decontact de la page d'exemple en amliorant le bouton et le compltant par une icne :

    Code : HTML

    Si vous voulez me laisser un message Comment m'avez-vous trouv ? Par un ami Sur le web Par hasard Autre... Votre message :

    Partie 2 : Mise en forme des lments 54/168

    www.siteduzero.com

  • Vous pouvez aggrandir la fentre Envoyer

    La syntaxe est toute simple. On utilise une balise avec deux classes. La principale est icon-ok-sign qui indique quelle icneon dsire afficher. La classe icon-white indique que je veux une icne blanche puisque le fond est sombre.

    Et si on veut l'icne noire ?

    Alors il suffit de ne pas mettre la classe icon-white

    videmment on peut mettre ces icnes ailleurs que sur des boutons . Par exemple dans un menu.

    Crer son pack d'icnesOn peut aussi se crer son pack d'icnes personnelles en gardant le gabarit pour profiter directement des classes de Bootstrap.Mais on peut aussi utiliser les services d'un site comme CSS Sprite Generator. Celui-ci permet, partir d'une collection de fichiersd'icnes, non seulement de crer le sprite mais aussi le fichier CSS ! Vous pouvez trouver la procdure complte de ralisationd'un pack de cette manire sur le site favbulous avec en prime des centaines d'icnes libres de droits. Voici ce que j'ai pu raliseren 5 minutes :

    Code : HTML

    ... Verrouiller Compresser Rparer

    Une barre de boutonsLa classe btn-toolbar permet de faire trs facilement des barres de boutons. Voici un exemple :

    Code : HTML

  • center">

    On pourrait avoir envie de faire une barre de boutons verticale en contraignant des groupes de boutons se superposer dans unspan1, mais on se rend compte d'un petit problme :

    Code : HTML

    Partie 2 : Mise en forme des lments 56/168

    www.siteduzero.com

  • Le dcalage constat sur le deuxime groupe est d la rgle :

    Code : CSS

    .btn-group + .btn-group { margin-left: 5px;}

    Celle-ci est utile pour dcaler les groupes de boutons lorsqu'ils sont placs horizontalement. Alors pour avoir un aspect correct ilfaut ajouter une rgle :

    Code : CSS

    .btn-group + .btn-group-vertical { margin-left: 0;}

    Et alors l'alignement devient celui qu'on attend :

    Mise en forme des imagesLa version 2.1 donne la possibilit de modifier l'apparence des bordures des images. Il y a pour cela 3 classes utilisables :

    Classe Effet

    Partie 2 : Mise en forme des lments 57/168

    www.siteduzero.com

  • img-rounded Image coins arrondisimg-circle Image circulaireimg-polaroid Image avec liser blanc

    Voici un exemple illustratif de ces trois effets :

    Code : HTML

    Un petit TPPour faire le point sur les formulaires et les boutons, je vous propose un petit TP. Il faut raliser ce formulaire :

    Une zone de saisie pour un courriel, une autre pour un mot de passe, une petite case cocher et un joli bouton, le tout bienorganis...

    Secret (cliquez pour afficher)

    Code : HTML

    Se souvenir de moi

    Partie 2 : Mise en forme des lments 58/168

    www.siteduzero.com

  • Envoyer

    Vous aviez trouv videmment . Voici le formulaire en action.

    Maintenant si on faisait une petite validation de ce formulaire la sauce CSS3 ?

    Secret (cliquez pour afficher)

    Code : HTML

    Se souvenir de moi Envoyer

    J'ai ajout quelques proprits comme required pour signaler que la saisie est obligatoire, autofocus pour que le contrlecorrespondant reoive le focus. J'ai aussi dfini le type email pour le contrle de l'adresse du courriel. Rien de bienextraordinaire mais testez maintenant ce formulaire.

    Si vous avez un navigateur pas trop antique, vous devriez voir ce genre de raction :

    Plutt sympathique non ? Aprs ce petit tour d'horizon des lments de bases qui constituent une page web nous allons passer aux lments spcifiquesintgrs dans Bootstrap.

    Partie 2 : Mise en forme des lments 59/168

    www.siteduzero.com

  • Les composants intgrsBootstrap propose des composants bien pratiques mettre en uvre : barre de navigation, effets typographiques, thumbnails...et tout a sans crire une seule ligne de code Javascript

    Nous verrons aussi alertes et barres de progression qui demandent un peu de Javascript pour tre mises en oeuvre...

    Allez c'est parti pour une visite guide !La navigationUne barre de navigation

    Principe de baseBootstrap propose de superbes classes pour crer une barre de navigation. A la base une barre ncessite cette simple structure :

    Code : HTML

    ...

    La classe englobante est navbar. Elle est toute simple :

    Code : CSS

    .navbar { *position: relative; *z-index: 2; margin-bottom: 20px; overflow: visible; color: #555555;}

    Donc une petite marge basse pour bien distinguer la barre du reste de la page et une prcaution pour que tous les lmentsapparaissent.

    La classe suivante est navbar-inner. Celle-l est plus charge, c'est elle qui ralise la mise en forme :

    Code : CSS

    .navbar-inner { min-height: 40px; padding-right: 20px; padding-left: 20px; background-color: #fafafa; background-image: -moz-linear-gradient(top, #ffffff, #f2f2f2); background-image: -webkit-gradient(linear, 0 0, 0 100%,from(#ffffff), to(#f2f2f2)); background-image: -webkit-linear-gradient(top, #ffffff, #f2f2f2); background-image: -o-linear-gradient(top, #ffffff, #f2f2f2); background-image: linear-gradient(to bottom, #ffffff, #f2f2f2); background-repeat: repeat-x; border: 1px solid #d4d4d4; -webkit-border-radius: 4px; -moz-border-radius: 4px; border-radius: 4px; filter:

    Partie 2 : Mise en forme des lments 60/168

    www.siteduzero.com

  • progid:dximagetransform.microsoft.gradient(startColorstr='#ffffffff', endColorstr='#fff2f2f2', GradientType=0); -webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.065); -moz-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.065); box-shadow: 0 1px 4px rgba(0, 0, 0, 0.065);}

    Elle fixe le fond, les arrondis des angles, l'ombre, et la marge interne...

    La classe suivante est la classe englobante que nous avons dj rencontre container et je n'y reviens pas.

    Il faut ensuite garnir la barre d'items. Voici un contenu d'exemple :

    Code : HTML

    Accueil Liens Tmoignages Rfrences

    La classe nav fixe l'apparence et le positionnement de tous les lments. Elle doit tre utilise avec une balise . Tous les itemsde navigation apparaissent alors avec des balises . Voici un aperu de la barre :

    Barre avec un fond noir

    Avant la version 2.1 la barre avait un fond noir. Elle s'est retrouve avec un fond blanc partir de cette version

    On peut facilement retrouver l'ancien look avec la classe navbar-inverse :

    Code : HTML

    Accueil Liens Tmoignages Rfrences

    Partie 2 : Mise en forme des lments 61/168

    www.siteduzero.com

  • Insertion d'un sparateurOn peut insrer un sparateur pour distinguer visuellement des groupes d'items avec la classe divider-vertical :

    Code : HTML

    Accueil Liens Tmoignages

    Rfrences Bibliographie

    Un titre dans la barreOn peut faire apparatre un titre avec des caractres plus visibles avec la classe brand :

    Code : HTML

    Mon beau site Accueil Liens Tmoignages Rfrences Bibliographie

    Fixer la barre ?A priori on veut une barre de navigation dans la partie suprieure d'un site, mais en gnral sous un bandeau. Avec le code telqu'on l'a vu jusque-l, la barre se situe dans le flux par exemple :

    Code : HTML

    Un paragraphe

    ...

    Un paragraphe

    Partie 2 : Mise en forme des lments 62/168

    www.siteduzero.com

  • On peut fixer la barre en haut de la page du navigateur avec la classe navbar-fixed-top :

    Code : HTML

    Un paragraphe

    ...

    Un paragraphe

    Mais o sont passs les paragraphes ?

    Ils sont sous la barre !

    Il suffit de regarder la classe pour comprendre :Code : CSS

    .navbar-fixed-top,

    .navbar-fixed-bottom { position: fixed; right: 0; left: 0; z-index: 1030; margin-bottom: 0;}

    La barre est situe en positionnement fixe en haut de la page du navigateur avec un z-index important...

    Donc si on adopte un positionnement fixe en haut de la page du navigateur il faut prendre la prcaution de mnagersuffisamment d'espace pour que les lments ne soient pas masqus par la barre :

    Code : CSS

    body { padding-top: 60px; }

    Partie 2 : Mise en forme des lments 63/168

    www.siteduzero.com

  • Voyons maintenant l'effet :

    Maintenant on retrouve nos paragraphes visibles .

    Il existe aussi la classe navbar-fixed-bottom pour fixer la barre en bas de la page, mais les cas d'utilisation sont plus anecdotiques.Le principe demeure le mme.

    La version 2.1 a vu l'arrive de la classe navbar-static-top qui permet de fixer la barre en haut de la page en pleine largeursans avoir se soucier du padding

    Voici un exemple :

    Code : HTML

    Mon beau site Accueil Liens Tmoignages Rfrences Bibliographie

    Un formulaire de recherche dans la barrePour intgrer un formulaire il suffit de le prvoir lintrieur de la div qui a la classe container. Il y a une classe spciale pourintgrer un formulaire de recherche dans la barre : navbar-search. On a deux classes pour envoyer ce formulaire sur l'un descts :

    pull-right pour le fixer droitepull-left pour le fixer gauche

    Voici le code du formulaire :

    Code : HTML

    Partie 2 : Mise en forme des lments 64/168

    www.siteduzero.com

  • Le rsultat est assez convaincant :

    Voici la page d'exemple avec une barre de navigation et un formulaire de recherche au niveau de cette barre :

    La paginationUn exemple simple

    Bootstrap propose la classe pagination pour raliser d'esthtiques... paginations. Le principe est tout simple, voici un exemple debase :

    Code : HTML

    Partie 2 : Mise en forme des lments 65/168

    www.siteduzero.com

  • Un cas pratiqueOn va utiliser cette possibilit de pagination sur un exemple pratique partir des photos de tigres que j'utilise dans ma page dedmonstration. Le but est de faire dfiler les images 3 par 3. Pour rendre les liens inactifs on a la classe disabled et pour les rendreactifs on a la classe active. Le code Javascript est inspir d'une rponse une question sur ce site. J'ai nettoy et arrang un peule code pour qu'il deviennent efficace et lisible :

    Code : HTML

    var show_per_page = 3; var current_page = 0;

    function set_display(first, last) { $('#content').children().css('display', 'none'); $('#content').children().slice(first, last).css('display','block');}

    function previous(){ if($('.active').prev('.page_link').length)go_to_page(current_page - 1);}

    function next(){

    Partie 2 : Mise en forme des lments 66/168

    www.siteduzero.com

  • if($('.active').next('.page_link').length)go_to_page(current_page + 1);}

    function go_to_page(page_num){ current_page = page_num; start_from = current_page * show_per_page; end_on = start_from + show_per_page; set_display(start_from, end_on); $('.active').removeClass('active'); $('#id' + page_num).addClass('active');}

    $(document).ready(function(){ var number_of_pages = Math.ceil($('#content').children().size() /show_per_page); var nav = '' nav += ''; nav += ''; nav += '>'; nav += ''; nav += ''; nav += '';

    $('#page_navigation').html(nav); set_display(0, show_per_page);});

    Effets typographiquesHero Unit

    La classe hero-unit permet de rendre le texte trs visible. Prenons un exemple :

    Code : HTML

    Coucouet bonjour

    Coucou

    Partie 2 : Mise en forme des lments 67/168

    www.siteduzero.com

  • et bonjour

    On voit bien la diffrence entre les lments "normaux" et ceux qui bnficient de la classe hero-unit.

    Voyons cette classe :

    Code : CSS

    .hero-unit { padding: 60px; margin-bottom: 30px; background-color: #eeeeee; -webkit-border-radius: 6px; -moz-border-radius: 6px; border-radius: 6px;}

    Un peu de gris en fond, des coins arrondis et quelques marges.

    Ensuite on trouve une stylisation de :

    Code : CSS

    .hero-unit h1 { margin-bottom: 0; font-size: 60px; line-height: 1; letter-spacing: -1px; color: inherit;}

    Avec un net renforcement de la police.

    De mme pour la balise :

    Code : CSS

    .hero-unit p { font-size: 18px; font-weight: 200; line-height: 30px; color: inherit;

    Partie 2 : Mise en forme des lments 68/168

    www.siteduzero.com

  • }Des libells colorsPour crer des repres visuels textuels attractifs, il est possible de crer de beaux libells :

    Code : HTML

    Valeur d'inhibition 600Valeur au repos 1000Valeur de signalement 4000Valeur de fonctionnement 8000Valeur dangereuse 11000Valeur critique 12000

    Des badges colorsLes badges sont un peu comme les libells mais pour des informations plus courtes, idalement des nombres :

    Code : HTML

    600 1000 4000 8000 11000 12000

    ThumbnailsSi vous avez des images, des vidos ou tous autres lments afficher dans une grille, Bootstrap propose le composant

    Partie 2 : Mise en forme des lments 69/168

    www.siteduzero.com

  • Thumbnails trs facile mettre en uvre. Je reviens sur ma page d'exemple qui comporte des petites images de tigres. Jusque-l,j'ai positionn les images en utilisant tout simplement la grille :

    Code : HTML

    Ce qui donne une organisation bien rgulire :

    Voyons ce que a donne avec le composant Thumbnails . Le principe en est simple, il faut utiliser la classe thumbnails dans unebalise . Les lments sont ensuite positionns logiquement dans des balises . Pour obtenir l'effet graphique chaquelment doit tre stylis par la classe thumbnail, soit dans une balise si on place un lien, soit dans une balise dans lecas contraire. Voil ce que a donne pour la page d'exemple :

    Code : HTML

    Partie 2 : Mise en forme des lments 70/168

    www.siteduzero.com

  • Pour des raisons d'homognit de la prsentation, je prvois aussi de traiter la photo plus grande situe au-dessous :

    Code : HTML

    Le rsultat l'cran (cliquez sur l'image pour ouvrir la page correspondante, comme depuis le dbut de ce tuto ) :

    Partie 2 : Mise en forme des lments 71/168

    www.siteduzero.com

  • J'ai d adoucir un peu le gris du fond pour faire apparatre les bordures des diapositives. Le rsultat est tout fait sympathique.On pourrait videmment crer des liens pour les images, auquel cas la balise intgrerait la classe thumbnail.

    Tout le travail de stylisation est d'ailleurs ralis par cette classe :

    Code : CSS

    .thumbnail { display: block; padding: 4px; line-height: 20px; border: 1px solid #ddd; -webkit-border-radius: 4px; -moz-border-radius: 4px; border-radius: 4px; -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.055); -moz-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.055); box-shadow: 0 1px 3px rgba(0, 0, 0, 0.055); -webkit-transition: all 0.2s ease-in-out; -moz-transition: all 0.2s ease-in-out; -o-transition: all 0.2s ease-in-out; transition: all 0.2s ease-in-out;}

    L'ombrage est ralis par box-shadow qui est aussi une proprit apparue avec le CSS3. Si vous ne vous tes pas encoreinform sur ces nouveauts, je vous conseille un petit coup dil la page du W3C sur les fonds et les bordures.

    Alertes et barres de progressionNous allons voir maintenant deux composants qui, bien que ne ncessitant pas de Javascript pour leur prsentation, en ontbesoin pour leur mise en uvre.

    AlertesLes alertes permettent de prsenter un message visuellement significatif. Il suffit d'utiliser la classe alert :

    Code : HTML

    Attention! Vous allez trop loin !

    Partie 2 : Mise en forme des lments 72/168

    www.siteduzero.com

  • Trois autres classes permettent de changer l'aspect de l'alerte selon le rsultat dsir :

    Code : HTML

    Infos !

    Bravo!

    Danger!

    Si le texte doit tre consquent la classe alert-block rgle les marges internes pour arer un peu :

    Code : HTML

    Information importante! L'utilisation de la classe alert n'est pas sans danger pour les yeux fatigus des pauvres internautes et je vous demande instamment de l'utiliser avec parcimonie...

    Mais videmment ces alertes ne trouvent leur sens que dans un contexte dynamique et nous devons pouvoir les faire apparatreet disparatre quand le besoin se prsente. Bootstrap prvoit un petit plugin qui ne me parat pas vraiment utile tant donnqu'on peut facilement grer les alertes avec quelques lignes de Javascript dopes par jQuery :

    Code : HTML

    Attention! Petite information importante !

    $(function (){

    Partie 2 : Mise en forme des lments 73/168

    www.siteduzero.com

  • $("#afficher").click(function() { $("#afficher").hide(); $(".alert").show("slow"); }); $(".close").click(function() { $(".alert").hide("slow"); $("#afficher").show(); }); });

    Un bouton adapt par la classe close a t prvu pour la fermeture de l'alerte. On pourrait galement mettre un bouton normal.

    Barres de progressionLes barres de progression constituent une faon lgante de faire patienter l'utilisateur pendant une longue tche. Elles ont aussipour vocation de le rassurer et de lui indiquer approximativement le temps qu'il lui reste attendre. Les classes progress et barpermettent de raliser facilement ce genre d'effet. Pour les exemples je prvois un peu de code Javascript pour simuler unprocessus temporel. Voici la barre de base :

    Code : HTML

    function timer(n) { $(".bar").css("width", n + "%"); if(n < 100) { setTimeout(function() { timer(n + 10); }, 200); }}$(function (){ $("#animer").click(function() { timer(0); });});

    Le code correspondant la barre est surlign, le reste est juste l'intendance pour l'animer pour l'exemple. On se contente de fairevoluer la proprit width de la barre. La classe well est juste utilise pour l'esthtique.

    Partie 2 : Mise en forme des lments 74/168

    www.siteduzero.com

  • Il existe une version raye de la barre :

    Code : HTML

    Il existe aussi une version raye et lgamment anime :

    Code : HTML

    Pour changer un peu j'ai prvu l'affichage du pourcentage. remarquez l'utilisation de la classe pull-right pour envoyer cetaffichage sur la droite.

    Il est galement prvu des couleurs diffrentes pour enrichir la smantique de ces barres, que ce soit en version unie ou raye :

    Code : HTML

  • Partie 3 : Mise en forme avance

    Dans cette partie, nous verrons comment animer un peu le site web avec Jquery, le clbre framework javascript, et noustudierons l'intrt de LESS dans la construction des feuilles de style en cascade avec un cas pratique d'application pourmodifier Bootstrap.

    Les plugins jQueryjQuery est un framework Javascript devenu incontournable au fil des annes. Les crateurs de Bootstrap l'ont choisi pour offrirdes plugins esthtiques et faciles mettre en uvre. Si vous ne savez pas manipuler jQuery vous pourrez au moins utiliser lescomposants proposs de faon statique. Dans le cas contraire, vous pouvez encore combler cette lacune

    L'ensemble des plugins se trouvent dans le fichier bootstrap.min.js . Vous n'avez donc besoin que de 2 rfrences, une pourjQuery et l'autre pour le fichier de Bootstrap :

    Code : HTML

    En adaptant videmment le chemin l'architecture de votre site. Si vous n'utilisez qu'un ou deux plugins il peut tre plusintressant d'utiliser les fichiers indpendants que vous pouvez trouver ici.

    Lorsqu'il est possible d'utiliser les plugins avec des data attributs, je le fais dans les exemples. Je rserve l'utilisation de jQuerylorsque c'est indispensable.

    Menu droulantMenu droulant dans la barre de navigation

    Le plugin jQuery Dropdowns permet de faire de jolis menus droulants de ce genre :

    Il suffit de modifier la barre de navigation pour ajouter le menu droulant :

    Code : HTML

    Accueil Liens Tmoignages

    Dompteurs

    Partie 2 : Mise en forme des lments 77/168

    www.siteduzero.com

  • ZoosChasseurs

    Autres tmoignages

    Rfrences

    Vous pouvez voir la page correspondante ici.

    Il a fallu ajouter quelques classes mais le rsultat est trs russi .

    Voyons a de plus prs : pour ajouter la fonctionnalit de dropdown il fa