【发布时间】:2016-04-17 08:29:07
【问题描述】:
我正在尝试创建一个只有 CSS3 的带有过渡的下拉菜单,但它并没有像我希望的那样 100% 工作。即使您将鼠标悬停在展开的下拉菜单上,我也希望下划线悬停状态相同。
这是我的第一次尝试: http://codepen.io/Winterfox/pen/wGmEbY
ul {
text-align: center;
li {
display:inline-block;
margin-right: 15px;
transition:all 0.3s ease-in-out;
&:hover {
.submenu {
height: 85px;
}
}
.submenu {
overflow:hidden;
position:absolute;
left: 0;
width: 100%;
background-color: #3862a0;
height: 0;
margin-top: 10px;
line-height: 40px;
box-sizing:border-box;
transition:height 0.3s ease-in-out;
transition-delay: 0.1s;
a {
color: #fff;
margin-top: 20px;
font-size: 16px;
&:hover {
color: #fff;
text-decoration:underline;
}
}
}
a {
color: #999;
display: block;
padding: 0 7px 0 7px;
margin: 0 0 0 0;
text-decoration: none;
position: relative;
&:hover {
color: #3862a0;
&::before {
visibility: visible;
transform: scale(1, 1);
}
}
&::before {
content: "";
position: absolute;
width: 100%;
height: 3px;
bottom: -10px;
left: 0px;
background-color: #3862a0;
transition: all 0.2s ease-in-out;
transform: scale(0, 0);
visibility: hidden;
}
}
}
}
如您所见,当悬停展开的下拉菜单时,悬停状态已被移除。我试图通过将过渡移动到 li 元素来解决这个问题,如下所示: http://codepen.io/Winterfox/pen/ZWxqvp
但后来我遇到了一个问题,即 1# 在更改悬停状态的位置时,下拉菜单再次关闭时看起来不太好。 2# 菜单文本的蓝色下划线现在显示在页面底部。
对于如何仅使用 CSS3 解决此问题有什么建议吗?
【问题讨论】:
标签: css