<hier>WEBLOG</hier>

Mercredi 28 décembre 2005 | link |

Sélecteurs class et id

Je reçois fréquemment des mails, via CSS débutants ou via OpenWeb, me demandant comment appliquer un style particulier dans une page. La réponse est toute simple : il faut utiliser des sélecteurs, et les attributs class et id sont là pour cela.

Le sélecteur class

Prenons un exemple : les pages web sont souvent ponctuées d'ancres permettant de remonter en haut de page, et celles-ci sont souvent placées à droite de la page (ce qui est sympa pour les gauchers, mais bon, j'avoue le faire aussi :-\ ). Il va donc falloir déclarer un style spécial pour cette mise en forme spécifique, et le sélecteur class va nous y aider. A noter que dans la feuille de style, le nom du sélecteur class est toujours précédé d'un point.

Source CSS
.haut {
text-align:right;
}
Source (x)html
<p class="haut">
<a href="#haut">Haut de page</a>
</p>

Et voilà, et cette mise en forme peut-être répétée autant de fois que besoin dans la page.

Sélecteur id

Le sélecteur id a presque la même fonction, à la différence importante qu'on ne peut l'utiliser qu'une seule fois dans la page, contrairement au sélecteur class. C'est pour cela qu'il est plutôt utilisé à la mise en page qu'à la mise en forme de caractères.

Exemple : construisons une section de page à deux colonnes. L'une des deux colonnes servira pour un menu de 100 pixels de large flottant à gauche, l'autre pour un contenu placé à 110 pixels du bord gauche (pour ne pas empiéter sur le menu bien sûr). Cette fois, ce n'est pas d'un point qu'il faudra faire précéder le nom du sélecteur id, mais d'un #.

Source CSS
#menu {
background-color:silver;
width:100px;
float:left;
}
#contenu {
margin-left:110px;
}
Source (x)html
  
<h1 id="haut">Exemple des sélecteurs "class" et "id"</h1> 

<div id="menu">
<ul>
	<li>item 1</li>
	<li>item 2</li>
	<li>item 3</li>
	<li>item 4</li>
	<li>item 5</li>
</ul>
</div>

<div id="contenu">
	<p>
	Lorem ipsum dolor sit amet, 
	consectetuer adipiscing elit, 
	sed diam nonummy nibh euismod 
	tincidunt ut laoreet dolore 
	magna aliquam erat volutpat. 
	Ut wisi enim ad minim veniam, 
	quis nostrud exerci tation 
	ullamcorper suscipit lobortis 
	nisl ut aliquip ex ea commodo consequat. 
	Duis autem vel eum iriure dolor 
	in hendrerit in vulputate velit 
	esse molestie consequat, 
	vel illum dolore eu feugiat 
	nulla facilisis at vero eros 
	et accumsan et iusto odio 
	dignissim qui blandit praesent 
	luptatum zzril delenit augue duis 
	dolore te feugait nulla facilisi.
	</p> 
	 
	<p class="haut">
	<a href="#haut">Haut de page</a>
	</p>
</div>

Il n'aura pas échappé à votre sagacité qu'un id non déclaré dans les styles est venu se glisser dans la balise de titre. C'est le deuxième effet id ! En effet, cet attribut peut aussi servir d'ancre. Ainsi, le lien interne de haut de page y est rattaché directement. Cela explique aussi pourquoi on ne peut utiliser qu'un seul nom de id par page. S'il y avait deux id="haut" dans la page, où irait le lien ?! hein ? je vous le demande !

» Tester l'exemple

En complément : recommandations W3C [fr]

Robert Plant (2ème)

En novembre dernier, nous avions été voir à Caen le concert de Robert Plant. Un grand moment que certains ont eu le regret d'avoir manqué...

Et bien, bande de petits veinards, le grand blond revient en France en 2006 ! Bien sûr, le billet est à 44 euros, mais c'est tout de même plus abordable que pour les Stones qui ont du oublier que la vie ne tourne pas autour de l'américan express...

Les dates :

Et si vraiment vous ne pouvez pas y aller, vous pouvez toujours vous procurer le double CD "Mighty Rearranger" dont le deuxième disque est l'enregistrement du concert donné dans le studio 104 de France-Inter. Ce n'est pas EMI qui le distribue, et donc pas de contenu protégé qui vous empêche de l'écouter sur un lecteur récent...

Douillet le Joly (Sarthe)

Pour faire une ancre vers la haut d'une page, on peut aussi utiliser le lien :
a href="#"
Cela évite de placer un id #haut dans le haut de la page. Et c'est une pratique valide ;-)

Bonne année à toi.

Pascal Grouselle - 02-01-2006 - 19:45

Pour faire une ancre vers la haut d'une page, on peut aussi utiliser le lien :
a href="#"
Cela évite de placer un id #haut dans le haut de la page. Et c'est une pratique valide ;-)

Bonne année à toi.

Pascal Grouselle - 02-01-2006 - 19:45

Rah la la... Mais Pascal tu me casses tout ! ;-)

L'ancre de haut de page n'est juste qu'un pretexte, histoire de montrer qu'on peut faire des ancres avec un id.
Sinon, bien sûr, c'est bien plus pratique de faire ça pour un haut de page.


Bonne année à toi aussi !

Et bonne année à tous d'ailleurs ! :-)

Pascale - 03-01-2006 - 19:09

Bonjour et bonne année à vous!
J'aimerais bien connaitre le b a ba sur le css.
ou positionner, ouvrir
les fichiers...enfin plein de trucs
je trouve ce site tres atrayant, merci à son concepteur.

Raymond Cuilhé - 03-01-2006 - 23:11

Merci Raymond :)

Il y a sans doutes quelques réponses à vos questions dans la partie CSS débutants, mais faudrait que vous me précisiez un petit peu les choses, vos attentes pour que je puisse compléter à bon escient. Contactez-moi par mail.

Pascale - 05-01-2006 - 10:56

Bonjour et bnne année !

Dans votre article sur les class et id, vous déclarez haut comme class dans vos règles.
Mais vous utilisez id dans le body :

R.L - 10-01-2006 - 15:37

Bonjour RL,

Vous avez du essayer de mettre du code html, mais les balises sont interdites dans les commentaires, cette partie a donc été "nettoyée" :-\

Que vouliez-vous dire ? (d'autant qu'il n'y a pas de id dans la balise body)

Pascale - 11-01-2006 - 13:42

Bonjour,
J'essaie de mettre mon site en CSS
cf. http://vagne.free.fr/kubelik/Mendelssohn.htm
Il y a deux blocs, un à gauche pour le menu
un à droite où je veux 3 colonnes, gauche et droite pour images et centre pour le texte.
Malgré l'utilisation de clear, çà se décale dans Firefox (mais pas à partir du même fichier en local...) et c'est correct sous ie.
Merci d'avance

Thierry - 13-01-2006 - 13:12

Bonjour Thierry,

Je viens d'aller voir rapidement votre code. Avant toute chose il faut remettre les choses d'équerre.

Je vois deux balises body, puis une balise body fermante en milieu de code, des h1, h2 qui ne se ferment pas, dans lesquelles sont imbriquées des paragraphes ou autre... ouh lala ;)

Ce sera donc la première étape : rendre le code valide, après, on pourra se pencher sur les problèmes de disposition.

d'accord ? :)

Pascale - 13-01-2006 - 17:22

Laissez moi un commentaire !!!!!

annabelle d'anna - 25-01-2006 - 12:05

| Laisser un commentaire |

| Index | Avant | Archives |