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 style
head
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
XML
D3.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