J'essaie de créer un menu vertical et j'ai besoin de faire un sous-menu multicolonne. Mon code ressemble à ceci:float imbriqué li
<style type="text/css" media="screen">
#nav {
width: 100px;
}
#nav li {
position: relative;
background-color: red;
}
#nav li:hover .subnav {
display: block;
}
.subnav {
position: absolute;
top: 0;
left: 100px;
display: none;
}
.subnav > li {
float: left;
}
</style>
<ul id="nav">
<li>
<a href="#">Link 1</a>
<ul class="subnav">
<li>
<ul>
<li>Col 1.1</li>
<li>Col 1.2</li>
</ul>
</li>
<li>
<ul>
<li>Col 2.1</li>
<li>Col 2.2</li>
</ul>
</li>
<li>
<ul>
<li>Col 3.1</li>
<li>Col 3.2</li>
</ul>
</li>
</ul>
</li>
</ul>
Ma question est de savoir pourquoi .subnav> li ne flotte pas à gauche? Je ne veux pas définir l'attribut de largeur, car je ne sais pas combien de temps l'élément de sous-menu sera.
vous avez raison, mais si j'enlève la largeur de # nav, cela signifie que sa largeur sera égale à la largeur de son parent (c'est-à-dire sa largeur). Cependant, sur mon site, ce #nav est situé à l'intérieur d'une plongée avec une largeur de 100px. Si je prends ce #nav en dehors de la div alors la disposition entière sera un gâchis. –
Ensuite, je ne vois pas de moyen de définir la largeur sur le sous-nav. Si vous le définissez sur la largeur maximale disponible (en supposant que le corps a une largeur fixe) et lui donnez un arrière-plan transparent, peu importe le nombre d'éléments sous-nav. – Jacob
merci pour votre réponse –