假设我有一个1000px的页面宽度,我的页眉包含10个使用justify-content: space-between
的水平导航元素。如果我将鼠标悬停在nav 1
链接上,一个绝对的菜单div将出现宽度和特定的宽度和left: 0
,如果我悬停在nav 2
上,另一个菜单div将仍然显示left: 0
。但是当我将鼠标悬停在nav 7
或nav 8
上时,如何自动使菜单正确对齐(right: 0
)?
下面是我的html &css的代码片段:
<nav>
<ul>
<li>
<a href="#">Nav menu1</a>
<div class="menu">Content menu 1</div>
</li>
<li>
<a href="#">Nav menu2</a>
<div class="menu">Content menu 2</div>
</li>
<li>
<a href="#">Nav menu3</a>
<div class="menu">Content menu 3</div>
</li>
<li>
<a href="#">Nav menu4</a>
<div class="menu">Content menu 4</div>
</li>
<li>
<a href="#">Nav menu5</a>
<div class="menu">Content menu 5</div>
</li>
<li>
<a href="#">Nav menu6</a>
<div class="menu">Content menu 6</div>
</li>
<li>
<a href="#">Nav menu7</a>
<div class="menu">Content menu 7</div>
</li>
<li>
<a href="#">Nav menu8</a>
<div class="menu">Content menu 8</div>
</li>
<li>
<a href="#">Nav menu9</a>
<div class="menu">Content menu 9</div>
</li>
<li>
<a href="#">Nav menu10</a>
<div class="menu">Content menu 10</div>
</li>
</ul>
</nav>
ul {
display: flex;
font-size: 15px;
height: 100%;
border: solid 1px #ccc;
max-width: 1200px;
margin: 0 auto;
padding: 24px;
align-items: center;
justify-content: space-between;
}
ul > li {
display: flex;
position: relative;
cursor: pointer;
padding-left: 6px;
padding-right: 6px;
height: 40px;
align-items: center;
white-space: nowrap;
list-style: none;
}
.menu {
display: block;
position: absolute;
visibility: hidden;
color: #333;
width: 500px;
background: #fff;
padding: 18px;
min-height: 80px;
box-shadow: 0px 2px 1px -1px rgba(0,0,0,0.2), 0px 1px 1px 0px rgba(0,0,0,0.14), 0px 1px 3px 0px rgba(0,0,0,0.12);
opacity: 0;
transition: all .4s ease;
transition-delay: .3s;
left: 0;
top: 140%;
z-index: 99999;
}
ul > li:hover .menu {
display: block;
visibility: visible;
opacity: 1;
top: 100%;
}
https://stackoverflow.com/questions/56411668
复制相似问题