28173 sujets

CSS et mise en forme, CSS3

Bonjour, j'ai un probleme avec la couleur de fond d'un p ...
J'ai remarqué que lorsque l'on defini un background-color dans un <p> des qu'il rencontre un div le rest n'est plus coloré ...
Si vous regardé ce code vous verrez ... est ce que quelqu'un a une solution ?

Merci beaucoup ,
kal'

<p style="background-color:#0000ff;">
	dans p avant le div
	<div style="background-color:#ff0000;">
		dans le div
	</div>
	dans p après le div
</p>

Modifié par kalan (20 Nov 2006 - 13:45)
Modérateur
Bonjour,

La balise div est de type bloc et un paragraphe n'accepte pas de contenir un bloc pour être valide.
Modérateur
C'est un début de solution mais ce qui importe est surtout ce à quoi servent les balises...

div sert à regrouper plusieurs balises sous forme d'ensemble alors que p représente un paragraphe et peut contenir toute balise de type "en ligne".
Ce qu'il faut voir pour faire ton choix, c'est le rôle de ce qui est contenu dans l'élément "enfant" du div "parent".
kalan a écrit :
d'accord donc le seul moyen c'est de mettre un div dans un div finalement c'est ca ?

Ou bien un p dans un div. OU un span dans un p. Ou un strong dans un li... ça dépend de ce que tu veux coder, en fait.
kalan a écrit :
d'accord donc le seul moyen c'est de mettre un div dans un div finalement c'est ca ?


Non,

Sauf les cas divers qu'évoque à juste titre Mpop, la logique de l'imbrication c'est <div> qui est là comme conteneur d'élément de type block et ensuite <p> qui arrête toute possibilité d'imbrication supplémentaire d'éléments de ce type (ce qui constitue en fait sa vraie définition, plus que "paragraphe" qui de ce point de vue ne veut pas dire grand chose).

donc le cas le plus général serait :

<div>
<p>
...
</p>
<p>
...
</p>
</div

Modifié par clb56 (20 Nov 2006 - 15:43)