gpt4 book ai didi

html - 带边框和 z-index 的 CSS 下拉菜单

转载 作者:行者123 更新时间:2023-11-28 07:11:28 24 4
gpt4 key购买 nike

我这里有一个 fiddle : https://jsfiddle.net/vjdz8kxr/

<div class="span-8 last" id="primary_nav_wrap">
<ul>
<li>
<a href="http://example.com/" class="home">Home</a>
</li>
<li><a href="http://example.com/kb">Knowledge</a>
<ul>
<li><a href="http://example.com/kb1">kb1</a></li>
<li><a href="http://example.com/kb2">kb2</a></li>
<li><a href="http://example.com/kb3">kb3</a></li>
</ul>
</li>
<li><a href="http://example.com/forums">Forums</a>
<ul>
<li><a href="http://example.com/forum1">forum1</a></li>
<li><a href="http://example.com/forum2">forum2</a></li>
<li><a href="http://example.com/forum3">forum3</a></li>
</ul>
</li>
<li><a href="http://example.com/pure_groups">Groups</a>
<ul>
<li><a href="http://example.com/group1">group1</a></li>
<li><a href="http://example.com/group2">group2</a></li>
<li><a href="http://example.com/group3">group3</a></li>
</ul>
</li>
<li><a href="http://example.com/blog">Blogs</a>
<ul>
<li><a href="http://example.com/blog1">blog1</a></li>
<li><a href="http://example.com/blog2">blog2</a></li>
<li><a href="http://example.com/blog3">blog3</a></li>
</ul>
</li>
</ul>

#primary_nav_wrap { float:right; }
#primary_nav_wrap ul { list-style:none; margin:0; padding:0; text-transform: uppercase; }
#primary_nav_wrap ul a { display:block; color:#666666; text-decoration:none; font-weight:600; font-size:14px; line-height:30px; padding:0 15px; font-family:proxima-nova,sans-serif;}
#primary_nav_wrap ul li { float:left; padding:2px; }
#primary_nav_wrap ul li:hover {padding:0; border: 2px solid #efefef; border-bottom:2px solid #ee6129; position:relative; z-index:5; }
#primary_nav_wrap #home ul li:hover {border:2px solid #efefef; border-bottom:2px solid #efefef;}
#primary_nav_wrap ul ul { display:none; position:absolute; left:0; background:#fff; text-transform:none; border:2px solid #efefef; margin-left:-2px; margin-top:0; z-index:-1;}
#primary_nav_wrap ul li:nth-last-child(1) ul { left:-101px;} /* Right Most Menu will pop to left so it doesn't bleed off page*/
#primary_nav_wrap ul ul li {float:none; width:220px; text-align:left;}
#primary_nav_wrap ul ul li:hover {background: #ee6129; text-align:left; border:none; padding:2px; }
#primary_nav_wrap ul ul a { line-height:120%; padding: 5px;}
#primary_nav_wrap ul ul ul { top:0; left:100% }
#primary_nav_wrap ul li:hover > ul { display:block}

基本上,我试图在下拉菜单周围制作一个边框,减去主菜单标题下存在的边框部分。在本例中,我将该行设为橙色,因此很明显这是否有效。

我期望的是橙色线会显示在灰色线之上,并且我已经设置了 z-index。我还假设因为元素有一个位置(绝对或相对),所以这应该有效。

谁能看出我在这里做错了什么?

最佳答案

假设颜色基本保持不变,这是一个解决方案。

  • 移除主菜单上的边框底部(橙色)li:hover (border-bottom:none)

  • 同时从该 CSS 规则中删除 z-index 5

  • 为选择器添加白色背景。

  • 为您的 child (子菜单)添加一个负边距顶部。您添加了负左边距,但没有负顶部。

或者只是按照这个:https://jsfiddle.net/vjdz8kxr/6/

#primary_nav_wrap ul li:hover {padding:0; border: 2px solid #efefef; border-bottom:none; position:relative; background:white;}
#primary_nav_wrap ul ul { display:none; position:absolute; left:0; background:#fff; text-transform:none; border:2px solid #efefef; margin-left:-2px; margin-top:-2px; z-index:-1;}

编辑:

添加一点解释:如果您有一个父对象,您希望父对象出现在子对象的后面,则父对象根本不能有 z-index 声明。哪怕是负面的。这里有一些证据:http://codepen.io/tylerism/pen/NGNxWR

关于html - 带边框和 z-index 的 CSS 下拉菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32618738/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com