Apprenez Les Langages: Html5 Css3 Javascript
Apprenez Les Langages: Html5 Css3 Javascript
Apprenez Les Langages: Html5 Css3 Javascript
HTML5 , CSS3
lesquels le contenu d’une page s’affiche sur un écran. Le chapitre suivant
enseigne les règles générales à observer pour développer de manière essentiellement comme formateur pour
efficace : lisibilité du code, organisation des dossiers, utilisation des des développeurs ou des infographistes
éditeurs de code, référencement… et accompagne des projets de dévelop-
pement informatique liés au web. Dans
Ensuite, l’auteur entre dans le vif du sujet et présente tout d’abord le langage ce livre, il rassemble tout son savoir-
HTML5 qui permet de structurer une page, de disposer les éléments visuels faire et toute son expérience pour per-
et JavaScript
très précisément. Le second langage présenté est le CSS3, qui permet quant mettre au lecteur de réaliser en toute
à lui d’ajouter des styles, des effets visuels rendant inutile l’utilisation autonomie le site qu’il a en tête.
d’images et permettant d’adapter l’affichage aussi bien sur un téléphone que
sur un ordinateur. Pour avoir une bonne connaissance des langages utilisés
côté client, le troisième présenté dans ce livre est le JavaScript. C’est ce
langage qui va permettre d’ajouter de l’interactivité sur les pages, de faire
des comparaisons, de répéter des actions, d’utiliser une base de données
dans le livre.
Denis MATARAZZO
Table des matières 1
Avant-propos
Chapitre 1
Le Web
1. Qu’est-ce que le Web ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.1 Côté serveur : HTTP, FTP, langages, SQL . . . . . . . . . . . . . . . . . . 7
1.2 Côté client : HTML, CSS, JavaScript . . . . . . . . . . . . . . . . . . . . . 10
2. Les langages et leur utilité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.1 HTML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.2 CSS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.3 JavaScript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.4 Exemple général avec les trois langages. . . . . . . . . . . . . . . . . . . . 20
3. Les formats d’images . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
3.1 Format Bitmap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
3.2 Format vectoriel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
4. Les navigateurs et leurs outils . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
Chapitre 2
Règles générales
1. Préserver la lisibilité : l’indentation, les commentaires . . . . . . . . . . . 47
1.1 L’indentation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
1.2 Les commentaires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
2. Penser au référencement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
3. Dossiers et chemins vers les fichiers . . . . . . . . . . . . . . . . . . . . . . . . . . 53
4. Les éditeurs pour le code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
2 HTML5, CSS3 et JavaScript
Pour créer votre premier site web
Chapitre 3
HTML
1. Création d’une page web . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
2. Code HTML obligatoire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
3. Le doctype . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
4. La balise <head> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
4.1 Lien avec une feuille de style . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
4.2 Lien avec un fichier JavaScript. . . . . . . . . . . . . . . . . . . . . . . . . . . 76
5. La balise <body> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
5.1 Méthode et balises pour structurer une page . . . . . . . . . . . . . . . 79
5.2 Le texte dans la page HTML . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
5.3 Les caractères spéciaux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
Chapitre 4
CSS3
1. Les trois styles de base possibles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
1.1 Le style de balise . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
1.2 Le style de classe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
1.3 Le style d’ID . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
1.4 Combinaison des trois méthodes . . . . . . . . . . . . . . . . . . . . . . . . 98
2. Les polices de caractères et le Web. . . . . . . . . . . . . . . . . . . . . . . . . . . 101
3. Les sélecteurs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
4. Les pseudoclasses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
4.1 Pour les liens . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
4.2 Pour le texte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
4.3 Pour les sélecteurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
Table des matières 3
Chapitre 5
JavaScript
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167
2. La liste des tâches . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167
3. Variables et affectation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170
4. Les types de variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171
4.1 Les valeurs numériques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171
4.2 Le texte et la concaténation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171
4.3 Les tableaux. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173
4.4 Les booléens . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174
4.5 Les objets. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175
5. Les opérateurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178
6. Les conditions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183
4 HTML5, CSS3 et JavaScript
Pour créer votre premier site web
Chapitre 6
Mise en page HTML et CSS
1. Les blocs et leur position à l’écran . . . . . . . . . . . . . . . . . . . . . . . . . . . 231
1.1 Les tableaux. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231
1.2 Les div et les nouvelles balises HTML5 . . . . . . . . . . . . . . . . . . . 234
2. Les listes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239
Chapitre 7
Les méthodes de dessin
1. La balise Canvas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243
2. La balise SVG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 248
3. Avantages et inconvénients des deux technologies . . . . . . . . . . . . . 257
Chapitre 8
Le multimédia
1. La balise <video>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 259
2. Les codecs vidéo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263
3. La balise <audio> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264
4. Les codecs audio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 266
Chapitre 9
Les formulaires
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 269
2. Fonctionnement d’un formulaire client/serveur . . . . . . . . . . . . . . . 270
3. Les différentes balises du formulaire . . . . . . . . . . . . . . . . . . . . . . . . . 271
4. Les expressions régulières . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 280
5. La validation du formulaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 282
6 HTML5, CSS3 et JavaScript
Pour créer votre premier site web
Chapitre 10
Les liens et menus en HTML5
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 289
2. Création de liens . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 290
2.1 Ouverture de page HTML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 290
2.2 Ouverture d’une image . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 291
2.3 Navigation dans la page . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 292
2.4 Proposer le téléchargement d’un fichier . . . . . . . . . . . . . . . . . . 293
2.5 Envoyer un e-mail. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293
2.6 Déclenchement d’un script JavaScript . . . . . . . . . . . . . . . . . . . 295
3. Création d’un menu (liste + liens + CSS) . . . . . . . . . . . . . . . . . . . . 295
4. Agir sur la page grâce au menu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 297
5. Ajout de « data » dans les liens. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 300
6. Liste complexe organisée par JavaScript et le CSS . . . . . . . . . . . . . . 304
Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 319
Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 321
231
Chapitre 6
Mise en page HTML et CSS
La mise en page par le code HTML est simplement le fait de positionner des
blocs à l’endroit souhaité. Le sujet a été abordé au chapitre HTML - section
Méthode et balises pour structurer une page et va être développé ici en
combinant HTML et CSS.
Ils ont longtemps été la méthode principale pour disposer le contenu d’une
page. La méthode consistait à créer un tableau, et dans une cellule du tableau
insérer un autre tableau, qui lui-même pouvait contenir un ou des tableaux.
C’était efficace mais il fallait s’y retrouver dans le code car tous ces tableaux
imbriqués faisaient que parfois il était difficile de savoir sur quel tableau on
était en train de travailler.
Repartons de l’exemple avec les fruits et légumes, vu au chapitre HTML -
section Méthode et balises pour structurer une page, et voyons comment
obtenir cette apparence pour notre tableau. Cet exemple peut être observé via
le fichier 6_1_1_Tableaux.html.
232 HTML5, CSS3 et JavaScript
Pour créer votre premier site web
<table id="fruitsLegumes">
<tr>
<td rowspan="7" class="titreGauche">V E N T E S 2
0 1 4</td>
<th colspan="2" class="titre">Livraison <br />Fruits et
légumes</th>
</tr>
...
border-spacing: 0px;
}
De la même façon, le titre de gauche a une bordure blanche sur le côté droit :
.titreGauche {
text-align: center;
width: 15px;
background-color: #1362bb;
color:#FFF;
font-weight: bold;
border-right: 1px solid #FFF;
}
Les tableaux restent utilisables pour l’affichage de données comme dans cet
exemple. Leur principal défaut est de toujours ressembler à un tableau. Pour
le responsive design, il est pratique de pouvoir, uniquement avec le CSS, chan-
ger complètement l’apparence d’une page. Or, avec le tableau ce sera soit
impossible soit très compliqué. C’est pour cela que les balises <div> ont tant
de succès.
234 HTML5, CSS3 et JavaScript
Pour créer votre premier site web
Les div ont été abordées dans le chapitre CSS3 et des notions de débordement
et de positionnement ont été vues. Avec ce qui a été abordé entre-temps, il va
être possible de faire une page HTML avec une zone header (ou menu) en haut
de la page qui ne bougera pas quand l’ascenseur descendra dans la page, de la
même façon que le bas de page, qui pourra rester toujours en bas quelle que
soit la taille de la page. Voir l’exemple : 6_1_2_lesDivs.html.
Pour le code HTML, il y a quatre grandes parties. Elles sont incluses dans les
balises <header>, <nav>, <div> et <footer>.
<header id='topPage'>Un TOP qui bouge</header>
<nav id='menu'>Un menu qui bouge jusqu'en haut de la page</nav>
<div id='mainPage'></div>
Bien que le nom de ces quatre balises soit complètement différent, elles vont
fonctionner de la même façon, s’afficher de la même façon et avoir les mêmes
propriétés possibles au niveau CSS. En fait, leur nom va permettre d’aider à
détecter leur contenu. La balise <header> se trouve en haut de quelque
chose, ici en haut de la page. La balise <nav> contient les éléments prévus
pour la navigation, comme un menu. Le div a déjà été vu et ne dit rien sur son
contenu, et pour finir la balise <footer> est la zone la plus basse d’un bloc.
Le code CSS permet de positionner les éléments précisément. L’utilisation de
la position :fixed ainsi que de z-index permet de faire en sorte que si le
contenu de la page scrolle, le bas de page reste toujours à sa place. Et un peu
de code JavaScript va permettre de faire en sorte que le menu monte jusqu’en
haut de la page et s’arrête à ce moment-là.
Mise à zéro des différentes marges pour la partie HTML et pour le BODY, de
façon à avoir 100% de la page disponible.
#topPage {
position: absolute;
z-index: 100;
top: 0;
background-color: #365D88;
width: 100%;
height: 100px;
}
#menu {
position: absolute;
z-index: 100;
top: 100px;
background-color: #264D78;
width: 100%;
height: 40px;
}
#basPage {
position: fixed;
z-index: 100;
bottom: 0;
background-color: #365D88;
width: 100%;
height: 50px;
}
Les #topPage, #menu et #basPage ont leur valeur de z-index fixée à 100.
Ils peuvent avoir la même valeur puisqu’ils ne se chevauchent jamais.
Le #topPage commence en étant calé en haut (top :0;) et le menu le suit
en ayant le top à 100 pixels, ce qui correspond à la hauteur du #topPage.
Le #basPage a une position fixe en bas, puisque bottom est à 0 et que posi-
tion est sur fixed.
#mainPage {
position: absolute;
z-index: 90;
width: 100%;
height: 2000px;
background: rgba(248,80,50,1);
background: -moz-linear-gradient(top, rgba(248,80,50,1) 0%,
236 HTML5, CSS3 et JavaScript
Pour créer votre premier site web
rgba(230,198,39,1) 100%);
background: -webkit-gradient(left top, left bottom, color-
stop(0%, rgba(248,80,50,1)), color-stop(100%, rgba(230,198,39,1)));
background: -webkit-linear-gradient(top, rgba(248,80,50,1) 0%,
rgba(230,198,39,1) 100%);
background: -o-linear-gradient(top, rgba(248,80,50,1) 0%,
rgba(230,198,39,1) 100%);
background: -ms-linear-gradient(top, rgba(248,80,50,1) 0%,
rgba(230,198,39,1) 100%);
/*background: linear-gradient(to bottom, rgba(248,80,50,1)
0%, rgba(230,198,39,1) 100%);*/
filter:progid:DXImageTransform.Microsoft.gradient(
startColorstr='#f85032', endColorstr='#e6c627', GradientType=0 );
}