Cours Complet HTML & CSS
Cours Complet HTML & CSS
Cours Complet HTML & CSS
Juin 2022.
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Université Ibn Khaldoun de Tiaret, Faculté des Mathématiques et de l’Informatique, Tiaret - Algérie 14000.
E-mail: [email protected], Tel.: (+213) 46 22 57 49.
I. Introduction
IV. 2ème Partie : Formater du texte & positionner des éléments grâce au CSS.
A l’issue du cours « conception des sites Web » vous allez êtes capable de faire une
conception qui comporte des paragraphes, des menus, des images, des vidéos,
des articles de presse, …etc.
Un fichier HTML est un format de fichier « texte » éditable dont les éléments
ont du sens.
Au format .html
Peut contenir du texte, des images, des liens, des médias, etc.
Peut être liée à une autre page via des liens.
Un ensemble de pages liées entre elles.
Accessible en ligne depuis n’importe où.
Mettre votre site en ligne ….
Le principe de « serveur web »
Souvent à l’aide d’un client FTP. Votre hébergeur vous fournira les logins et
mot de passe pour y accéder.
Générer du HTML avec un éditeur
1. Bloc Note ou TextEdit : pas de coloration syntaxique.
2. Brackets : est un éditeur spécialisé dispose:
Auto-complétion.
Retour à la ligne.
Coloration syntaxique, plugins etc.
Gratuit pour Mac et Windows – open source.
3. Atom : est un éditeur spécialisé dispose:
Auto-complétion.
Retour à la ligne.
Coloration syntaxique, plugins etc.
Gratuit pour Mac et Windows – open source.
4. Sublime Text : est un éditeur spécialisé dispose :
Auto-complétion.
Retour à la ligne.
Colorisation syntaxique, plugins.
30 jours d’essai sur Windows/Mac/ Linux puis payant.
5. Coda : uniquement sur Mac (payant) http://panic.com/coda/
6. Geany (Windows) gratuit http://www.geany.org/Download/Releases
7. Notepad ++ : gratuit.
8. Komodo : (Windows et Mac) http://www.activestate.com/komodo-ide
9. Netbeans : (Windows et Mac) gratuit http://netbeans.org/
10. WYSIWYG : What You See Is What You Get:
Permet de visualiser le rendu directement.
Code parfois pas toujours propre ou optimisé, exp.: Dreamweaver
(payant), Blue Griffon (gratuit).
11. Autres éditeurs « visuels » sans avoir besoin de notions de code, exp.:
WordPress, Drupal, Joomla, Prestashop, …etc.
La syntaxe HTML :
balises, éléments et attributs
Le principe de balise :
Les balises structurent le contenu de la page (texte, images, etc.)
Chaque balise a un rôle et donne du sens au contenu présenté.
Le principe de balise :
On peut imbriquer les balises (on y reviendra) les unes dans les autres:
id=" " : donner un identifiant à l’élément que l’on pourra utiliser en CSS.
Les Ids doivent être uniques par page
<p id="monid"> contenu </p>
class=" " : donner une classe à l’élément que l’on pourra utiliser en CSS.
Les classes peuvent être dupliquées sur la page
<p class="maclasse"> contenu </p>
Doctype, html, body :
Structure d'un document valide
Décomposons balise par balise !
1 <!DOCTYPE html>
2 <html lang=‘’ar’’>
3 <head>
4 <meta charset="utf-8">
5 <title> Conception des sites Web </title>
6
7 </head>
8 <body>
9 <h1> Cours HTML5 & CSS3 </h1>
10 <p> mon premier pas d'HTML5 et CSS3 </p>
11 </body>
12 </html>
La notion de doctype :
Permet au navigateur de savoir quelle version de HTML (ou XHTML) est
utilisée sur la page.
Obligatoire pour valider une page (validateur W3C).
Pas de doctype signifie que le navigateur fait ce qu’il peut avec ce qu’il trouve,
peut expliquer certains bugs.
<!doctype html>
----------------------------------------------------------------
W3C : World Wide Web Consortium (1994).
La balise <html>
Tout document HTML commence par la balise <html> qui se ferme en fin
de document par la balise </html>
La balise <html> contient nécessairement deux balises définissant l’entête
(<head>) et le corps (<body>) du document.
L'attribut lang
Permet de spécifier la langue de traitement du document global :
Indexation dans la bonne langue par les moteurs de recherche.
Synthèse vocale.
Vérification orthographique des formulaires.
<html lang="fr">
La balise <head>
Détermine l’entête du document et contient les méta-informations.
La balise <title>
On y trouve la balise <title> qui sera le titre du document:
Sert en référencement (repris dans les résultats de recherche).
La balise <head> : les balises meta
On y ajoutera également les appels pour les feuilles de style CSS et certains
JavaScripts.
On peut y trouver des balises « meta » parmi lesquelles :
<meta charset="UTF-8"/>
permet de définir l’encodage de caractère de la page (à mettre directement
sous le <head>).
<meta name="description" content="description pour le référencement"/>
affiché dans les résultats de recherche.
La balise <body>
Délimite le contenu de la page.
Le contenu est constitué de texte, images et autres éléments qui seront
affichés.
<body>
Contenu de la page
</body>
En résumé
<!doctype html>
<html lang="fr">
<head>
<meta charset="UTF-8">
<title> Titre de ma page </title>
</head>
<body>
Contenu de la page
</body>
</html>
Les commentaires dans le HTML
NB: Il est possible d’écrire du texte qui ne sera visible que dans le code source
et non sur le site : un commentaire.
Les éléments de structuration
du contenu
La balise « division » <div>
div
div Content sidebar
div footer
La balise paragraphe <p>
------------------------------------------------
- url : copypastecharacter.com
Les titres h1 – h6
<h1> Titre niveau 1 H1 </h1>
<h2> Titre niveau 2 H2 </h2>
<h3> Titre niveau 3 H3 </h3>
<h4> Titre niveau 4 H4 </h4>
<h5> Titre niveau 5 H5 </h5>
<h6> Titre niveau 6 H6 </h6>
Il existe six niveaux de titre <h1> <h2> <h3> <h4><h5> et
<h6> (pas un de plus ! ).
Un nouveau niveau provoque un passage à la ligne, les
éléments de titre étant des éléments de bloc.
L’hiérarchisation visuelle est automatique (peut être
modifiée via CSS).
Il est possible d’avoir plusieurs titres de même niveau.
On ne peut pas mettre un Hn dans un p, ou un p dans un
Hn.
Blockquote, une citation
<p> Une citation ci-dessous : </p>
<blockquote>
Mon médecin m’a recommandé d’arrêter les petits dîners
pour quatre. A moins qu’il n’y ait trois autres personnes.
</ blockquote >
<p> Carl Sébastien</p>
L’ élément <strong>
<p> Du texte normale et <strong> du texte fortement mis en valeur </strong> </p>
des petits caractères comme <small> les informations légales ou liées au copyright </small>
Les liens dans les documents
--- HTML ---
Fonction d’un lien
Le lien est un élément cliquable qui renvoie l’utilisateur sur une nouvelle page
(ou lui permet de télécharger un fichier).
Il est souvent stylé différemment (bleu souligné par défaut).
Il peut renvoyer :
vers un autre site (lien externe).
vers une autre page du site (lien interne).
vers des fichiers (image, .PDF, etc.).
La balise <a>
On appelle « ancre de lien » le texte à l’intérieur de la balise.
On ajoute l’attribut href="cible_du_lien" pour indiquer vers quelle page on veut
envoyer l’utilisateur.
On peut ajouter l’attribut title="titre du lien" pour ajouter une info bulle au
survol et indiquer à l’utilisateur où il va arriver.
Un site est constitué d’un ensemble de pages au sein d’un dossier (appelé
racine du site). Ces pages peuvent être organisées dans une hiérarchie de sous-
dossiers.
Par convention, le fichier « racine » sera appelé index.html.
C’est lui qui est affiché en priorité s’il existe quand l’utilisateur demande le
dossier.
Exercice !
Créez un dossier « mon_premier_site »
Créez y index.html
Placez-y un second fichier appelé page1.html
Lien vers un fichier du même répertoire
Lorsque deux fichiers sont dans le même répertoire, il suffit d’appeler le nom
du fichier comme cible.
Ce sont des liens relatifs, car relatifs au site et dossier dans lequel ils se
trouvent.
<a href="page1.html" title="ma première page"> ma page</a>
<a href="index.html" title="accueil du site">l’accueil</a>
Exercice !
La balise <ul> permet de créer une liste non ordonnée (unordered list).
Il faut l’ouvrir en début de liste et la fermer après le dernier élément de la
liste.
La balise <li> permet de créer UN élément de la liste.
Les listes ordonnées <ol>
<ol>
<li> élément numéroté de liste 1 </li>
<li> élément numéroté de liste 2 </li>
<li> élément numéroté de liste 3 </li>
</ol>
La balise <ol> permet de créer une liste ordonnée et numérotée (par défaut
dans le navigateur).
Il faut l’ouvrir en début de liste et la fermer après le dernier élément de la
liste.
La balise <li> permet de créer UN élément de la liste
Contenu d’une liste
Les éléments <ul> et <ol> ne peuvent contenir que des éléments <li>.
Chaque élément <li> peut contenir des éléments de bloc ou des éléments
incorporés (p, div, blockquote, h1, etc.).
Les listes peuvent s'imbriquer.
On peut mélanger <ul> et <ol> à condition de les fermer correctement.
Exemple d’imbrication
<ul>
<li> élément 1 de liste </li>
<li> élément 2 de liste
<ul>
<li> élément 1 de sous liste </li>
<li> élément 2 de sous liste </li>
<li> élément 3 de sous liste </li>
</ul>
</li>
<li> élément 3 de liste </li>
</ul>
Exemple d’imbrication
<ul>
<li> élément 1 de liste </li>
<li> <h1> Mes films préféres </h1>
<ol>
<li> Fiction </li>
<li> Horreur </li>
<li> Western </li>
</ol>
</li>
<li> Un autre objet de liste </li>
<li> ma music préférée
<ul>
<li> Symphonie </li>
<li> Saxophone </li>
<li> Flute </li>
</ul>
</li>
<li> Autres trucs </li>
</ul>
Les listes en pratique – les onglets
<ul>
<li><a href=‘’#home‘’>Home </a></li>
<li><a href=‘’#profile’’> Profile </a></li>
<li>
<a href=‘’#’’> Dropdown </a>
<ul>
<li> <a href=‘’#dropdown1’’> @fat </a></li>
<li> <a href=‘’#dropdown2’’> @mdo </a></li>
</ul>
</li>
</ul>
Les listes en pratique – les navigations
div class=‘’flexslider’’>
<<ul class=‘’slides’’>
<li>
<img scr=‘’slide1.jpg’’ />
</li>
<li>
<img scr=‘’slide2.jpg’’ />
</li>
<li>
<img scr=‘’slide3.jpg’’ />
</li>
<li>
<img scr=‘’slide4.jpg’’ />
</li>
</ul>
</div>
Ajouter des images avec la balise <img>
Le JPEG (.jpg, .jpeg) :
format compressé qui réduit le poids des images pour le web (donc temps de
chargement).
Le format JPEG : ‘’Joint Photographic Experts Group’’
Pour la compression avec pertes très efficace pour des images
photographiques.
Le format GIF - Graphics Interchange Format:
Utilise 256 couleurs.
Compression sans perte basée sur la succession de pixels de même couleur.
Couleur de transparence sans couche alpha.
Animation.
Extension.gif
Utilisé pour les logos.
‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
https://bisouslescopains.tumblr.com/
Le format PNG - Portable Network Graphics:
PNG8 : 256 couleurs, utilisé pour les images nécessitant peu de couleurs et
motifs répétitifs.
PNG24 : 16 millions de couleurs, transparence extension .png
Utilisé pour les icônes, logos et fichiers qui ont besoin d’un fond Transparent.
Le format BMP – Windows BitMap:
Le format BMP est un des premiers formats d'image utilisé sous Windows. Il est
un des seul format à ne pas utiliser.
Cette technologie à pour principal avantage la qualité des images fournies : pas
de compression = pas de perte de qualité.
En résumé
Une photo : JPEG.
Une illustration avec peu de couleurs sans transparence importante : PNG8.
Une illustration avec beaucoup de couleurs : PNG24
Une image animée : GIF
Balise de type inline : pas de retour à la ligne, peut-être insérée dans le corps du
texte.
On la place généralement dans un <p> ou un <div> mais peut se placer
n’importe où dans le body.
Balise auto-fermante :
Les attributs width et height peuvent être ajoutés pour donner une taille à
l’image.
Sans width/height le navigateur « devine » la taille ce qui crée des sauts de
page quand l’image se charge.
En général, il vaut mieux la redimensionner avant dans un logiciel, plutôt que
charger une grande image et la rétrécir (performance).
Attention à garder les proportions !
Généralement les sites qui vous proposent d’intégrer leur contenu vont
vous proposer une iframe.
C’est le cas par exemple de :
Google maps pour des cartes interactives.
Slideshare pour partager des diaporamas et présentations.
Vimeo, un autre service de partage de vidéos.
Les boites de partages de réseaux sociaux comme Facebook.
Les tableaux HTML
Les tableaux, introduction
Le nombre d'éléments <td> au sein des éléments <tr> doit rester le même
dans la mesure ou chaque ligne possède un même nombre de cellules,
nombre qui correspond au nombre de colonnes du tableau.
Un avant-goût de CSS
Pour la suite et y voir plus clair, nous allons ajouter une bordure à notre
tableau avec la propriété CSS.
<table>
<tr>
<td style="border:1px solid black;">ligne 1 colonne 1</td>
<td style="border:1px solid black;">ligne 1 colonne 2</td>
<td style="border:1px solid black;">ligne 1 colonne 3</td>
</tr>
<tr>
<td style="border:1px solid black;">ligne 2 colonne 1</td>
<td style="border:1px solid black;">ligne 2 colonne 2</td>
<td style="border:1px solid black;">ligne 2 colonne 3</td>
</tr>
</table>
Ajouter une entête avec <th>
<table>
<tr>
<th style="border:1px solid black;">Fruits</th>
<th style="border:1px solid black;">Poids</th>
<th style="border:1px solid black;">Prix</th>
</tr>
<tr>
<td style="border:1px solid black;">Kiwi</td>
<td style="border:1px solid black;">3Kg</td>
<td style="border:1px solid black;">2$</td>
</tr>
<tr>
<td style="border:1px solid black;">Banane</td>
<td style="border:1px solid black;">2Kg</td>
<td style="border:1px solid black;">1$</td>
</tr>
</table>
Ajouter une entête avec <th>
<th> peut remplacer <td> pour créer une cellule d’entête au tableau.
Par défaut affiché en gras et centré dans les navigateurs.
Ajouter un titre au tableau
<table>
<caption>Prix du marché</caption>
<tr>
<th style="border:1px solid black;">Fruits</th>
<th style="border:1px solid black;">Poids</th>
<th style="border:1px solid black;">Prix</th>
</tr>
<tr>
<td style="border:1px solid black;">Kiwi</td>
<td style="border:1px solid black;">3Kg</td>
<td style="border:1px solid black;">2$</td>
</tr>
<tr>
<td style="border:1px solid black;">Banane</td>
<td style="border:1px solid black;">2Kg</td>
<td style="border:1px solid black;">1$</td>
</tr>
</table>
Ajouter un titre au tableau
<table>
<tr>
<th style="border:1px solid black;" colspan="3">titre</th>
</tr>
<tr>
<td style="border:1px solid black;">ligne 2 colonne 1</td>
<td style="border:1px solid black;">ligne 2 colonne 2</td>
<td style="border:1px solid black;">ligne 2 colonne 3</td>
</tr>
</table>
Fusion de cellules
<table>
<tr>
<td style="border:1px solid black;" rowspan="2">ligne 1 et 2 colonne 1</td>
<td style="border:1px solid black;">ligne 1 colonne 2</td>
<td style="border:1px solid black;" rowspan="3">ligne 1, 2 et 3 colonne 3</td>
</tr>
<tr>
<td style="border:1px solid black;">ligne 2 colonne 2</td>
</tr>
<tr>
<td style="border:1px solid black;">ligne 3 colonne 1</td>
<td style="border:1px solid black;">ligne 3 colonne 2</td>
</tr>
</table>
Fusion de lignes
Par défaut si elle est vide, c’est comme n’importe quel élément,
rien n’est affiché
<body>
<form method="post" action="traitement.php">
<!-- contenu du formulaire -->
</form>
</body>
La zone de texte monoligne <input>
Permet à l’utilisateur de cliquer sur le label pour sélectionner le champ (le for
et l’id doivent être identiques mais peuvent être différents du name).
Balise inline, pas de retour à la ligne.
L’attribut « value »
<p>
<input type="reset" value="Remettre à zéros"/> <input type="submit"
value="Envoyer"/>
</p>
http://fr.openclassrooms.com/informatique/cours/apprenez‐a‐creer‐votre‐site‐web‐avec‐html5‐et‐css3/memento‐des‐balises‐html
CSS :
Introduction et notions
de base