Au lieu de faire ça, il faut réellement comprendre pourquoi tu as une hauteur de 0px.
Tu te retrouves avec ce comportement car en réalité, tu as sortis tes éléments du flux normal de la page. Je m'explique, en mettant enfant1 et enfant2 en flottant, tu les sorts du flux (ils deviennent flottant comme l'indique la propriété)
Ainsi, si on met des bordures à tes conteneurs et des largeurs aux enfant on à ça :
Code:
1 2 3 4 5 6 7 8 9 10 11 12
| <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr-fr" lang="fr-fr">
<head>
<title>test</title>
</head>
<body>
<div id="parent" style="border:1px solid blue;">
<div id="enfant1" style="float:left;height:100px;width:100px;border:1px solid red;"></div>
<div id="enfant2" style="float:right;height:100px;width:100px;border:1px solid red;"></div>
</div>
</body>
</html> |
Conteneur bleu (parent) sans hauteur
Conteneurs rouges (enfants) avec la hauteur et largeur qu'on leur a assigné
Pour les remettre dans le flux, il faut utiliser la propriété "overflow" sur ton conteneur. On se retrouve avec :
Code:
1 2 3 4 5 6 7 8 9 10 11 12
| <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr-fr" lang="fr-fr">
<head>
<title>test</title>
</head>
<body>
<div id="parent" style="border:1px solid blue;overflow:auto;">
<div id="enfant1" style="float:left;height:100px;width:100px;border:1px solid red;"></div>
<div id="enfant2" style="float:right;height:100px;width:100px;border:1px solid red;"></div>
</div>
</body>
</html> |
ton conteneur bleu "voit" bien le flux de tes éléments qui sont dedans.