我想構建一個簡單的dropdownmenu(jFiddle),即使javascript被禁用,也應該使用tab鍵訪問它。Dropdownmenu Tabkey pure CSS
ul {
list-style-type: none;
}
#nav > li {
display: inline-block;
cursor: pointer;
}
#nav a {
text-decoration: none;
color: white;
padding: 20px;
display: inline-block;
}
li {
width: 100px;
color: white;
background-color: #08C;
}
ul ul {
display: none;
position: absolute;
padding: 0;
margin: 0;
}
ul#nav > li:hover > ul {
display: block;
}
<ul id='nav'>
<li><a href='#'>Menu 1</a>
<ul>
<li><a href='#'>Eintrag 1</a></li>
<li><a href='#'>Eintrag 2</a></li>
</ul>
</li>
<li><a href='#'>Menu 2</a>
<ul>
<li><a href='#'>Eintrag 1</a></li>
<li><a href='#'>Eintrag 2</a></li>
<li><a href='#'>Eintrag 3</a></li>
<li><a href='#'>Eintrag 4</a></li>
</ul>
</li>
</ul>
是否有可能通過與純CSS製表鍵中的條目進行迭代?
我想通過鏈接迭代如下:
菜單1 - > Eintrag 1 - > Eintrag 2 - >菜單2 - > Eintrag 1 - > Eintrag 2 - > Eintrag 3 - > Eintrag 4
隨着CSS代碼
a:focus + ul{
display: block;
}
我可以菜單1選項卡,然後Eintrag 1和Eintrag 2可見。再次按Tab鍵Eintrag 1然後ul再次不可見(因爲它顯示:none),所以我無法訪問Eintrag 2。有沒有簡單的CSS解決方案如何通過所有條目選項卡?
這不工作,因爲你不能專注一個li元素。另外我不認爲它有必要通過tabindex來標記它們,因爲默認情況下我想通過DOM順序對它們進行製表符。如果我從** ul **中刪除**顯示:none **,那麼標籤工作正常 – Adam