Introduction aux CSS
Transcription
Introduction aux CSS
XHTML /CSS Octobre 2012 - TOUREL David Introduction aux CSS CSS: Cascading Style Sheet = feuille de style en cascade CSS est en quelque sorte la peinture que l'on applique sur xHTML, avec nous allons pouvoir réaliser de la mise en page et de la mise en forme. Intégrer du CSS dans un document HTML Il y a 3 façons d'intégrer les CSS dans un document. ● D'abord grâce à la balise style dans l'en-tête <head> <style type="text/css"> CODE CSS </style> </head> css/ex1/css-1.html ● Ensuite par le style en ligne, à laide de l'attribut style <h1 style="CODE CSS">Travaux dirigés</h1> css/ex2/css-2.html ● Enfin par un fichier externe chargé dans l'en-tête (head) du document. <head> <link href="style.css" rel="stylesheet" media="screen" type="text/css" /> </head> ✔ rel="stylesheet" précise le type de relation entre le document HTML et la cible, ici une le type feuille de style. ✔ type="text/css" précise le type de document lié est du texte, ici sous forme de CSS ✔ href="style.css" indique l'emplacement du fichier CSS à utiliser. ✔ media="screen" indique que la feuille de style sera appliquée à l'affichage. Nous aurions pu avoir media="print" qui spécifie que la feuille de style est appliquée pour l'impression de la page web. Pour voir l'effet d'une feuille de style d'impression, utilisez l'aperçu avant impression du navigateur (Fichier >> Aperçu avant impression). ex3/css-3.html + style.css + print.css XHTML /CSS Octobre 2012 - TOUREL David Bases du CSS – Cascade et héritage Nous utiliserons CSS en version 2.1, actuellement le version 3 est en cours de discussions au W3C. La syntaxe de CSS est simple, elle est composée de 3 éléments: – un sélecteur (la partie avant l'accolade) – des propriétés (la partie avant le 2 points) – des valeurs (la partie après les 2 points et suivie d'un point virgule pour terminer la ligne) sélecteur { propriété: valeur; } Il existe plusieurs sortes de sélecteurs, dans le TD 2 nous n'allons utiliser que les 3 sélecteurs de base: – le sélecteur de balise aussi appelé sélecteur d'élément. – Le sélecteur d'id – Le sélecteur de classe CSS HTML <div id="nom_id" class="ma_classe">Texte affiché</div> CSS div { #nom_id { .ma_classe { propriété: valeur; propriété: valeur; propriété: valeur; } } } Exemples de sélecteurs simples : • h3 { } • #colonne_droite { } • .texte_vert { } XHTML /CSS Octobre 2012 - TOUREL David Une liste exhaustive des propriétés et des valeurs est disponible sur le site du W3C: http://www.w3.org/TR/CSS21/ La conception de feuille de style fait appel à deux mécanismes fondamentaux: la cascade et l'héritage La cascade La cascade de CSS définit un ordre de priorité (on parle aussi de poids) pour chaque règle de style lue par le navigateur. Le calcul du poids est réalisé en fonction de différents facteurs : - La provenance de la règle CSS appliquée, parmis lesquelles (de la plus faible à la plus forte): - les styles par défaut du navigateur (définis par les concepteurs du navigateur) - les styles utilisateurs (définis par la personne qui utilise le navigateur) - les styles auteur (ceux que vous écrivez en tant que développeur web), pour mémoire : - Feuilles de style externe, liées avec la balise link - Feuilles de style interne, dans la balise style - Style spécifié directement dans la balise, dit style en-ligne, avec l'attribut style - Le type de sélecteur utilisé, le calcul du poids d'un sélecteur est calculé comme suit: En simplifiant, plus le sélecteur est précis plus sont poids est élevé. Le poids d'un sélecteur est donné sur un nombre à 4 chiffres (ABCD) calculé de la façon suivante : • A : A=1 s'il ne s'agit pas d'un sélecteur CSS mais d'un attribut style. Sinon, A=0. De cette manière, un style placé dans l'attribut style d'un élément HTML aura systématiquement un poids plus élevé qu'un style auteur placé dans une feuille de style (ABCD = 1000, la plus haute valeur possible) ; • B : si A vaut 0, B est le nombre d'ids présents dans le sélecteur. Par exemple, B=2 pour le sélecteur #conteneur p#special • C : si A vaut 0, C est le nombre de classes (du type .ma_classe) dans le sélecteur. Par exemple, C=2 pour le style .article p a.style_lien • D : si A vaut 0, D est le nombre d'éléments HTML et de pseudo-éléments (du type :hover) et dans le sélecteur. Par exemple, : D=2 pour le style a:hover XHTML /CSS Octobre 2012 - TOUREL David C'est donc le style qui dispose du poids le plus important qui est finalement appliqué au document xHTML. Dans le cas où à l'issue du calcul, deux règles de poids identiques doivent s'appliquer, c'est la dernière qui apparaît dans l'ordre de lecture qui l'emporte. !important Toutefois il est possible de rompre ce mécanisme avec le modificateur !important, qui permet ponctuellement de forcer le poids d'une règle CSS pour forcer son application. Ce modificateur donne plus de poids que n'importe quels chiffres présents aux positions BC et D vues ci-dessus, cependant A reste prioritaire. !important doit être utilisé à bon escient, il est relativement rare de devoir s'en servir. sélecteur { propriété: valeur !important ; } 3 exemples : D'abord faire le fichier xHTML (un titre h1 + 3 paragraphes), reprenez le document minimal fourni au td1. ● Puis un fichier CSS dans lequel vous allez définir la couleur de la police pour l'ensemble de la page, en rouge. ● exemple cascade/exemple-01.html + style.css Dans le fichier xHTML, vous allez intégrer dans la balise head du CSS qui spécifie que les paragraphes seront écrits en bleu, avec un sélecteur d'élément. ● exemple cascade/exemple-02.html + style.css Dans le même fichier, vous allez intégrer dans la balise paragraphe un style CSS en ligne qui ajoutera une bordure verte au premier paragraphe. ● exemple cascade/exemple-03.html + style.css Vous pouvez constater que la couleur rouge du paragraphe a été remplacée par du bleu. En effet le sélecteur body a le même poids que le sélecteur p utilisé dans l'entête, c'est donc ce dernier qui s'applique puisqu'il est lu en dernier. La couleur rouge s'applique donc seulement au titre, pour lequel nous n'avons rien défini. ● Ajoutons l'attribut id au second paragraphe pour changer sa couleur. exemple cascade/exemple-04.html + style.css Le sélecteur d'id ayant un poids plus important que le sélecteur de balise précédent, le second paragraphe prend la couleur voulue XHTML /CSS ● Octobre 2012 - TOUREL David Ajoutons l'attribut class au troisième paragraphe pour changer sa couleur. exemple cascade/exemple-05.html + style.css Dans ce cas c'est le sélecteur de classe qui l'emporte sur le sélecteur de balise. Héritage L'héritage des CSS est fondé sur le modèle Parent-Enfant(s) : chaque élément Enfant reçoit en héritage les styles de son élément Parent. Par exemple, la balise html est parent de body. On parle généralement de d'arbre que forme le xHTML pour désigner l'imbrication des balises d'un document. Cet héritage est très pratique et permet d'éviter de répétitions inutiles : en effet, en attribuant une propriété et sa valeur à un parent (par exemple font-size: 12px), elle sera transmise à tous ses enfants, mais aussi aux enfants de ses enfants, etc … Document de base sans style: exemple-01.html Document police réduite: exemple-02.html Document police grossie: exemple-03.html Sur ce document tous les enfants de la balise body héritent de la taille de la police spécifiée. La balise h1 présente un cas exceptionnel puisqu'elle hérite proportionnellement de cette taille, c'est à dire que malgré tout la balise h1 sera affichée plus grande que le reste du texte. L'héritage ne s'applique pas à toutes les propriétés, mais principalement aux propriétés qui définissent le type de caractère utilisé, police, couleur et taille. L'héritage est rompu lorsque qu'on stylise explicitement un élément. Héritage rompu sur l'élément h1: exemple-04.html Exercices Utilisation de !important • Créer un fichier xHTML simple contenant 1 titre. • Créez deux feuilles de styles dans des fichiers séparés • Dans la première, mettez une déclaration qui rend le titre rouge et dans la seconde qui rend le titre vert. • Importez les deux feuilles de styles dans le fichier xHTML. XHTML /CSS • Observer la couleur du titre • Dans la première feuille de style, ajouter la valeur !important • Renouveler l'observation Octobre 2012 - TOUREL David