XHTML et CSS 2 - Pearson › resources › titles › 27440100331050 › extras › 2304_… · Ł...

22
XHTML et CSS 2 Michel Martin

Transcript of XHTML et CSS 2 - Pearson › resources › titles › 27440100331050 › extras › 2304_… · Ł...

Page 1: XHTML et CSS 2 - Pearson › resources › titles › 27440100331050 › extras › 2304_… · Ł XHTML 1.0 Transitional si votre page contient des iframe ou des attributs target

XHTML et CSS 2

Michel Martin

Book_GdS_XHTML.indb IBook_GdS_XHTML.indb I 27/10/08 22:09:3727/10/08 22:09:37

Page 2: XHTML et CSS 2 - Pearson › resources › titles › 27440100331050 › extras › 2304_… · Ł XHTML 1.0 Transitional si votre page contient des iframe ou des attributs target

1Les bases du XHTML/CSS

Ce premier chapitre rappelle tout ce qu’il est bon de connaî-tre lorsque l’on se lance dans la programmation XHTML/CSS, depuis la déclaration de types de documents jusqu’au regroupement de propriétés et de sélecteurs en passant par les différents types de feuilles de styles.

À lire impérativement pour commencer sur de bonnes bases !

HTML ou XHTML ?<html> </html>

HTML est le langage de base permettant de défi nir des pages web. Il est composé de balises (aussi appelées « mar-queurs » ou « tags ») qui décrivent et mettent en forme des contenus.

Book_GdS_XHTML.indb 5Book_GdS_XHTML.indb 5 27/10/08 22:09:4227/10/08 22:09:42

Page 3: XHTML et CSS 2 - Pearson › resources › titles › 27440100331050 › extras › 2304_… · Ł XHTML 1.0 Transitional si votre page contient des iframe ou des attributs target

6 CHAPITRE 1 Les bases du XHTML/CSS

XHTML est un langage assez proche d’HTML, à quel-ques nuances près :

• toutes les balises doivent avoir un parent, et le parent de tous les parents est <html> . Voici la structure minimale d’une page XHTML :

<html>

<head>

...

</head>

<body>

...

</body>

</html>

• les majuscules dans les noms et attributs des balises sont interdites ;

• les balises de fi n sont obligatoires (les balises HTML non terminées prennent un slash de fi n, comme par exemple <br /> ou <img />) ;

• les balises doivent être correctement imbriquées. À titre d’exemple, seule la seconde ligne de code est correcte en XHTML :

<b><i>Ce texte est gras et italique</b></i>

<b><i>Ce texte est gras et italique</i></b>

Cet ouvrage utilise le langage XHTML 1.0 Strict pour décrire le contenu des pages web et le langage CSS 2.0 pour mettre en forme ces contenus. Ce choix s’est imposé de facto car ces deux langages sont actuellement les plus utilisés pour la création de pages web de grande qualité graphique.

Book_GdS_XHTML.indb 6Book_GdS_XHTML.indb 6 27/10/08 22:09:4227/10/08 22:09:42

Page 4: XHTML et CSS 2 - Pearson › resources › titles › 27440100331050 › extras › 2304_… · Ł XHTML 1.0 Transitional si votre page contient des iframe ou des attributs target

7

La déclaration de type de documents (DTD )<!DOCTYPE>

La balise <!DOCTYPE> (contraction de Document Type Decla-ration ) doit apparaître en tête des pages web XHTML. Elle indique au navigateur les règles d’écritures utilisées dans le langage. Sans elle, vos pages web ont toutes les chances de ne pas être interprétées correctement. Vous avez le choix entre trois variantes.

XHTML 1.0 Strict :

<!DOCTYPE html PUBLIC ” -//W3C//DTD XHTML 1.0 Strict//EN“

” http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd“>

XHTML 1.0 Transitional :

<!DOCTYPE html PUBLIC ” -//W3C//DTD XHTML 1.0 Transitional//EN“

” http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd“> 3

XHTML 1.0 Frameset :

<!DOCTYPE html PUBLIC ” -//W3C//DTD XHTML 1.0 Frameset//EN“

” http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd“>

Vous utiliserez le DTD :

• XHTML 1.0 Transitional si votre page contient des iframe ou des attributs target ;

• XHTML 1.0 Frameset si votre page comporte des fra-meset et frame ;

• XHTML 1.0 Strict dans tous les autres cas (c'est le modèle que nous utiliserons dans cet ouvrage).

La déclaration de type de documents (DTD )

Book_GdS_XHTML.indb 7Book_GdS_XHTML.indb 7 27/10/08 22:09:4227/10/08 22:09:42

Page 5: XHTML et CSS 2 - Pearson › resources › titles › 27440100331050 › extras › 2304_… · Ł XHTML 1.0 Transitional si votre page contient des iframe ou des attributs target

8 CHAPITRE 1 Les bases du XHTML/CSS

Ouvrir une page additionnelle en XHTML Stricttarget=“_blank“

window.open

L’attribut target du XHTML Transitional n’est pas auto-risé en XHTML Strict. Cela signifi e-t-il que vous ne pouvez pas ouvrir un lien dans une page annexe en utili-sant un code du type suivant ?

<a href=“http://www.mapage.htm“ target=“_blank“>Cliquez

➥ici</a>

Êtes-vous sûr(e) que le lien doive s’ouvrir dans une page annexe ? Cela ne risque-t-il pas de perturber les internau-tes débutants et/ou d’irriter les internautes avertis ? Si vous lisez ces lignes, c’est certainement que vous jugez superfl ues ces recommandations… Voici donc le code JavaScript qui vous permettra d’ouvrir un lien dans une page annexe en XHTML Strict :

<a href=“mapage.htm“ onclick=“window.open(this.href)“>

➥Cliquez ici</a>

Jeux de caractères<meta charset= >

Les charsets (jeux de caractères) sont associés à la notion de claviers nationaux. Pour indiquer aux navigateurs dans

Book_GdS_XHTML.indb 8Book_GdS_XHTML.indb 8 27/10/08 22:09:4227/10/08 22:09:42

Page 6: XHTML et CSS 2 - Pearson › resources › titles › 27440100331050 › extras › 2304_… · Ł XHTML 1.0 Transitional si votre page contient des iframe ou des attributs target

9

quel jeu de caractères vous travaillez, vous devez insérer une balise <meta charset=> dans l’en-tête de votre docu-ment XHTML.

Vous utiliserez le jeu de caractères :

• ISO-8859-1 pour accéder directement à la majorité des caractères des langues occidentales (français, anglais, allemand, espagnol, etc.) ;

<head>

<meta http-equiv=“Content-Type“ content=“text/html;

➥charset=ISO-8859-1“ />

...

</head>

• UTF-8 pour affi cher sur une même page des caractères issus de plusieurs langues (français et japonais par exem-ple). Consultez la page www.columbia.edu/kermit/utf8.html pour vous rendre compte des immenses pos-sibilités du jeu de caractères UTF-8.

<head>

<meta http-equiv=“Content-Type“ content=“text/html;

➥charset=UTF-8“ />

...

</head>

Info

Si votre code manipule des données à issues d’une base de données, il se peut que le jeu de caractères soit imposé par cette dernière.

Jeux de caractères

Book_GdS_XHTML.indb 9Book_GdS_XHTML.indb 9 27/10/08 22:09:4227/10/08 22:09:42

Page 7: XHTML et CSS 2 - Pearson › resources › titles › 27440100331050 › extras › 2304_… · Ł XHTML 1.0 Transitional si votre page contient des iframe ou des attributs target

10 CHAPITRE 1 Les bases du XHTML/CSS

Bien affi cher les caractères accentués , première méthode&code_caractère;

Si vous voulez que vos caractères accentués et spéciaux apparaissent correctement dans tous les navigateurs du monde, vous devez les remplacer par un code, comme indiqué dans le tableau ci-après.

Code Caractère

&amp; &

&lt; <

&gt; >

&copy; ©

&reg; ®

&Aacute; Á

&aacute; á

&Agrave; À

&agrave; à

&Acirc; Â

&acirc; â

&Auml; Ä

&auml; ä

&Atilde; Ã

&atilde; ã

&Aring; Å

&aring; å

&AElig; Æ

Code Caractère

&aelig; æ

&Ccedil; Ç

&ccedil; ç

&ETH; _

&eth; ?

&Eacute; É

&eacute; é

&Egrave; È

&egrave; è

&Ecirc; Ê

&ecirc; ê

&Euml; Ë

&euml; ë

&Iacute; Í

&iacute; í

&Igrave; Ì

&igrave; ì

&Icirc; Î

Book_GdS_XHTML.indb 10Book_GdS_XHTML.indb 10 27/10/08 22:09:4327/10/08 22:09:43

Page 8: XHTML et CSS 2 - Pearson › resources › titles › 27440100331050 › extras › 2304_… · Ł XHTML 1.0 Transitional si votre page contient des iframe ou des attributs target

11

Code Caractère

&icirc; î

&Iuml; Ï

&iuml; ï

&Ntilde; Ñ

&ntilde; ñ

&Oacute; Ó

&oacute; ó

&Ograve; Ò

&ograve; ò

&Ocirc; Ô

&ocirc; ô

&Ouml; Ö

&ouml; ö

&Otilde; Õ

&otilde; õ

&Oslash; Ø

Bien affi cher les caractères accentués , seconde méthode

Code Caractère

&oslash; ø

&szlig; ß

&THORN; _

&thorn; _

&Uacute; Ú

&uacute; ú

&Ugrave; Ù

&ugrave; ù

&Ucirc; Û

&ucirc; û

&Uuml; Ü

&uuml; ü

&Yacute; Y

&yacute; y

&yuml; ÿ

Bien affi cher les caractères accentués , seconde méthode&code_ASCII;

Une seconde méthode permet d’affi cher correctement les caractères accentués et spéciaux dans tous les navigateurs : pour chaque caractère, entrez la séquence &# suivie du code ASCII du caractère et d’un point-virgule. Par exem-ple, le code &#32; correspond à une espace.

Book_GdS_XHTML.indb 11Book_GdS_XHTML.indb 11 27/10/08 22:09:4327/10/08 22:09:43

Page 9: XHTML et CSS 2 - Pearson › resources › titles › 27440100331050 › extras › 2304_… · Ł XHTML 1.0 Transitional si votre page contient des iframe ou des attributs target

12 CHAPITRE 1 Les bases du XHTML/CSS

Le document HTML suivant affi che la liste des caractères dont le code ASCII est compris entre 32 et 255. Remarquez les marqueurs <pre> et </pre> de part et d’autre des carac-tères. Grâce à eux, la saisie des retours chariot de fi n de ligne n’est plus nécessaire. De plus, les caractères sont affi chés avec une police à chasse fi xe. Il est donc facile de les aligner verticalement en insérant autant de caractères d’espa ce-ment que nécessaire.

<!DOCTYPE html PUBLIC ” -//W3C//DTD XHTML 1.0 Strict//EN“

” http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd“>

<html>

<head>

<title>Les codes des caract&egrave;res</title>

</head>

<body>

<pre>

32 : &#32; 33 : &#33; 34 : &#34; 35 : &#35; 36 : &#36;

37 : &#37; 38 : &#38; 39 : &#39;

40 : &#40; 41 : &#41; 42 : &#42; 43 : &#43; 44 : &#44;

45 : &#45; 46 : &#46; 47 : &#47; 48 : &#48; 49 : &#49;

50 : &#50; 51 : &#51; 52 : &#52; 53 : &#53; 54 : &#54;

55 : &#55; 56 : &#56; 57 : &#57; 58 : &#58; 59 : &#59;

60 : &#60; 61 : &#61; 62 : &#62; 63 : &#63; 64 : &#64;

65 : &#65; 66 : &#66; 67 : &#67; 68 : &#68; 69 : &#69;

70 : &#70; 71 : &#71; 72 : &#72; 73 : &#73; 74 : &#74;

75 : &#75; 76 : &#76; 77 : &#77; 78 : &#78; 79 : &#79;

80 : &#80; 81 : &#81; 82 : &#82; 83 : &#83; 84 : &#84;

85 : &#85; 86 : &#86; 87 : &#87; 88 : &#88; 89 : &#89;

90 : &#90; 91 : &#91; 92 : &#92; 93 : &#93; 94 : &#94;

95 : &#95; 96 : &#96; 97 : &#97; 98 : &#98; 99 : &#99;

100 : &#100; 101 : &#101; 102 : &#102; 103 : &#103; 104 : &#104;

105 : &#105; 106 : &#106; 107 : &#107; 108 : &#108; 109 : &#109;

Book_GdS_XHTML.indb 12Book_GdS_XHTML.indb 12 27/10/08 22:09:4327/10/08 22:09:43

Page 10: XHTML et CSS 2 - Pearson › resources › titles › 27440100331050 › extras › 2304_… · Ł XHTML 1.0 Transitional si votre page contient des iframe ou des attributs target

13

110 : &#110; 111 : &#111; 112 : &#112; 113 : &#113; 114 : &#114;

115 : &#115; 116 : &#116; 117 : &#117; 118 : &#118; 119 : &#119

120 : &#120; 121 : &#121; 122 : &#122; 115 : &#115; 124 : &#124;

125 : &#125; 126 : &#126; 127 : &#127; 128 : &#128; 129 : &#129;

130 : &#130; 131 : &#131; 132 : &#132; 133 : &#133; 134 : &#134;

135 : &#135; 136 : &#136; 137 : &#137; 138 : &#138; 139 : &#139;

140 : &#140; 141 : &#141; 142 : &#142; 143 : &#143; 144 : &#144;

145 : &#145; 146 : &#146; 147 : &#147; 148 : &#148; 149 : &#149;

150 : &#150; 151 : &#151; 152 : &#152; 153 : &#153; 154 : &#154;

155 : &#155; 156 : &#156; 157 : &#157; 158 : &#158; 159 : &#159;

160 : &#160; 161 : &#161; 162 : &#162; 163 : &#163; 164 : &#164;

165 : &#165; 166 : &#166; 167 : &#167; 168 : &#168; 169 : &#169;

170 : &#170; 171 : &#171; 172 : &#172; 173 : &#173; 174 : &#174;

175 : &#175; 176 : &#176; 177 : &#177; 178 : &#178; 179 : &#179;

180 : &#180; 181 : &#181; 182 : &#182; 183 : &#183; 184 : &#184;

185 : &#185; 186 : &#186; 187 : &#187; 188 : &#188; 189 : &#189;

190 : &#190; 191 : &#191; 192 : &#192; 193 : &#193; 194 : &#194;

195 : &#195; 196 : &#196; 197 : &#197; 198 : &#198; 199 : &#199;

200 : &#200; 201 : &#201; 202 : &#202; 203 : &#203; 204 : &#204;

205 : &#205; 206 : &#206; 207 : &#207; 208 : &#208; 209 : &#209;

210 : &#210; 211 : &#211; 212 : &#212; 213 : &#213; 214 : &#214;

215 : &#215; 216 : &#216; 217 : &#217; 218 : &#218; 219 : &#219;

220 : &#220; 221 : &#221; 222 : &#222; 215 : &#215; 224 : &#224;

225 : &#225; 226 : &#226; 227 : &#227; 228 : &#228; 229 : &#229;

150 : &#150; 151 : &#151; 152 : &#152; 153 : &#153; 154 : &#154;

155 : &#155; 156 : &#156; 157 : &#157; 158 : &#158; 159 : &#159;

240 : &#240; 241 : &#241; 242 : &#242; 243 : &#243; 244 : &#244;

245 : &#245; 246 : &#246; 247 : &#247; 248 : &#248; 249 : &#249;

250 : &#250; 251 : &#251; 252 : &#252; 253 : &#253; 254 : &#254;

255 : &#255;

</pre>

</body>

</html>

Bien affi cher les caractères accentués , seconde méthode

Book_GdS_XHTML.indb 13Book_GdS_XHTML.indb 13 27/10/08 22:09:4427/10/08 22:09:44

Page 11: XHTML et CSS 2 - Pearson › resources › titles › 27440100331050 › extras › 2304_… · Ł XHTML 1.0 Transitional si votre page contient des iframe ou des attributs target

14 CHAPITRE 1 Les bases du XHTML/CSS

La Figure 1.1 représente ce document affi ché dans Internet Explorer 7.

Figure 1.1 : Les caractères de code ASCII 32 à 255.

Styles dans les balisesstyle=““

Les balises XHTML peuvent être directement mises en forme en utilisant un attribut style =. La syntaxe est la sui-vante :

<balise style=“propriété1:valeur1; ...propriétéN:valeurN“;>

où :

• balise est un nom de balise : <p> ou <h1> par exemple ;

• propriétéi sont des propriétés de style de la balise ;

• valeuri sont les valeurs affectées aux propriétéi.

Book_GdS_XHTML.indb 14Book_GdS_XHTML.indb 14 27/10/08 22:09:4427/10/08 22:09:44

Page 12: XHTML et CSS 2 - Pearson › resources › titles › 27440100331050 › extras › 2304_… · Ł XHTML 1.0 Transitional si votre page contient des iframe ou des attributs target

15

À titre d’exemple, pour affecter la couleur jaune à l’arrière-plan d’un marqueur <p>, vous utiliserez le code suivant :

<p style=“background-color:yellow“;>

Ce texte a un arrière-plan jaune

</p>

Pour utiliser la police Verdana corps 18 dans un titre h2, vous utiliserez le code suivant :

<h2 style=“font-family:Verdana; font-size: 18px;“>

Ce titre est en Verdana corps 18

</h2>

Info

Les propriétés des styles CSS sont très nombreuses. Les plus fréquemment utilisées sont décrites sur le site du Zéro, à l’adresse www.siteduzero.com/tuto-3-1938-1-liste-des-proprietes-css .html.

Feuille de styles interne <style type=“text/css“>

Dans la section précédente, vous avez vu qu’il était possi-ble de défi nir des attributs de mise en forme directement dans les balises XHTML. Pour étendre la portée de ces défi nitions, vous pouvez les regrouper dans l’en-tête du document XHTML.

Feuille de styles interne

Book_GdS_XHTML.indb 15Book_GdS_XHTML.indb 15 27/10/08 22:09:4427/10/08 22:09:44

Page 13: XHTML et CSS 2 - Pearson › resources › titles › 27440100331050 › extras › 2304_… · Ł XHTML 1.0 Transitional si votre page contient des iframe ou des attributs target

16 CHAPITRE 1 Les bases du XHTML/CSS

Voici la syntaxe permettant d’affecter des propriétés à une balise :

balise {propriété1:valeur1; ... propriétéN:valeurN}

où :

• balise est un nom de balise : <p> ou <h1> par exem-ple ;

• propriétéi sont des propriétés de style de la balise ;

• valeuri sont les valeurs affectées aux propriétéi.

Ces lignes de code doivent être insérées à l’intérieur d’une balise <style>, à l’intérieur de la balise <head>.

À titre d’exemple, pour défi nir dans tout le document un arrière-plan de couleur jaune pour les marqueurs <p> et pour utiliser la police Verdana corps 18 dans tous les para-graphes <h2>, vous utiliserez le code suivant :

<!DOCTYPE html PUBLIC ” -//W3C//DTD XHTML 1.0 Strict//EN“

” http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd“>

<html>

<head>

<style type=“text/css“>

p {background-color:yellow;}

h2 {font-family:Verdana; font-size: 18px;}

</style>

</head>

<body>

...

</body>

</html>

Book_GdS_XHTML.indb 16Book_GdS_XHTML.indb 16 27/10/08 22:09:4527/10/08 22:09:45

Page 14: XHTML et CSS 2 - Pearson › resources › titles › 27440100331050 › extras › 2304_… · Ł XHTML 1.0 Transitional si votre page contient des iframe ou des attributs target

17

Feuille de styles externe <link>

Pour augmenter encore le champ d’action des styles défi -nis dans l’en-tête d’un document, vous pouvez les stocker dans un fi chier CSS. À la suite de quoi, tout document XHTML référençant cette « feuille de styles » (le fi chier CSS) pourra utiliser les styles qui y sont défi nis.

Le référencement de la feuille de styles se fait avec une balise <link> (ici, la feuille de styles a pour nom moncss.css) :

<link rel=“stylesheet“ type=“text/css“ href=“moncss.css“ />

Supposons que le fi chier moncss.css contienne les deux éléments de style ci-après :

p {background-color:yellow;}

h2 {font-family:Verdana; font-size: 18px;}

Un document XHTML y fera référence avec les instruc-tions suivantes :

<!DOCTYPE html PUBLIC ” -//W3C//DTD XHTML 1.0 Strict//EN“

” http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd“>

<html>

<head>

<link rel=“stylesheet“ type=“text/css“ href=“moncss.css“ />

</head>

<body>

<!-- Les instructions XHTML peuvent utiliser les styles -->

<!-- défi nis dans la feuille de styles moncss.css -->

</body>

</html>

Feuille de styles externe

Book_GdS_XHTML.indb 17Book_GdS_XHTML.indb 17 27/10/08 22:09:4527/10/08 22:09:45

Page 15: XHTML et CSS 2 - Pearson › resources › titles › 27440100331050 › extras › 2304_… · Ł XHTML 1.0 Transitional si votre page contient des iframe ou des attributs target

18 CHAPITRE 1 Les bases du XHTML/CSS

Info

Les styles peuvent être défi nis dans une feuille de styles, dans la balise <style> d’un document ou à l’intérieur d’une balise, en utilisant l’attribut style=. Lorsqu’un style est simultanément affecté à une balise dans deux ou trois de ces emplacements stra-tégiques, le dernier style lu est celui qui est appliqué. Un style défi ni à l’intérieur d’une balise a donc priorité par rapport à celui qui est défi ni dans la balise <style>, qui, lui-même, a priorité sur celui qui est défi ni dans une feuille de styles externe.

Balises , sélecteurs , propriétés et valeurs CSSsélecteur {propriété1: valeur1; … propriétéN: valeurN;}

balise {propriété1: valeur1; … propriétéN: valeurN;}

Pour défi nir le style d’une balise, il suffi t d’entrer le nom de la balise, d’ouvrir des accolades, d’énumérer une ou plu-sieurs propriétés et de leur affecter les valeurs souhaitées :

li{ color: blue; background: #156129; margin: 14px 14px 14px 14px; list-style: none;}

Dans cet exemple :

• li correspond à la balise de liste du langage XHTML ;

• color, background, margin et list-style sont les pro-priétés de la balise li ;

• blue, #156129, 14px 14px 14px 14px et none sont les valeurs affectées aux propriétés.

Book_GdS_XHTML.indb 18Book_GdS_XHTML.indb 18 27/10/08 22:09:4527/10/08 22:09:45

Page 16: XHTML et CSS 2 - Pearson › resources › titles › 27440100331050 › extras › 2304_… · Ł XHTML 1.0 Transitional si votre page contient des iframe ou des attributs target

19

La balise peut être remplacée par un sélecteur, par exemple pour faire référence à toutes les balises (*), ou encore pour cibler des balises en fonction de leur attribut class (.) ou id (#).

Sélecteurs CSS*.nom_classenom_balise.nom_classenom_balise#nom_identifi ant

[attribut]

Avant de commencer à défi nir des styles CSS, il est impor-tant de bien comprendre la logique des sélecteurs.

Le sélecteur universel étoile (*) s’adresse à toutes les balises. Vous l’utiliserez essentiellement pour modifi er la police de tous les éléments affi chés dans un document.

* { font-family: Verdana;}

Le sélecteur de type permet de changer le style d’une balise. Ici, par exemple, le style de toutes les balises <h1> :

h1 {font-size: 120%;}

Le sélecteur de classe est représenté par un point (.). Il cible les balises en fonction de la valeur de leur attribut class. Par exemple, le style suivant s’applique à toutes les balises <p> dont l’attribut class vaut info.

p.info {backgroung: yellow;}

Sélecteurs CSS

Book_GdS_XHTML.indb 19Book_GdS_XHTML.indb 19 27/10/08 22:09:4527/10/08 22:09:45

Page 17: XHTML et CSS 2 - Pearson › resources › titles › 27440100331050 › extras › 2304_… · Ł XHTML 1.0 Transitional si votre page contient des iframe ou des attributs target

20 CHAPITRE 1 Les bases du XHTML/CSS

Si aucune balise ne restreint le sélecteur de classe, toutes les balises dont l’attribut class a la valeur spécifi ée sont concernées. Ici par exemple, toutes les balises dont l’attri-but class vaut info sont concernées :

. info {backgroung: yellow;}

Il est possible d’affecter plusieurs classes à une balise (l’at-tribut class peut se voir affecter plusieurs valeurs séparées par des espaces). Ici par exemple, seules les balises <p> dont l’attribut class vaut info et premier sont affectées :

p.info.premier {backgroung: yellow;}

Le sélecteur d’identifi cateur est représenté par le caractère dièse (#). Il cible la balise dont la propriété id a la valeur spécifi ée. Ici, seule la balise dont l’attribut id vaut corne est concernée :

#corne {font-family: Serif;}

Vous pouvez restreindre le ciblage en précisant une balise devant le sélecteur d’identifi cateur. Ici, par exemple, seules la balise <p> dont l’attribut id vaut corne est concernée :

p# corne {font-family: Serif;}

Un sélecteur descendant est construit avec deux ou plus sélecteurs traditionnels séparés par un caractère espace. Il cible les balises enfants du premier sélecteur. Par exem-ple, pour affecter un arrière-plan jaune à toutes les balises <li> enfants d’une balise <div>, vous utiliserez le sélecteur descendant ci-après :

div li {color: yellow;}

Book_GdS_XHTML.indb 20Book_GdS_XHTML.indb 20 27/10/08 22:09:4627/10/08 22:09:46

Page 18: XHTML et CSS 2 - Pearson › resources › titles › 27440100331050 › extras › 2304_… · Ł XHTML 1.0 Transitional si votre page contient des iframe ou des attributs target

21

Un sélecteur d’attribut cible les balises en fonction de la présence d’attributs et/ou de leurs valeurs. Par exemple, pour affecter une taille de 120 % à toutes les balises qui possè-dent un attribut perso, vous utiliserez le sélecteur suivant :

[perso] {font-size: 120%;}

Pour cibler les seules balises dont l’attribut perso a pour valeur vert, vous utiliserez le sélecteur suivant :

[perso=vert] {font-size: 120%;}

id ou class ?idclass#

.

Lorsque vous défi nissez une classe qui s’adresse à une seule balise, vous devez utiliser le signe dièse (#), qui fait réfé-rence à l’identifi cateur (id) de la balise.

À titre d’exemple, le style #perso: {font-color: red;} s’adresse à la balise dont l’id vaut perso :

<div id=“perso“>

ou encore :

<p id=“perso“>

Lorsqu’un style concerne plusieurs balises, on dit qu’il est réutilisable. Pour le défi nir, vous devez utiliser le signe point (.), qui fait référence à l’attribut class des balises.

id ou class ?

Book_GdS_XHTML.indb 21Book_GdS_XHTML.indb 21 27/10/08 22:09:4627/10/08 22:09:46

Page 19: XHTML et CSS 2 - Pearson › resources › titles › 27440100331050 › extras › 2304_… · Ł XHTML 1.0 Transitional si votre page contient des iframe ou des attributs target

22 CHAPITRE 1 Les bases du XHTML/CSS

À titre d’exemple, le style .perso: {font-style: italic;} s’adresse aux trois balises suivantes, puisque leur attribut class a pour valeur perso :

<div class=“perso“>

<p class=“perso“>

<center class=“perso“>

Info

Contrairement aux styles id, les styles class peuvent s’appli-quer aux balises <span>. Ils peuvent donc être utilisés au niveau caractère.

Deux classes pour un même élément class

Vous pouvez affecter deux classes à un même élément. Dans ce cas, il utilise les propriétés cumulées des deux classes. Si des valeurs différentes sont affectées à une même pro-priété, c’est celle du dernier style référencé qui sera utilisée.

<!DOCTYPE html PUBLIC ” -//W3C//DTD XHTML 1.0 Strict//EN“

” http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd“>

<html>

<head>

<style type=“text/css“>

.premier

{

background-color: #D7FDB5;

font-size:40px;

color: blue;

Book_GdS_XHTML.indb 22Book_GdS_XHTML.indb 22 27/10/08 22:09:4627/10/08 22:09:46

Page 20: XHTML et CSS 2 - Pearson › resources › titles › 27440100331050 › extras › 2304_… · Ł XHTML 1.0 Transitional si votre page contient des iframe ou des attributs target

23

}

.deuxieme

{

font-style: italic;

color: red;

}

</style>

</head>

<body>

<div class=“premier deuxieme“>

Ce texte a les caractéristiques des deux classes,

➥excepté la couleur qui provient de la classe deuxieme.

</div>

</body>

</html>

Dans cet exemple, le texte affi ché dans la balise <div> de classe premier et deuxieme a les caractéristiques suivantes :

• couleur d'arrière-plan défi nie dans le style premier ;

• taille des caractères défi nie dans le style premier ;

• couleur des caractères défi nie dans le style deuxieme (car la classe deuxieme est référencée après la classe pre-mier dans class=“premier deuxieme“) ;

• police italique défi nie dans deuxieme.

Pseudo-classes et pseudo-éléments :fi rst-child:link:visited:hover:active:focus

Pseudo-classes et pseudo-éléments

Book_GdS_XHTML.indb 23Book_GdS_XHTML.indb 23 27/10/08 22:09:4627/10/08 22:09:46

Page 21: XHTML et CSS 2 - Pearson › resources › titles › 27440100331050 › extras › 2304_… · Ł XHTML 1.0 Transitional si votre page contient des iframe ou des attributs target

24 CHAPITRE 1 Les bases du XHTML/CSS

:lang:fi rst-line

:fi rst-letter

Le sélecteur de pseudo-classe est représenté par le signe deux-points (: ).

Vous ferez appel aux pseudo-classes pour cibler des balises en fonction de caractéristiques inaccessibles aux sélecteurs traditionnels, premier enfant ou focus par exemple.

La pseudo-classe :fi rst-child permet de cibler le premier enfant d’une balise. Par exemple, pour mettre en gras la première balise <p> enfant de la balise <div>, vous utilise-rez le sélecteur ci-après :

div p:fi rst-child {font-weight: bold;}

Les pseudo-classes :link et :visited ciblent les balises <a> dont le lien n’a pas été visité ou a été visité, respectivement. Les deux lignes suivantes défi nissent la couleur des liens :

:link {color: fushia}

:visited {color: navy}

La pseudo-classe :focus cible les balises qui ont le focus de l’utilisateur (généralement les balises d’un formulaire). Elle permet très simplement de modifi er la couleur d’arrière-plan (ou un autre style) d’un marqueur. Ici, par exemple, nous affectons un arrière-plan de couleur rouge à la balise input de type text qui a le focus :

input[type=text]:focus {background: red;}

Book_GdS_XHTML.indb 24Book_GdS_XHTML.indb 24 27/10/08 22:09:4627/10/08 22:09:46

Page 22: XHTML et CSS 2 - Pearson › resources › titles › 27440100331050 › extras › 2304_… · Ł XHTML 1.0 Transitional si votre page contient des iframe ou des attributs target

25

La pseudo-classe :hover cible les balises dont le contenu est survolé. Cela permet, par exemple, de changer la bor-dure d’une image lorsqu’elle est pointée par la souris :

img:hover {border-style: dotted;}

La pseudo-classe :lang permet de défi nir un style en fonc-tion de la langue du document. Ici, par exemple, nous défi -nissons les guillemets à utiliser pour la langue française :

xml:lang(fr) {quotes: ‘« ‘ ‘»’;}

Le sélecteur de pseudo-élément est également représenté par le signe deux-points (: ).

De façon traditionnelle, les CSS sont liés à un élément, en fonction de sa position dans l’arbre du document. Cependant, il peut être utile de faire appel à un pseudo-élément pour effectuer des mises en forme à partir d’in-formations absentes de l’arbre du document, par exemple pour défi nir le style de la première ligne ou du premier caractère d’une balise.

Le pseudo-élément :fi rst-line cible la première ligne d’une balise. Ici, par exemple, la première ligne de la balise <p> est affi chée en rouge :

p:fi rst-line {color:red;}

Le pseudo-élément :fi rst-letter cible le premier carac-tère d’une balise. Ici, par exemple, nous doublons la taille du premier caractère d’une balise <p> et nous lui affectons l’attribut gras :

p:fi rst-letter {font-size: 200%; font-weight: bold;}

Pseudo-classes et pseudo-éléments

Book_GdS_XHTML.indb 25Book_GdS_XHTML.indb 25 27/10/08 22:09:4727/10/08 22:09:47