Je me pose cette question depuis un moment : en HTML on ne peut pas mettre un élément bloc dans un élément en ligne. Ça me parait normal.
Mais en CSS... est-ce qu'on peut ?
Prenons l'exemple d'un menu tout simple :
Pour le faire tenir sur une ligne, on peut le faire flotter, mais alors pour que ça marche dans Opera il faut fixer la largeur des <li>, pas évident vu que ceux-ci peuvent varier (d'ailleurs j'ai pris un mauvais exemple dans lequel ils ont tous la même taille)...
Une autre possibilité, qui semble marcher (et c'est ça qui est étonnant) :
Ce code fonctionne, pourtant il inclus des blocs (a) dans des en-ligne (li). Alors qu'en est-il ? Est-ce un bug de tous les navigateurs ou est-ce normal ? Peut-on s'y fier pour faire un beau menu ou faut-il trouver autre chose ?
Désolé si ma question est un peu tordue
Mais en CSS... est-ce qu'on peut ?
Prenons l'exemple d'un menu tout simple :
<ul>
<li><a href="...">menu1</a></li>
<li><a href="...">menu2</a></li>
<li><a href="...">menu3</a></li>
</ul>
Pour le faire tenir sur une ligne, on peut le faire flotter, mais alors pour que ça marche dans Opera il faut fixer la largeur des <li>, pas évident vu que ceux-ci peuvent varier (d'ailleurs j'ai pris un mauvais exemple dans lequel ils ont tous la même taille)...
Une autre possibilité, qui semble marcher (et c'est ça qui est étonnant) :
li {display:inline;}
a {display:block;}
(et toutes les marges, espacements, bordures qui vont avec...)
Ce code fonctionne, pourtant il inclus des blocs (a) dans des en-ligne (li). Alors qu'en est-il ? Est-ce un bug de tous les navigateurs ou est-ce normal ? Peut-on s'y fier pour faire un beau menu ou faut-il trouver autre chose ?
Désolé si ma question est un peu tordue
