Les sélecteurs et l`arborescence - ciblage des sélecteurs
Transcription
Les sélecteurs et l`arborescence - ciblage des sélecteurs
Les sélecteurs et l'arborescence - ciblage des sélecteurs Corrigé Les sélecteurs et l'arborescence - ciblage des sélecteurs [réponses] Question 1 Prenons le code HTML suivant comme exemple : 1. 2. 3. 4. 5. 6. 7. <h1 class="ma_classe">Présentation</h1> <div id="mon_id_1" class="ma_classe">Salut</div> <span id="mon_id_2" class="ma_classe">Ca va ?</span> <div> <span>Oui !</span> <p>Et toi ?</p> </div> Quelle(s) ligne(s) de l'exemple sera/seront affectée(s) par les sélecteurs suivants? Ligne(s) div > span { text-decoration:underline; } 5 Le signe « > » indique un sélecteur d’enfant, il désigne les enfants de premier niveau uniquement (il ne cible que les descendants immédiats de l’élément). .ma_classe { text-decoration:underline; } 1,2,3 Cible tous les éléments porteurs de la classe « .ma_classe » seront affectés div + span { text-decoration:underline; } 3 Le signe « + » indique un sélecteur de frère adjacent, il sélectionne le frêre qui suit directement un élément (et permet ainsi de cibler un élément précédé par un autre élément qui possède le même parent). h1 { text-decoration:underline; } 1 Ciblage classique de la balise h1 span#mon_id_2 { text-decoration:underline; } 3 Cible uniquement les span possédant l’ID #mon_id_2 h1,div { text-decoration:underline; } 1,2,5,6 Cible tous les h1 et tous les div div span { text-decoration:underline; } 5 Cible uniquement les span contenus dans un p span.ma_classe { text-decoration:underline; } Nathalie Vanassche www.nathalievanassche.be 3 1 Les sélecteurs et l'arborescence - ciblage des sélecteurs Corrigé Cible uniquement les span possédant la classe .ma_classe p > span { text-decoration:underline; } / Car span ne descend pas immédiatement de p div p { text-decoration:underline; } 6 Ciblage classique de p dans div Question 2 De quelle manière optimale puis-je cibler à la fois tous les titres de niveau 1 de ma page, tous les éléments de classe fruit, ainsi que l’élément dont l’identifiant est header ? La meilleure façon est d’employer le sélecteur de groupe : h1, .fruit, #header { ici les styles CSS ; } Question 3 Comment puis-je cibler uniquement le premier niveau d’éléments <div> contenus au sein de ma section (<section>) ? Pour cibler uniquement le premier niveau de <div> du document : section > div { ici les styles CSS ; } Question 4 Comment cibler tous les paragraphes SAUF le 1er sans modifier le code HTML ? (Le nombre de paragraphes est aléatoire). <body> <p>premier paragraphe</p> <p>deuxième paragraphe</p> <p>troisième paragraphe</p> … </body> Sélectionnez le premier élément à l’aide du sélecteur d’adjacence : body p:not(:first-child) { ici les styles CSS ; } Question 5 Comment cibler dans la liste ci-dessous 1 élément sur 3 sans modifier le code HTML ? <ul> <li>premier élément</li> <li>deuxième élément</li> <li>troisième élément</li> <li>quatrième élément</li> <li>cinquième élément</li> … </ul> Nathalie Vanassche www.nathalievanassche.be 2 Les sélecteurs et l'arborescence - ciblage des sélecteurs Corrigé 3 li:nth-child(3n) { ici les styles CSS; } Car : 3*0=0, 3*1=3, 3*2=6, 3*3=9, … … Question 6 De quelle couleur sera le titre de mon document issu du code HTML ci-dessous et des règles de styles CSS suivantes ? Pourquoi ? HTML <div class="container"><h1 id="first" class="fruit">Potage de kiwi</h1></div> CSS h1 {color: green;} #first {color: blue;} h1.fruit {color: yellow;} h1.fruit:first-child {color: red;} div.container > h1.fruit:first-child {color: gray;} La règle de priorité des sélecteurs s’applique aux différentes règles : le poids de l’identifiant (#first) l’emporte sur tous les autres types de sélecteurs proposés (classe, attribut, pseudo-classe, élément et pseudo-élément), de plus, les sélecteurs d'enfant, de frère ou de parent ne comptent pour rien. Au final, le titre du document sera donc de couleur bleue. Lecture Web : http://jeremie.patonnier.net/post/2009/08/18/La-preseance-des-selecteurs-CSS Nathalie Vanassche www.nathalievanassche.be