将元素的 z-index 放置在父元素的同级元素上方
我有一个包含两个元素的菜单:
<nav id="menu">
<div id="menu-list">
<a href="{{ path('recipes') }}" class="menu-list-item menu-list-item-selected" id="menu-list-item-recipes">{{ 'recipes.tab.label'|trans }}</a>
<a href="{{ path('ingredients') }}" class="menu-list-item" id="menu-list-item-ingredients">{{ 'ingredients.tab.label'|trans }}</a>
</div>
</nav>
两个 元素都是相对定位的,它们的父元素(
#menu
和 #menu-list
是未定位)
加载页面时,页面上有一个 50% 不透明的黑色层,它是 #menu
的同级元素:
<div id="blackLayer" onclick="hideBlackLayer()">
</div>
#blackLayer 定位固定并具有 z 索引在2.
我希望在页面加载时有一个(且仅有一个).menu-list-item
元素(比如#menu-lits-item-recipes
) 位于暗层上方。
如果我将 #menu-lits-item-recipes
z-index 设置为 3,则不会发生任何情况。如果我将#menu
的z-index设置为3(使用position:relative
),所有内容都在黑暗层之上。
有没有一种方法可以在黑暗层上只制作一个 而不修改 DOM 树,因为我无法更改 HTML ?
I have a menu with two elements :
<nav id="menu">
<div id="menu-list">
<a href="{{ path('recipes') }}" class="menu-list-item menu-list-item-selected" id="menu-list-item-recipes">{{ 'recipes.tab.label'|trans }}</a>
<a href="{{ path('ingredients') }}" class="menu-list-item" id="menu-list-item-ingredients">{{ 'ingredients.tab.label'|trans }}</a>
</div>
</nav>
Both <a>
elements are positionned relative and their parents (#menu
and #menu-list
aren't positionned)
On load of the page, there is a 50%-opaque black layer on the page that is a #menu
's sibling element :
<div id="blackLayer" onclick="hideBlackLayer()">
</div>
#blackLayer is positionned fixed and has a z-index at 2.
I want, on the load of the page that one (and only one) of .menu-list-item
elements (say the #menu-lits-item-recipes
) to be above the dark layer.
If i set the #menu-lits-item-recipes
z-index at 3, nothing happens. And if I set the #menu
's z-index at 3 (with position: relative
) everything is above the dark layer.
Is there a way to make only one <a>
over the dark layer without modifying DOM tree since I cannot change the HTML ?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您可以尝试我在这里创建的解决方案。
https://jsfiddle.net/mc1ekzu4/37/
请注意,我正在尝试模拟您的情况,但关键是你应该为突出显示的元素设置
position:relative;
。You can try this solution which I created here.
https://jsfiddle.net/mc1ekzu4/37/
Note that I'm trying to simulate your case, but the key thing is you should have
position: relative;
for your highlighted element.