为什么在我按下 'tab' 键时我的响应式导航栏被选中?
Why is my responsive navbar is getting selected when I'm pressing 'tab' key?
好的,所以我正在编写我的投资组合网站。但是,当我完成响应式导航栏的编码时,我注意到一个不应该存在的问题,因为根据我的说法,我做的一切都很好。我有一份汉堡菜单。当我单击汉堡时,导航栏从右向左滑动,反之亦然。工作得很好。但是问题出现了,按tab键后。当我在主页上按 tab 键时,它正在选择应该隐藏在最右边的导航栏。如何解决?
这里是HTML
<header>
<div class = 'logo'>
Logo
</div>
<nav>
<div class = 'burger'>
<div class="line1"></div>
<div class="line2"></div>
<div class="line3"></div>
</div>
<ul class = 'nav-links'>
<li><a href = '#'>Link-1</a></li>
<li><a href = '#'>Link-2</a></li>
<li><a href = '#'>Link-3</a></li>
<li><a href = '#'>Link-4</a></li>
</ul>
</nav>
</header>
这是 SCSS
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
body {
overflow-x: hidden;
}
header {
height: 100px;
width: 100%;
background: coral;
display: flex;
align-items: center;
justify-content: space-between;
border-bottom: 1px solid white;
.logo {
font-family: 'Prompt-ExtraLight';
color: #fff;
font-size: 1.5rem;
padding-left: 1rem;
}
nav {
.burger {
cursor: pointer;
padding-right: 1rem;
position: relative;
z-index: 1;
div {
width: 30px;
height: 3px;
background: #fff;
margin: 5px;
transition: .3s all ease;
}
}
ul {
height: 100vh;
width: 100%;
background: coral;
position: absolute;
top: 0;
right: 0;
display: flex;
flex-direction: column;
align-items: flex-start;
justify-content: center;
transform: translateX(100%);
transition: transform 0.3s ease-in;
li {
list-style-type: none;
font-size: 1.5rem;
font-family: 'Prompt-ExtraLight';
padding: 1rem 2rem;
width: 12rem;
height: auto;
transition: .2s all ease-in;
a {
text-decoration: none;
color: #fff;
}
&:hover {
background: #005a34;
transform: translateX(10%);
}
}
}
.nav-links-active {
transform: translateX(0);
}
.toggle .line1 {
transform: rotate(-45deg) translate(-5px,6px);
}
.toggle .line2 {
opacity: 0;
}
.toggle .line3 {
transform: rotate(45deg) translate(-5px,-6px);
}
}
这是 JSFiddle
将 tabindex="-1"
添加到您的链接。
<ul class = 'nav-links'>
<li><a href = '#' tabindex="-1">Link-1</a></li>
<li><a href = '#' tabindex="-1">Link-2</a></li>
<li><a href = '#' tabindex="-1">Link-3</a></li>
<li><a href = '#' tabindex="-1">Link-4</a></li>
</ul>
您还可以检查 this 以获得更多选项。
好的,所以我正在编写我的投资组合网站。但是,当我完成响应式导航栏的编码时,我注意到一个不应该存在的问题,因为根据我的说法,我做的一切都很好。我有一份汉堡菜单。当我单击汉堡时,导航栏从右向左滑动,反之亦然。工作得很好。但是问题出现了,按tab键后。当我在主页上按 tab 键时,它正在选择应该隐藏在最右边的导航栏。如何解决?
这里是HTML
<header>
<div class = 'logo'>
Logo
</div>
<nav>
<div class = 'burger'>
<div class="line1"></div>
<div class="line2"></div>
<div class="line3"></div>
</div>
<ul class = 'nav-links'>
<li><a href = '#'>Link-1</a></li>
<li><a href = '#'>Link-2</a></li>
<li><a href = '#'>Link-3</a></li>
<li><a href = '#'>Link-4</a></li>
</ul>
</nav>
</header>
这是 SCSS
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
body {
overflow-x: hidden;
}
header {
height: 100px;
width: 100%;
background: coral;
display: flex;
align-items: center;
justify-content: space-between;
border-bottom: 1px solid white;
.logo {
font-family: 'Prompt-ExtraLight';
color: #fff;
font-size: 1.5rem;
padding-left: 1rem;
}
nav {
.burger {
cursor: pointer;
padding-right: 1rem;
position: relative;
z-index: 1;
div {
width: 30px;
height: 3px;
background: #fff;
margin: 5px;
transition: .3s all ease;
}
}
ul {
height: 100vh;
width: 100%;
background: coral;
position: absolute;
top: 0;
right: 0;
display: flex;
flex-direction: column;
align-items: flex-start;
justify-content: center;
transform: translateX(100%);
transition: transform 0.3s ease-in;
li {
list-style-type: none;
font-size: 1.5rem;
font-family: 'Prompt-ExtraLight';
padding: 1rem 2rem;
width: 12rem;
height: auto;
transition: .2s all ease-in;
a {
text-decoration: none;
color: #fff;
}
&:hover {
background: #005a34;
transform: translateX(10%);
}
}
}
.nav-links-active {
transform: translateX(0);
}
.toggle .line1 {
transform: rotate(-45deg) translate(-5px,6px);
}
.toggle .line2 {
opacity: 0;
}
.toggle .line3 {
transform: rotate(45deg) translate(-5px,-6px);
}
}
这是 JSFiddle
将 tabindex="-1"
添加到您的链接。
<ul class = 'nav-links'>
<li><a href = '#' tabindex="-1">Link-1</a></li>
<li><a href = '#' tabindex="-1">Link-2</a></li>
<li><a href = '#' tabindex="-1">Link-3</a></li>
<li><a href = '#' tabindex="-1">Link-4</a></li>
</ul>
您还可以检查 this 以获得更多选项。