Documents de cours 2020-2021 - FX Jollois
Langage de description de textes
HTML : HyperText Markup Language<balise paramètre(s)>...</balise><balise paramètre(s)>Le navigateur traduit selon sa propre interprétation des recommandations le contenu de la page
<!doctype html>
<html>
<head>
<!--
méta-données sur la page :
- titre (i.e. nom de l'onglet)
- encodage, auteur, mots-clés, description
- ...
-->
</head>
<body>
<!--
corps de la page (ce qui sera donc affiché)
- en-tête et pied de page, menu
- contenu
- ...
-->
</body>
</html>
- Indique que c'est une page HTML**5**
```html
<!doctype html>
UTF-8)
```html
- Auteur, mots-clés et description de la page
```html
<meta name = "author" content = "FX Jollois">
<meta name = "keywords" content = "html, css, truc super bien">
<meta name = "description" content = "Super cours !!">
JS (ou importation du fichier source avec src="script.js" en paramètre)
<script></script>
CSS de la page
```html
- Importation d'une feuille de style `CSS`
```html
<link rel = "stylesheet" href="style.css">
Les balises script et style peuvent aussi être intégré dans le corps (dans la balise body donc), selon les besoins.
Le contenu est donc placé dans différentes balises, et intégré à la balise <body>. Ces balises sont de 2 types :
div : bloc de la largeur de la page (ou de l’élément parent)span : élément dit en ligne, tel un mot dans une phrasediv
div, dans le premier div
span
div), mais ici avec un span et un autre span
span avec un div dedansDepuis HTML5, il existe des balises dites sémantiques, c’est-à-dire qu’elles ont du sens. Cela est important pour 2 choses
| balise | définition |
|---|---|
header et footer |
en-tête et pied de page |
nav |
menu de la page |
aside |
partie annexe de la page (type pub) |
section et article |
parties nous permettant d’insérer le contenu de la page |
h1, h2, ..., h6 |
titres et sous-titres |
strong et em |
mot(s) important(s) et un peu moins important(s) |
Il existe d’autres balises utiles.
| balise | définition |
|---|---|
p |
paragraphe |
ol et ul |
liste ordonnée et non-ordonnée |
li |
élément d’une liste |
dl, dt et dd |
liste de définition, terme à définir et définition donc |
img |
insertion d’une image |
b et i |
mise en gras ou en italique |
pre |
texte préformaté sans compactage d’espaces |
code |
code en ligne |
br |
saut à la ligne |
hr |
ligne horizontale |
table |
tableau |
tr, td, th |
ligne, cellule et en-tête de colonnes d’un tableau |
Liste non-exhaustive !
Comme indiqué plus tôt, la structure de la page est connue sous le nom de DOM ou Document Object Model
Pour avoir une idée de ce qu’est le DOM :
On peut appliquer certains paramètres aux balises, permettant de les identifier (via un nom unique ou via une classe) ou de leur appliquer directement un style.
CSS spécifique (cf plus bas) à l’élément<balise style = "code CSS">
valeur relative ou absolue)<balise width = "valeur" height = "valeur">
CSS ou en JS)<balise class = "classe(s)">
CSS et en JS)<balise id = "identifiant">
Langage de formattage d’éléments d’une page web, de tous types (texte, image, vidéo, dessin)
CSS : Cascading Style SheetsTrois possibilités de définition du style :
HTML avec le paramètre stylehead de la page (dans la balise <style>...</style>CSS à part (ou plusieurs), à appeler avec <link ...>Définition des valeurs de paramètres à appliquer sur les éléments correspondants au sélecteur (soit une balise, soit une classe, soit un identifiant)
balise {
parametre: valeur;
...
}
.classe {
parametre: valeur;
...
}
#identifiant {
parametre: valeur;
...
}
| Paramètre | Informations |
|---|---|
width, height |
largeur et hauteur |
color |
couleur de la police |
background-color |
couleur de fond |
font-size |
taille de la police |
text-align |
alignement du texte (justifié, centré, …) |
display |
type d’affichage (permet de passer du bloc à en ligne et inversement par exemple) |
z-index |
niveau d’affichage (grand = devant) |
Les valeurs peuvent être déterminées :
px),cm u mm - à éviter)in)%),em)<div style = "background-color: #ddd;">
Une balise à fond gris, sauf pour
<span style = "background-color: #fdb;">cette partie de phrase</span>,
avec un <div style = "display: inline;">div qui n'en est pas un
finalement</div> et ce <span style = "display: block;
position: relative; bottom: -50px">span qui s'échappe</span>
</div>
Pour appliquer un style à certains éléments, il faut les sélectionner. Pour cela, nous avons des sélecteurs simples.
h1, tous les p, …)
balise
.classe
identifiant (via id = "identifiant)
#identifiant
Mais on peut aussi les combiner entre eux pour préciser la sélection
p strong sélectionne tous les strong qui sont dans un p), avec possibilité de compléter sur plusieurs niveaux
baliseA baliseB
h1, h2 sélectionne les titres de niveau 1 et les titres de niveau 2)
baliseA, baliseB
.maClasse strong sélectionne tous les strong présents dans un élément de classe maClasse)
.classe balise
.classeA.classeB
div.maClasse sélectionne tous les div qui ont la classe maClasse)
balise.classe
identifiant
#identifiant balise
identifiant uniquement lorsque la classe indiquée lui est affectée (intéressant lors d’une modification du DOM en JS par exemple)
#identifiant.classe
Les couleurs peuvent être déclarées :
#rrggbb ou #rgb : r pour rouge, g pour vert et b pour bleu)rgb(r, g, b) (les valeurs devant être entre 0 et 255)rgba(r, g, b, t) identique à la précédente avec la définition de la transparence (avec t entre 0 et 1)/*
Les commentaires se font avec cette syntaxe
(comme dans beaucoup d'autres langages)
*/
Voici la liste exhaustive des éléments CSS
Langage de description de dessin
XMLD3.js et beaucoup d’autres librairies de dessin sont basées sur cette technologie<svg width = "250" height = "50" style = "border: solid 1px black;">
<rect x = "50" y = "0" width = "200" height = "45" fill = "orange" />
</svg>
HTML
<balise> ... </balise><balise />(0,0) est situé en haut à gauche (comme pour un écran d’ordinateur)<rect x="" y="" width="" height="" /> pour un rectangle<circle cx="" cy="" r="" /> pour un cercle<ellispe cx="" cy="" rx="" ry="" /> pour une ellipse<line x1="" y1="" x2="" y2="" /> pour une ligne<text x="" y="">texte à insérer</text> pour du texteCSS<rect x= "0" y= "0" width="70" height="70" fill="purple"/>
<rect x= "50" y= "25" width="70" height="70" fill="blue"/>
<rect x="100" y= "50" width="70" height="70" fill="green"/>
<rect x="150" y= "75" width="70" height="70" fill="yellow"/>
<rect x="200" y="100" width="70" height="70" fill="red"/>
Sites permettant d’écrire du code web directement dans le navigateur, et de le partager :
Site permettant de faire plein choses très bien :
Sites d’apprentissage et forums