gpt4 book ai didi

html - CSS 选择器 : applying :focus on navbar

转载 作者:太空宇宙 更新时间:2023-11-04 08:28:37 25 4
gpt4 key购买 nike

按照 ADA 标准,我需要在用户鼠标悬停在导航栏上(使用 :hover)或用户鼠标聚焦在导航栏中的一项上时展开导航栏。

虽然我能够在第一部分中找到它,但我在实现第二个要求时遇到了麻烦。

这是演示我当前实现的代码片段:

https://codepen.io/neotriz/pen/MoBMvz?editors=1100

CSS:

.nav-template {
height: 100%;
position: absolute;
transition: width 0.3s linear;
display: flex;
overflow: hidden;
background: black;
width: 70px;
&:hover{
width: 150px;
}

ul {
list-style-type: none;
margin: 0;
padding: 0;

li {
margin: 0;
padding: 0;
cursor: pointer;
&:hover {
background-color: rgba(255, 255, 255, 0.12);
}
a {
color: white;
height: 40px;
margin-left: 12px;
margin-right: 35px;
padding-bottom: 10px;
display: flex;
align-items: center;
text-decoration: none;
}
}
}
}

看起来如果我在 &:hover 所在的位置应用 &:focus,它不起作用,因为它认为需要选择整个导航栏才能扩展它,就像假设要关注每个单独的元素一样。

我当前的实现是否需要修改?

最佳答案

尝试这样的事情

HTML

<div tabindex="1" class="nav-template">
<ul>
<li><a href="#">Home</a></li>
<li><a href="#">About</a></li>
<li><a href="#">Contact</a></li>
</ul>
</div>

.nav-template {
height: 100%;
position: absolute;
display: flex;
overflow: hidden;
background: black;
ul {
list-style-type: none;
margin: 0;
padding: 0;
transition: width 0.3s linear;
li {
margin: 0;
padding: 0;
cursor: pointer;
a {
color: white;
height: 40px;
margin-left: 12px;
margin-right: 35px;
padding-bottom: 10px;
display: flex;
align-items: center;
text-decoration: none;
width:70px;
transition:all ease 0.5s;
&:focus,&:hover {
width: 100px;
background-color: rgba(255, 255, 255, 0.12);
}
}
}
}
}

CSS

.nav-template {
height: 100%;
position: absolute;
display: flex;
overflow: hidden;
background: black;
}
.nav-template ul {
list-style-type: none;
margin: 0;
padding: 0;
transition: width 0.3s linear;
}
.nav-template ul li {
margin: 0;
padding: 0;
cursor: pointer;
}
.nav-template ul li a {
color: white;
height: 40px;
margin-left: 12px;
margin-right: 35px;
padding-bottom: 10px;
display: flex;
align-items: center;
text-decoration: none;
width:70px;
transition:all ease 0.5s;
}
.nav-template ul li a:focus,
.nav-template ul li a:hover {
width: 100px;
background-color: rgba(255, 255, 255, 0.12);
}

在 anchor 标签上使用 :focus 增加它的宽度,:focus 对 div 有效,但这里的问题是当你聚焦时它直接聚焦在 anchor 标签上而不是在 div 或 li 或 ul 上

添加这些转换规则

.nav-template ul li a{
width:70px;
transition:all ease 0.5s;
}

Link For reference

试一试

希望这有助于...

关于html - CSS 选择器 : applying :focus on navbar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44957992/

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