0
我正在構建一個垂直導航,它位於頁面的左側。 和導航通過懸停來調用子菜單。 但這裏的問題是我想建立此導航可能是迴應由TAB。tabindex專注於使用CSS調用子菜單
我得到的情況是,當我將鼠標懸停在導航欄上時,子菜單將緩解。但是我想使用Tab來關注主手冊,然後子菜單也會緩解。但它不起作用。
可以用HTML和CSS來完成嗎?
例子:https://www.whitehouse.gov/
這是我的HTML代碼:
<nav id="menu">
<ul class="parent-menu">
<li >
<a href="#" tabindex="1" >Home & Kitchen</a>
<ul>
<li><a href="#" tabindex="2">item</a></li>
<li><a href="#" tabindex="3">item</a></li>
<li><a href="#" tabindex="4">item</a></li>
<li><a href="#" tabindex="5">item</a></li>
<li><a href="#">item</a></li>
<li><a href="#">item</a></li>
</ul>
</li>
<li tabindex="2">
<a href="#" >Electronics</a>
<ul>
<li><a href="#">item</a></li>
<li><a href="#">item</a></li>
<li><a href="#">item</a></li>
<li><a href="#">item</a></li>
<li><a href="#">item</a></li>
</ul>
</li>
<li tabindex="3">
<a href="#" >Clothing</a>
<ul>
<li><a href="#">item</a></li>
<li><a href="#">item</a></li>
<li><a href="#">item</a></li>
<li><a href="#">item</a></li>
</ul>
</li>
<li>
<a href="#">Cars & Motorbikes</a>
<ul>
<li><a href="#">item</a></li>
<li><a href="#">item</a></li>
<li><a href="#">item</a></li>
<li><a href="#">item</a></li>
</ul>
</li>
<li>
<a href="#">Books</a>
<ul>
<li><a href="#">item</a></li>
<li><a href="#">item</a></li>
<li><a href="#">item</a></li>
<li><a href="#">item</a></li>
</ul>
</li>
<li>
<a href="#">Support</a>
<ul>
<li>
<a href="#">Contact Us</a>
</li>
<li><a href="#">Forum</a>
</li>
<li><a href="#">Deliveries</a></li>
<li><a href="#">T&C</a></li>
</ul>
</li>
</ul>
</nav>
這裏是我的CSS代碼:
p, ul, li, div, nav { padding:0; margin:0; }
#menu {
overflow: auto;
position:fixed;
left:0%;top:20%;
z-index:2; }
.parent-menu {
background-color: #0c8fff;
min-width:200px;
float:left; }
#menu ul {
list-style-type:none;
}
#menu ul li a {
padding:10px 15px;
display:block;
color:#fff;
text-decoration:none;
}
#menu ul li a:hover {
background-color:#007ee9;
}
#menu ul li:hover > ul {
left: 200px;
-webkit-transition: left 200ms ease-in;
-moz-transition: left 200ms ease-in;
-ms-transition: left 200ms ease-in;
transition: left 200ms ease-in;
}
#menu ul li:focus > ul {
left: 200px;
-webkit-transition: left 200ms ease-in;
-moz-transition: left 200ms ease-in;
-ms-transition: left 200ms ease-in;
transition: left 200ms ease-in;
}
#menu ul li > ul {
position: fixed;
background-color: #333;
top: 20%; left: -200px;
min-width: 200px;
z-index: -1;
height: 100%;
-webkit-transition: left 200ms ease-in;
-moz-transition: left 200ms ease-in;
-ms-transition: left 200ms ease-in;
transition: left 200ms ease-in;
}
#menu ul li > ul li a:hover {
background-color:#2e2e2e;
}
這裏是我找到棘手。這裏的懸停工作正常。但是當談到焦點時,這是行不通的。
#menu ul li:hover > ul {
left: 200px;
-webkit-transition: left 200ms ease-in;
-moz-transition: left 200ms ease-in;
-ms-transition: left 200ms ease-in;
transition: left 200ms ease-in;
}
#menu ul li:focus > ul {
left: 200px;
-webkit-transition: left 200ms ease-in;
-moz-transition: left 200ms ease-in;
-ms-transition: left 200ms ease-in;
transition: left 200ms ease-in;
}
希望你們能理解我說的話:)
非常感謝〜抱歉,對於遲到的答覆。但這裏的問題是當我使用Tab時,子菜單跳出,但是當我第二次點擊時。我認爲主菜單丟失了焦點,所以當焦點不在主菜單欄時,子菜單欄會緩和。如何設置子菜單停止跳回? –
沒有得到你的觀點,澄清這個蓬「**的子菜單跳出來,但是當我第二次點擊**。」第二次點擊什麼** S **?你能更具體一點嗎? –
嗨,你可以從源代碼中看到。我想在使用按Tab鍵調出Home&Kitchen級別的第一級菜單時再創建導航,然後當我再次按Tab時,我的注意力集中在第二級菜單上,這些菜單項就是這些菜單項。那麼我可以使用輸入進入我想要的頁面。但在您給我的演示中,當焦點跳到二級菜單並清楚看到邊框變化時,菜單將緩解,因爲一級菜單失去焦點,意味着不再有效。我希望你能理解我寫的東西。對不起我的英語 –