遵循ADA标准,我需要在用户的鼠标悬停在导航栏上时使用导航栏进行扩展(使用:悬停),或者如果用户的鼠标专注于导航栏中的某个项目。
虽然我能够把它看作第一部分,但我无法实现第二个要求。
以下是演示我当前实现的代码段:
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;
}
}
}
}
如果我将&:focus应用于&:hover,它似乎不起作用,因为它认为需要选择整个导航栏以扩展它,因为假设专注于每个单独的项目
我目前的实施是否需要进行一些改造?
答案 0 :(得分:1)
试试像这样的事情
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>
LESS
.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);
}
使用:专注于锚标签增加其宽度,:焦点在div上工作但这里的问题是当你聚焦它时直接关注锚标签而不是div或li或ul
为转换添加这些规则
.nav-template ul li a{
width:70px;
transition:all ease 0.5s;
}
尝试一下
希望这会有所帮助...