Comment la couche de zone-ombres à l'aide de z-index?
html
<div id="a">
<div id="b">bbb</div>
<div id="c">
<ul>
<li>a</li>
<li class="current">b</li>
<li>c</li>
<li>d</li>
</ul>
</div>
</div>
<div id="d">dddd
</div>
css
#b {
background: orange;
box-shadow: 0 0 10px black;
z-index: 2;
position: relative;
}
#c {
background: red;
z-index: 1;
position: relative;
}
ul {
list-style: none;
margin: 0;
padding: 0;
z-index: 1;
position: relative;
}
li {
display: inline-block;
padding: 2px 5px;
}
.current {
background-color: orange;
z-index: 3;
position: relative;
}
#d {
box-shadow: 0 0 10px black;
z-index: 2;
}
Prendre un coup d'oeil au code du stylet. J'ai les couches plus ou moins la façon dont je le veux, sauf que je veux que la "b" de l'onglet à être au-dessus de la box-shadow causés par l'orange div ci-dessus.
D'élaborer, de l'orange #b
div jette une ombre sur le rouge #c
div, le .current
onglet devrait apparaître rincer avec de l'orange #b
div (ont pas d'ombre sur elle), et #d
devrait pas jeté une ombre sur #c
à tous.
Le problème est que le z-index
sur .current
ne semble pas fonctionner.
OriginalL'auteur mpen | 2014-04-14
Vous devez vous connecter pour publier un commentaire.
Démo: http://codepen.io/anon/pen/vLgKC
Pour plus d'info sur
z-index
et l'empilage du contexte et des priorités s'il vous plaît voir ma réponse ici.Ci-dessus, combinée avec la
inset
pourbox-shadow
Et un
negative spread
(Les deux ici)
Va vous donner de l'effet que vous recherchez.
De sorte que vous aurez besoin de changer le lieu que les ombres sont appliquées sur les éléments.
Donc la dernière CSS:
À l'aide d'un médaillon de l'ombre pour créer l'illusion d'un autre élément a jeté une ombre sur l'actuel est très utile CSS truc! Idéal pour les situations où l'ordre DOM qui obtient le droit ombrage look est mauvais pour l'ordre des tabulations, etc.
OriginalL'auteur Arbel
Si vous êtes en utilisant le z-index, assurez-vous que l'élément a un attribut de position ou il ne fonctionnera pas. Lorsque vous utilisez z-index en css, définir la position de cet élément. (Absolue, relative, hériter...)
position: relative
quelque part que je ne vois pas?J'ai essayé les autres suggestions avec, en médaillon, mais aucun d'entre eux travaillaient. L'ajout de
position: relative
a parfaitement fonctionné. Merci!OriginalL'auteur FreeStateNH
Essayez d'utiliser l'encart box-shadow sur les éléments de la liste, et lorsque l'élément sélectionné est classe
.current
puis retirer le médaillon de l'ombre.inset
n'est pas tout à fait donner l'effet que je veux. Aussi, il serait appliqué à#c
, pas le li (je veux l'ombre sur l'ensemble de la barre).Passons..avec un écart négatif, tout semble bien fonctionner.
OriginalL'auteur sunpietro