Fiche CSS : Structuration automatique des pagesObjet de la ficheÉtat de la fichePlan de la fiche
Avant proposDans certains cas, les auteurs peuvent souhaiter que le navigateur puisse représenter un contenu qui n'apparaît pas dans
le corps du document, comme par exemple une liste numérotée pour laquelle l'auteur ne veut pas avoir
à fournir la liste des numéros explicitement, préférant laisser le navigateur les générer automatiquement. De façon similaire, l'auteur peut
vouloir qu'un mot ou une chaîne de caractères soit insérés avant une
illustration, comme par exemple , "Fiche HTML" avant le titre des chapitres.
Certains navigateurs et en particulier Internet Explorer (au moins
jusqu'à Mars 2008) ne gèrent pas la propriété content , donc
attention l'effet n'est garanti. Les pseudo-éléments :before et :afterL'auteur spécifie le style et l'emplacement d'un contenu généré au moyen des pseudo-éléments before et after. Comme leurs noms l'indiquent, ceux-ci précisent l'emplacement du contenu avant ou après celui d'un élément du document. La propriété 'content', utilisée en conjonction avec eux, spécifie la nature de ce qui est inséré. Syntaxe avec before<style> Exemple appliqué à la balise HTML h1 <style> Lors du chargement de la page HTML, les informations XXXXXXX auxquelles on applique le style ZZZZZZ sont automatiquement insérées avant le contenu HTML encadré par chaque balise <h1> du corps du document. Syntaxe avec after<style> Exemple appliqué à la balise HTML li <style> Lors du chargement de la page HTML, les informations AAAAAAA auxquelles on applique le style BBBBBBB sont automatiquement insérées aprés le contenu HTML encadré par chaque balise <li> du corps du document. Ces syntaxes s'appliquent à la plus part des balises HTML ( h1,h2...,p,li,dd,img etc) Exemple simple (résultat sur un navigateur conforme aux standards).Utilisation de :before et :after (insertion d'une chaîne de caractères sur les élément <p> de classe Note1 et Note2. Remarques sur le code
Note : les propriétés 'position', 'float', listes (ul,ol) tables, formulaires ne sont pas autorisées en association avec les pseudo éléments after et before.. La propriété 'content'La propriété de feuille de style css "content" permet de spécifier un contenu à insérer avec les propriétés de feuille de style css after ou before. Nous avons eu un premier aperçu ci dessus, mais il existe d'autres possibilités que l'insertion simple d'une chaîne de caractères.
(1)Compteurs et numérotage automatiques
Le numérotage automatique est régi par deux propriétés, 'counter-increment' et 'counter-reset'. Les compteurs définis par celles-ci sont employés par les fonctions counter() et counters() de la propriété 'content'. Ces propriétés sont utilisées pour structurer des entêtes de chapitres, sous chapitres, sections, affecter des numérotations automatiques sur des titres ou des listes.
Un élément qui n'est pas affiché (sa propriété 'display' ayant la valeur
'none'), ne peut ni incrémenter un compteur ni le remettre à zéro. counter(NomCompteur,list-style-type)Cet attribut associé à la propriété content permet d'afficher la valeur du compteur dont le nom est précisé en paramètre. La valeur est affichée suivant le style défini par le paramètre list-style-type (le même déjà vu dans le cadre des listes) pouvant prendre les valeurs suivantes: liste décimale (par défaut)
liste alphabétique
liste à puce
none : aucun style. Note : Si le paramètre list-style-type est omis l'affichage sera de type décimal. Exemple de syntaxe : h1:before{countent:counter(section,upper-roman)} pour afficher en style upper-roman (I, II, III) le compteur section. counters(NomCompteur, Séparateur, list-style-type)Cet attribut associé à la propriété content permet d'afficher une chaîne composée des valeurs de tous les compteurs de même nom, celles-ci séparées par une chaîne donnée. Les compteurs sont "auto-imbriquants", dans le sens ou la réutilisation d'un compteur dans un élément enfant crée automatiquement une nouvelle instance de celui-ci. Ceci est particulièrement adapté dans les cas de listes numérotés imbriquées dont un exemple est donné ci-dessous dans l'exemple3. Exemple de syntaxe : li:before{content: counters(NomCompteur, ".",upper-alpha) } Illustration du mécanisme avec une liste ordonnée counter-increment:NomCompteur IncrémentCet attribut accepte un ou plusieurs noms de compteurs (des identificateurs), chacun d'eux étant suivi d'un entier optionnel. Cet entier indique la valeur de l'incrémentation du compteur à chaque fois que survient l'élément. L'incrémentation par défaut est d'une unité. Les entiers nuls ou négatifs sont admis. Exemple de syntaxe : h2:before{counter-increment: section 2} pour incrémenter le compteur section de 2 counter-reset:NomCompteur valeurInitCette propriété contient une liste de noms de compteurs, un ou plusieurs, chacun d'eux étant suivi d'un entier optionnel. Cet entier indique la valeur que prend un compteur à chaque fois que survient l'élément. Par défaut, celui-ci a une valeur égale à 0. Exemples de syntaxe : "counter-reset: section 10" pour initialiser le compteur section à10. "counter-reset: chapitre 5 section 10" pour initialiser le compteur chapitre à 5 et le compteur section à 10. ExemplesNumérotation automatique de chapitres, sous chapitres, sections (résultat sur un navigateur conforme aux standards).Remarque sur le code de l'exemple Bien penser à faire un reset du compteur au niveau du body si l'on désire obtenir une indexation correcte. Numérotation simple automatique de listes (résultat sur un navigateur conforme aux standards).Les listes en HTML, possèdent des éléments pouvant être imbriqués dans eux-mêmes à des profondeurs arbitraires. Si l'on appliquait la méthode de numérotation des chapitres/souschapitres/section telle que décrite ci-dessus il serait impossible de définir des noms de compteurs uniques pour chaque niveau d'imbrication. Heureusement les compteurs sont "auto-imbriquants", dans le sens ou la réutilisation d'un compteur dans un élément enfant crée automatiquement une nouvelle instance de celui-ci. Numérotation imbriquée automatique de listes (résultat sur un navigateur conforme aux standards).La fonction 'counters()' génère une chaîne composée des valeurs de tous les compteurs de même nom, celles-ci séparées par une chaîne donnée. (2)Marques de citationEn CSS2, les concepteurs de pages HTML peuvent demander au navigateur de représenter les marques de citation, en fonction du style et du contexte. La propriété 'quotes' spécifie des paires de guillemets pour chaque niveau d'imbrication des citations. C'est la propriété 'content' qui permet la mise en œuvre de ces marques, en les insérant avant ou après les citations. Exemple de syntaxe : quotes: "«" "»" "<" ">" "°" "°" ou encore avec des codes ISO hexadécimaux quotes: "\00AB" "\00BB" "\2039" "\203A" "\2018" "\2019"
Insérer des guillemets avec la propriété 'content'
Les valeurs 'open-quote' et 'close-quote' de la propriété 'content'
insèrent les guillemets aux endroits appropriés du document. L'une des
chaînes issues des valeurs de la propriété 'quotes' se substituent à
chaque survenue de 'open-quote', ou ' close-quote', selon le niveau
d'imbrication. no-close-quote' décrémente le niveau de citation, sans pour autant faire apparaître de guillemet fermant. De façon symétrique, 'no-open-quote', ne fait pas apparaître de guillemet ouvrant, et incrémente la profondeur de citation d'une unité. Exemple de citations sur deux niveaux (résultat sur un navigateur conforme aux standards). (3)La fonction attr(X)Tout élément HTML possède ses propres attributs. En voici deux exemples pour fixer les idées: <a href ="toto" title="Clicquez ici">MonLien</a> : la balise de lien <a> possède l' attribut href qui défini le lien, et l'attribut title qui définie l'information lors du survol de ce lien. MonLien n'est pas un attribut mais le texte qui s'affiche à l'écran pour le lien défini par l'attribut href. <img src="MonImage" width="50" height="50" alt="Bonjour /> : la balise img possède l'attribut src qui défini l'emplacement de l'image, les attributs dimensionnels width et height, ainsi que l'attribut alt qui défini le texte de remplacement si l'image ne peut être chargée. La fonction attr(x) permet de récupérer la valeur d'un des attributs d'un élément. Cela peut servir par exemple dans les situations suivantes : lors de l'impression de pages Web, beaucoup de caractéristiques disparaissent et en particulier les attributs href qui définissent les liens. Lorsque l'on visualise la page Web à l'écran ce n'est gênant puisque il suffit de cliquer sur le nom donnée au lien pour accéder à un nouveau contenu, mais lors de l'impression on connaît bien le nom donné au lien mais on ne sait pas ou l'on va. Il serait donc très intéressant de pouvoir rajouter cette information. Avec la fonction attr(x) associée à la propriété content et aux pseudo éléments il va être possible de rendre visible sur le papier l'attribut href qui contient la cible du lien. Exemple de récupération href d'une balise de lien (résultats sur un navigateur conforme aux standards).
Ce lien pointe vers l'adresse : toto) Lien1 Application au projet de site webL'exercice consiste à insérer automatiquement une image représentant une petite flèche sur chaque élément de la liste de choix de la page d'accueil. Pour cela on utilisera la propriété de feuille de style css "content" (associé au pseudo-élément before) avec URL comme attribut pointant sur l'image Flèche.gif du répertoire Images/Site. Cette feuille de style sera incluse dans le fichier commun CSSExterneScreen.css pour la balise HTML dd (éléments de la liste). Cet effet risque de ne pas s'afficher avec IE. |