Bonjour,


<div id="contenu">
	<h2>Un titre</h2>
	<p>Un paragraphe </p>
</div>



div#contenu
{
	float : right;
	width : 586px;
	margin-right : 10px;
}

div#contenu h2
{
	padding-left: 25px ;
	line-height: 25px ;
	font-size: 1.4em ;
	background: url(little_apple.gif) no-repeat left bottom ;
	color: #9b2 ;
	border-bottom: 1px solid #9b2 ;
}

div#contenu p
{
	text-align: justify ;
	text-indent: 2em ;
	line-height: 1.7em ;
}


Voilà, j'aurais aimé savoir si div#contenu p est égale à #contenu p ?? Est-ce-qu'il n'y a aucune différence ?? Si oui, est-ce-mieux de mettre le div devant ??

Merci pour les réponses!
Modifié par poopsinou (13 Jul 2006 - 10:07)
Salut,
pour le code HTML que tu donnes, ça ne changera rien, le sélecteur aura le même effet.

Par contre, il réside bel et bien une différence entre ces deux sélecteur en règle générale.

foo#bar foo2

Va chercher la balise "foo" qui a pour id "bar" et à l'intérieur de celle-ci, les balises "foo2"

Typiquement :

<foo id="bar">
<foo2>bla bla</foo2>
</foo>


Le sélecteur
#bar foo2
va quant à lui sélectionner la balise ayant pour id "bar" quelque que soit cette balise et ensuite les balises foo2 contenues à l'intérieur


<machin id="bar">
<foo2>bla bla</foo2>
</machin>


Là où ça va changer, c'est si c'est la balise "machin" qui a l'id "bar" et que ton sélecteur est "foo#bar foo2", ça ne fonctionnera plus ici.

Perso, je préfère la notation balise#id à #id (et balise.class à .class) sauf cas particulier où on a besoin d'un truc totalement générique (et là je préfère encore mettre *.id et *.class plutôt que .id et .class)

Ca permet de ne pas trop regarder le code HTML que l'on code lorsqu'on est plongé dans les CSS

h2.contenu { ... }

On sait que c'est un titre de niveau 2, donc qu'il y a des marges par défaut, une taille de police supérieure etc.
Alors que .contenu { ... }, ça peut être n'importe quoi.

Après, c'est question de choix Smiley smile
Salut.

Aucune différence à mon avis. Sauf si il y a une erreur côté html : le style déclaré par
h1#titre
ne sera pas appliqué si on fait une boulette dans la page html en donnant l'id "titre" à un paragraphe, par exemple.

EDIT : damned, grilled again.
Modifié par Sopo (12 Jul 2006 - 17:03)
Salut,

la difference est que si tu ne mets pas div avant le #toto, tu t'adresses a n'importe quel element ayant cette identité, ce qui peut servir a distribuer le style déclaré sur des balises diffrentes dans differents pages (puisque sur la meme page il ne peut y avoir qu'une seule id par element).

Sinon ça revient au meme sur une meme page.
Dans ce cas autant l'enlever...

Ce n'est que mon avis, que l'on me corrige si je dis des conneries

edit : eh ben que d'affluences ici ! ! ! bon ben visiblement j'avais pas dit de conneries...
Modifié par Hum (12 Jul 2006 - 17:06)
Smiley biggol

Merci pour vos réponses !!
Donc ça rend le code plus clair si on a pas le HTML pour savoir à quoi correspondent les balises et ça évite les bêtises surtout si on utilise la feuille CSS pour plusieurs pages (si j'ai bien tout compris) Smiley langue
C'est bon à savoir Smiley biggrin

Merci merci !!
Modifié par poopsinou (12 Jul 2006 - 17:05)
poopsinou a écrit :
Smiley biggol
...surtout si on utilise la feuille CSS pour plusieurs pages (si j'ai bien tout compris) Smiley langue
C'est bon à savoir Smiley biggrin

Merci merci !!


C'est le but : l'utiliser pour plusieurs pages, ne pas mettre div (ou autre) avant # c'est pour utiliser cette declaration pour des balises differentes dans differentes pages.

Mais effectivement dans un premier temps autant specifier entieremment la declaration :

balise#identité  {}

Modifié par Hum (12 Jul 2006 - 17:09)
Ben j'utilise mes pages CSS pour plusieurs pages différentes, mais en générales en fait j'en ai fait plusieurs,chaque CSS va à un groupe de pages ayant la même structure, et puis après dedans les pages j'ai jamais deux balises avec le même nom (sauf si c'est class).

Si j'avais su ça avant, j'aurais pu peut-être mettre tout ce qui était code redondant entre toutes ces pages dans une seule !! Mais bon Smiley biggol Si je commence à retoucher tout, je pense je vais tout casser, et je peux pas trop parce que c'est déjà fonctionnel!

Je le saurais pour la prochaine fois! Merci
En général, pour le cas des identifiant (id=""), la balise est la même quelque soit les page (en général), donc l'indiquer n'est pas tellement "pénalisant", et si on sait qu'on a plusieurs balise pour un même identifiant sur différentes page, *#monid par exemple (ou #monid tout court).

C'est pour le cas des class que c'est plus interessant de regarder :

mabalise.maclass { ... } /* seuleument pour les balises "mabalise" */
mabalise2.maclass { ... } /* seuleument pour les balises "mabalise2" */
*.maclass { ... } /* pour toutes les balises */
.maclass { ... } /* idem que précédement */
Administrateur
Bonjour,

une différence possible, c'est dans la Cascade CSS et priorité des sélecteurs. S'il y a des "ordres" contradictoires, le résultat peut être différent avec les 1er et 2ème cas. (EDIT: cas rare mais je suppose assez difficile à détecter)
Modifié par Felipe (12 Jul 2006 - 20:32)
Felipe a écrit :
Bonjour,

une différence possible, c'est dans la Cascade CSS et priorité des sélecteurs. S'il y a des "ordres" contradictoires, le résultat peut être différent avec les 1er et 2ème cas. (EDIT: cas rare mais je suppose assez difficile à détecter)


Ahh oui, bien vu en effet !
balise#id a plus de poid que #id Smiley cligne
poopsinou a écrit :
Merci pour toutes vos réponses!!

Mon prochain CSS je m'appliquerais plus Smiley biggrin


Et tu n'oublieras plus le petit résolu, n'est-ce-pas ?!
Smiley lol
Oups désolée !! Je pensais l'avoir mis hier en fait ... J'ai du encore rever !
Modifié par poopsinou (13 Jul 2006 - 10:07)