J'essaie d'avoir un menu de barre latérale chevauchant un contenu Je comprends que est un bon moyen de le faire sans avoir à faire chaque élément de menu un div code>, où l'élément de menu actif apparaît sur le div code> et les éléments non actifs apparaissent sous. L'intersection entre un ul code> et div code> serait petit, mais l'effet d'entrelacement créerait une illusion de profondeur. z-index code> s'applique uniquement aux éléments de frère de soeur. Donc ce qui suit ne fonctionne pas: p> div code> au même niveau que #content code>? p> p>
4 Réponses :
Plutôt que de gâcher avec des indices en Z et des hacks css poilus, puis-je suggérer d'utiliser des astuces de fond? Une chose que vous pouvez faire est de donner au menu un arrière-plan répétant de manière à ce qu'une partie de celle-ci semble faire partie du contenu div. Ensuite, l'élément actif peut avoir un arrière-plan qui semble étendre dans le contenu. C'est beaucoup plus simple et évite beaucoup de maux de tête. P>
Je suggère au lieu d'utiliser Z-Index pour le faire, essayez de définir les largeurs des éléments Li en fonction de leur activité ou non. Si vous faites la navigation de barre latérale, affleurez-vous avec le contenu DIV, vous pouvez alors faire de manière gastronomique .active Li légèrement plus large de sorte qu'il chevauche le contenu DIV. De cette façon, cela ressemblera à la partie non active du menu sous le contenu DIV. Si je ne comprends pas votre idée correctement, vous pourriez peut-être me montrer un exemple. Bonne chance, ça sonne comme un effet nifty. P>
Donnez à la LI un z-index au lieu de #menu: et n'oubliez pas de les positionner relatif pour l'index Z à prendre effet. P> < / p>
vous voulez du Le seul moyen d'y parvenir est en train de s'assurer que Tous les et puis il Sera facile: il suffit de définir les propriétés li code> pour apparaître à l'avant d'un div code> et les autres à son dos. li code> et le divont code> appartiennent à la même Contexte d'empilement . Cela signifie que le ul code> ne doit pas créer de contexte d'empilement, donc ne définissez aucun z-index code> à celui-ci. Voir Quelles propriétés CSS créent un contexte d'empilement? pour ce qui devrait être évitée exactement. P> z-index code> sur le li code> et le div code> comme vous le souhaitez. Cependant, rappelez-vous que z-index code> s'applique uniquement aux éléments positionnés, par ex. Position: Relative Code>. P> <ul id="menu">
<li class="active">Item 1</li>
<li>Item 2</li>
<li>Item 3</li>
</ul>
<div id="content"></div>
Je ne pense pas que vous puissiez obtenir cela fonctionner du tout sans gérer complètement votre balisage et introduire un CSS compliqué - gardez-le simple, mec.