2017-10-13 113 views
4

我想顯示一個鏈接列表,如下拉選擇,如果可能,不會丟失語義。這是我的嘗試。 CSS現在顯然不起作用。對於我選擇的模擬鏈接有點與location.href在JavaScript中,但它失去了語義值,我猜可達性。如何顯示鏈接列表作爲下拉選擇?

沒有jQuery和引導,

如何顯示鏈接的下拉列表中選擇向下?

document.getElementById("0").addEventListener("change", function (event) { 
 
    location.href = event.target.value; 
 
});
.like-select { 
 
    appearance: select; 
 
}
<p>Semantic wanted</p> 
 
<ul class="like-select"> 
 
    <li><a href="https://en.wikipedia.org/wiki/Main_Page">Wikipedia</a></li> 
 
    <li><a href="https://stackoverflow.com">Stack Overflow</a></li> 
 
    <li><a href="http://www.echojs.com/">Echo Js</a></li> 
 
</ul> 
 

 
<p>Look and feel wanted especially on mobile</p> 
 
<select id="0"> 
 
    <option value="https://en.wikipedia.org/wiki/Main_Page">Wikipedia</option> 
 
    <option value="https://stackoverflow.com">Stack Overflow</option> 
 
    <option value="http://www.echojs.com/">Echo Js</option> 
 
</select>

+0

是的,但在移動設備上具有與「'(想要)。另外':hover'在手機上不存在。 –

3
+0

它可以在桌面上使用,但在移動設備上沒有懸停,只有觸摸和刷卡 –

+0

,因爲在移動** HOVER **的東西不起作用。 – LSKhan

+0

讓我改變它點擊 – LSKhan

0

只用CSS和懸停正在完全地井移動所有解!那意味着沒有移動懸停是不正確的......懸停狀態映射到一個手指輕點,並在每一個brwoser每個移動操作系統上工作!通常情況下,默認行爲已經做到了這一點,在某些情況下,你可以使它更容易與一些JS ...

如果你想要一個下拉只是與CSS和沒有懸停在這裏來了一個複選框實現的其他解決方案:(只是谷歌「的CSS複選框黑客」以獲取更多信息)

.checkhack { 
 
    display: none; 
 
} 
 

 
#menu { 
 
    display: none; 
 
} 
 

 
#menutoggle:checked + #menu { 
 
    display: block; 
 
}
<label for="menutoggle" class="checklabel">OPEN MENU</label> 
 
<input id="menutoggle" class="checkhack" type="checkbox" /> 
 
<ul id="menu"> 
 
    <li><a href="#">Link 1</a></li> 
 
    <li><a href="#">Link 2</a></li> 
 
    <li><a href="#">Link 3</a></li> 
 
</ul>

+0

只需添加一些類似樣式的選擇框,並在那裏它也是移動友好的; ;-) – ToTaTaRi

+0

另外,您可以使用錨鏈接和:target-選擇器來管理切換! – ToTaTaRi

+0

是的你是對的。我認爲存在誤解,我想說的是,在移動設備上懸停交互不存在,因爲沒有鼠標光標像桌面上一樣靜止。現在,移動設備上的某些瀏覽器會自動將懸停轉換爲「觸摸」或「觸摸」,並且可以正常工作,但在這種情況下,爲什麼不直接使用touchstart或click事件。此外,我在我的問題中給出了一個例子,我希望它如何感受和表現,我不認爲在桌面上懸停時會打開'