28172 sujets

CSS et mise en forme, CSS3

Bonjour,
je suis novice dans le domaine du XHTML et CSS et je rencontre une difficulté concernant les propriétés CSS que je n'arrive pas à résoudre malgré mes recherches:
Voici un exemple :

Code HTML

</head>
<body>

<p >normal bleue décallée de 20<br/>
<div class="aa"> class aa décalée de 100 ,rouge</div>
théoriquement aussi bleu car dans balise p ?</p>

</body>
</html>


Code CSS

body {
color:green;
}

p {
margin-left:20px;
color: blue;
}

.aa{ margin-left:100px;
color: red;

}
Ma question :
Pouquoi la troisième ligne n'est-elle pas bleue comme la première puisqu'elle est dans une balise p ?Peut-on regler le problème autrement qu'en touchant au body ou en créant une autre div/span ?
Merci.
Modifié par kilooli (29 Mar 2010 - 19:17)
Bonjour,

Voilà la manière dont la plupart des navigateurs vont comprendre ton code, en corrigeant à la volée tes erreurs de syntaxe (et moi je corrige les erreurs d'orthographe et d'orthotypographie, pour faire bonne mesure Smiley cligne ):
<body>
<p>Normale bleue décalée de 20.<br/></p>
<div class="aa">Classe "aa" décalée de 100, rouge.</div>
Théoriquement aussi bleu car dans balise p ?
</body>

La raison? Un élément P ne peut pas contenir d'élément DIV. En rencontrant la balise <div>, le navigateur n'a d'autre choix que de fermer le P. Quant à la balise </p>, elle se retrouve orpheline et est donc ignorée.

À retenir: toujours valider son code HTML.
http://validator.w3.org
OK , merci pour l'info qui devait être évidente , mais que n'ai pas réussi à trouver sur internet .

Désolé pour les fautes d'orthographes mais je n'y ai pas particulièrement porté attention , c'était juste histoire de mettre quelque chose dans les balises...