Your browser doesn't support the features required by impress.js, so you are presented with a simplified version of this presentation.
For the best experience please use the latest Chrome, Safari or Firefox browser.
Voyons quelques propriétés basiques avant de passer aux choses sérieuses.
Le document HTML décrit une structure et donne le texte.
Les indications de style modifient l'affichage.
Les éléments de style sont écrits dans le langage CSS :
On les insère dans une balise style qu'on met dans la balise head du document.
Les sélecteurs vus avant :
p, h1 ou em),sélecteur1 > sélecteur2,sélecteur1 sélecteur2.Les propriétés vues avant : color et font-size.
Les valeurs vues avant : uniquement des noms de couleurs en anglais ou un nombre suivi de px.
Les valeurs de couleurs peuvent être utilisées dans plusieurs propriétés : color, background-color et border-color (penser à changer aussi la largeur border-width et son aspect border-style: solid).
Les couleurs peuvent être spécifiées par 3 systèmes : des noms, le système RGB et le système HSL (peu usité). Aux derniers s'ajoutent les variantes avec transparence (rgba et hsla).
Les trois syntaxes RGB sont à connaître :
#XYZ : composantes RGB sur une échelle de 0 à 15 (F) ;#XXYYZZ : pareil, sur une échelle de 0 à 255 (FF) ;rgb(x,y,z) : pareil mais en décimal (0–255).Par exemple, #FF0000, #F00 et rgb(255,0,0) désignent du rouge pur.
On peut changer le style d'écriture avec font-style, font-size, font-variant, font-weight et font-family.
Toutefois, l'aspect des polices ne doit pas être primordial dans l'expression du sens du document. Beaucoup de navigateurs substituent les polices téléchargeables pour d'autres. Il est préférable de raisonner sur les cinq familles prédéfinies : serif, sans-serif, monospace, cursive, fantasy.
De plus, il est recommandé de n'avoir qu'au maximum cinq formes d'affichage différentes à l'écran, y compris les italiques et le gras ; lorsqu'il y a de la titraille, on peut avoir un de plus par niveau de titre présent.
La couleur peut aider à donner du sens supplémentaire (titres, liens).
Sur un même site, on utilise en général une charte graphique qui codifie l'aspect des textes et des pages. Plutôt que de répéter les indications de style sur chaque page, on les met alors dans un unique fichier centralisé.
En plus de n'être téléchargé qu'une seule fois, cette page peut être modifiée en une fois pour tout le site : résistance à l'erreur, performance.
La syntaxe est la suivante (le nom du fichier est évidemment libre) :
Voyons maintenant plus de sélecteurs. Il est possible de sélectionner non pas par balise mais par identifiant ou par classe.
Rappel : un identifiant se donne à un nœud par l'attribut id. Un nom d'identifiant ne doit pas contenir d'espaces (et éviter les caractères non-ascii). Le sélecteur CSS pour l'identifiant abc est #abc.
Une classe se donne à un nœud par l'attribut class. Un nom de classe ne doit pas contenir d'espaces (et éviter les caractères non-ascii). Le sélecteur CSS pour la classe abc est .abc. Un nœud peut avoir plusieurs classes.
Ce titre de niveau 1 a un identifiant (Initialisation) et deux classes (extra, impair).
Les documents numériques publiés sur le Web distinguent entre la structure du document, son contenu, tous les deux exprimés par le langage HTML, et sa présentation, exprimée par le langage CSS.
Le protocole HTTP permet d'envoyer les données à la requête du client depuis le serveur.
Le but premier du web est la mise à disposition de l'information pour toutes les personnes, et on utilise le développement par consensus au sein du W3C pour faire évoluer les pratiques.
Regardons comment CSS dispose les éléments sur la page.
Un élément peut s'afficher de plusieurs façons. La façon dont il s'insère dans le flot de composition du moteur de rendu du navigateur est choisi par la propriété display.
Les trois premières valeurs que l'on peut regarder sont block, inline et none. Si l'effet de la dernière est assez évident (pas d'affichage), la deuxième permet de forcer l'affichage d'éléments selon la dichotomie bloc ou inline.
Les éléments de type bloc sont empilés les uns sur les autres verticalement dans le flot normal.
Les éléments de type inline sont enfilés les uns derrière les autres horizontalement puis soumis au processus de césure, qui fabrique des lignes de longueur maximale.
Actuellement, la césure est seulement plus ou moins bien supportée.
À cause de la disposition en colonne étroite et contrairement à l'écrit, il est habituelle de choisir une justification au fer à gauche plutôt que des deux côtés.
Les divers dépassements des éléments inline peuvent être gérés par overflow, word-break par exemple.
Certaines langues n'ont pas les directions usuelles ; il existe tout un groupe de propriétés ayant trait aux directions assez complexe (writing-mode).
Chaque boîte a trois mesures dans chaque direction : padding, border, margin.
Le fond du padding est le même que celui du contenu.
La couleur du bord est donnée par border-color, son épaisseur par border-width et son style par border-style.
Les marges sont transparentes. Les valeurs verticales de blocs voisins peuvent être fusionnées : 1cm de marge basse suivi de 2cm marge haute donnent 2 cm de séparation.
Pour les éléments inline, les six dimensions verticales n'ont pas d'effet sur le texte environnant.
Deux balises HTML existent pour faire des regroupements à visée d'affichage. Ils regroupent des éléments qui ont un lien non spécifié (mais qui doivent garder une logique à l'affichage).
Le conteneur div est un conteneur neutre de type bloc.
Le conteneur span est un conteneur neutre de type inline.
Il ne faut pas confondre vitesse et précipitation.
Les unités de longueur qui peuvent être utilisées sont exprimées:
px (pixels): unité arbitraire correspondant à un pixel typique (réseolution 96ppi)cm, mm, in): un nombre de pixels qui avec une résolution de 96ppi fait l'unité nommée.em : une unité qui correspond à la largeur de la police ; elle est réglable par l'utilisateur. Initialement largeur d'un M. Existe aussi ex, soit la hauteur d'un x.rem : c'est la largeur d'un em au niveau du body du document, et donc a la même valeur dans toute la page.Avec ces propriétés, vous pouvez déjà mettre en page des documents. Il reste à voir encore plusieurs modèles, mais vous avez le plus important.
Pour chaque propriété, vous pouvez consulter une documentation en allant la chercher dans la documentation MDN.
Propriété : lien
Avec CSS2 puis CSS3, les options d'affichage se sont enrichies, notamment pour permettre des mises en page complexes.
Les flexbox sont une disposition de cellules en colonnes qui se suivent.
Chaque cellule est indépendante, et des propriétés permettent de modifier l'enchaînement des cellules les unes par rapport aux autres.
Les grilles permettent de définir un grillage et ensuite de placer des zones sur des rectangles dans le grillage.
Il est possible de sortir complètement un bloc (ou un élément inline) du flot de composition habituel en utilisant la propriété position.
Il peut alors être placé à un autre endroit de la fenêtre. En fait, il est placé par rapport à l'élément de l'arbre du document qui est son ancêtre le plus proche et a lui aussi la propriété position. Cet élément sert alors de référence.
La valeur relative gardent l'espace normal de la boîte.
D'autres valeurs absolute fixed suppriment l'espace occupé. L'une est relative à l'élément de référence, une autre à la vue (fenêtre).
Toutes ces propriétés peuvent poser des problèmes de masquage du texte par d'autres parties de la page.
Encore une dernière possibilité de disposition est de permettre de faire flotter du texte à côté du texte principal. Le branche de l'arbre est alors sortie du contexte de composition, et la largeur disponible est réduite de la largeur de la boîte qui est sortie sur la hauteur nécessaire.
Si on veut s'assurer que le flottant est terminé, on utilise la propriété clear: both sur le paragraphe suivant
Le placement des flottants est complexe et de nos jours il est plus simple d'utiliser les flexbox pour un bon nombre d'usages.
Avec les dispositions complexes et les mises en pages plus riches, il devient difficile d'avoir des sélecteurs qui s'appliquent de façon unique à un élément.
Pour chaque élément et chaque propriété, on regarde toutes les règles qui s'appliquent directement à lui pour elle. S'il n'y en a pas qui s'appliquent directement alors on regarde celles qui s'appliquent aux parents.
S'il y en a plusieurs:
#x).x)X)On pourra s'aider de cet aide-mémoire (il y a quelques sélecteurs basiques qui n'ont pas encore été vus).
À ce stade, vous avez presque toutes les armes pour mettre en page des sites, y compris les plus complexes.
Mais nous allons voir des outils qui permettent de simplifier ces mises en page.
Pour voir le pouvoir des CSS, n'hésitez pas à vous promener dans le Jardin Zen des CSS pour admirer le même fichier HTML transformé par des CSS
Vérifiez votre acquisition des connaissances.
Use a spacebar or arrow keys to navigate.
Press 'P' to launch speaker console.