J'ai une page xhtml 1.0 strict avec la structure suivante :
CODE
<div id="col1"></div>
<div id="wrapper1">
<div id="menuHor"></div>
<div id="wrapper2">
<div id="col2"></div>
<div id="contenu2">
<h2></h2>
<p></p>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<form>
<p>texte <select></select></p>
<a class="precedent"></a>
<a class="suivant"></a>
<p>pagination</p>
</form>
</div>
</div>
</div>
<div id="wrapper1">
<div id="menuHor"></div>
<div id="wrapper2">
<div id="col2"></div>
<div id="contenu2">
<h2></h2>
<p></p>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<form>
<p>texte <select></select></p>
<a class="precedent"></a>
<a class="suivant"></a>
<p>pagination</p>
</form>
</div>
</div>
</div>
et les css
CODE
#col1
{
width : 150px;
float : left;
}
#wrapper1
{
margin-left : 150px;
}
#col2
{
float : right;
width : 100px;
}
#contenu2
{
margin-right : 100px;
}
.item
{
float : left;
width : 50%;
}
{
width : 150px;
float : left;
}
#wrapper1
{
margin-left : 150px;
}
#col2
{
float : right;
width : 100px;
}
#contenu2
{
margin-right : 100px;
}
.item
{
float : left;
width : 50%;
}
ce qui correspond à :
- un menu vertical côté gauche en flottant
- un menu horizontal prenant toute la largeur à droite
- en dessous du menu horizontal, séparation verticale supplémentaire :
- une colonne côté droit en flottant
- une colonne centrale avec le contenu
J'ai bien mis les différentes marges afin de tenir compte des zones flottantes. Mon problème est le suivant : j'ai une page dans laquelle la zone contenu2 (la colonne centrale) donne ceci :
Les item sont des div flottant occupant chacun 50% de la largeur de contenu2 (j'ai vérifié) donc normalement, pas moyen de passer à droite : ils sont censé (il me semble) tout pousser vers le bas.
Mais le premier paragraphe du formulaire se retrouve à flotter complètement à droite, en empiétant sur la marge droite de contenu2, et même sur col2 !
Le seul moyen que j'ai trouvé pour l'instant pour provoquer un retour forcé, c'est un br en clear:both, mais ça place forcément le formulaire plus bas que la colonne de gauche (puisqu'elle est en float left), même si le contenu2 est plus court que la colonne de gauche.
Quelqu'un aurait une idée de pourquoi ça me fait ça ? Parce que là je cale.
En gros, comment faire pour faire un clear qui n'ait d'effet que dans le parent direct, et pas plus loin ?
Merci