不使用JavaScript實(shí)現(xiàn)菜單的打開(kāi)和關(guān)閉效果demo
我在寫(xiě)有菜單欄的網(wǎng)頁(yè)時(shí),基本都會(huì)用響應(yīng)式設(shè)計(jì)來(lái)適配移動(dòng)端,例如把不重要的菜單選項(xiàng)隱藏,或者創(chuàng)建一個(gè)菜單按鈕來(lái)控制的菜單的打開(kāi)和關(guān)閉之類(lèi)的。而我之前一直是使用JavaScript來(lái)實(shí)現(xiàn)菜單的打開(kāi)和關(guān)閉的,但最近在網(wǎng)上看到有人使用CSS和HTML來(lái)實(shí)現(xiàn)這一功能,讓我真正的感受到手里只要有一把錘,什么都可以做釘子。
實(shí)現(xiàn)之前先來(lái)看一下HTML標(biāo)簽和輸入類(lèi)型:
label
<label> 標(biāo)簽為 input 元素定義標(biāo)注(標(biāo)記)。
label 元素不會(huì)向用戶(hù)呈現(xiàn)任何特殊效果。不過(guò),它為鼠標(biāo)用戶(hù)改進(jìn)了可用性。如果您在 label 元素內(nèi)點(diǎn)擊文本,就會(huì)觸發(fā)此控件。就是說(shuō),當(dāng)用戶(hù)選擇該標(biāo)簽時(shí),瀏覽器就會(huì)自動(dòng)將焦點(diǎn)轉(zhuǎn)到和標(biāo)簽相關(guān)的表單控件上。
<label> 標(biāo)簽的 for 屬性應(yīng)當(dāng)與相關(guān)元素的 id 屬性相同。
Input Type: checkbox
<input type="checkbox"> 定義復(fù)選框。
復(fù)選框允許用戶(hù)在有限數(shù)量的選項(xiàng)中選擇零個(gè)或多個(gè)選項(xiàng)。
下面是demo的代碼:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>menu demo</title>
<link rel="stylesheet" rel="external nofollow" >
<style>
.demo {
text-align: center;
}
/* 點(diǎn)擊checkbox時(shí),菜單打開(kāi)或顯示 */
#menu-checkbox:checked ~ .nav {
display: none;
}
/* 隱藏checkbox的復(fù)選框 */
#menu-checkbox {
display: none;
}
.nav ul{
list-style: none;
margin: 0;
padding: 0;
font-size: 20px;
}
.glyphicon-menu-hamburger {
font-size: 30px;
margin-top: 50px;
}
</style>
</head>
<body>
<div class="demo">
<!-- label綁定checkbox -->
<label for="menu-checkbox"><span class="glyphicon glyphicon-menu-hamburger"></label>
<input id="menu-checkbox" type="checkbox">
<div class="nav">
<ul>
<li>aaa</li>
<li>bbb</li>
<li>ccc</li>
<li>ddd</li>
</ul>
</div>
</div>
</body>
</html>
效果:

點(diǎn)擊上面的hamburger圖標(biāo),菜單就會(huì)顯示和隱藏。
雖然是很簡(jiǎn)單的一個(gè)東西,不過(guò)它對(duì)于我而言更多的是一種啟發(fā)。
以上所述是小編給大家介紹的不使用JavaScript實(shí)現(xiàn)菜單的打開(kāi)和關(guān)閉效果,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)歡迎給我留言,小編會(huì)及時(shí)回復(fù)大家的!
相關(guān)文章
使用Axios攔截器優(yōu)化HTTP請(qǐng)求與響應(yīng)的實(shí)踐案例
在前端開(kāi)發(fā)中,HTTP 請(qǐng)求是與后端交互的重要方式,為了提高代碼的可維護(hù)性、復(fù)用性以及用戶(hù)體驗(yàn),使用 Axios 攔截器是非常常見(jiàn)的做法,本文將詳細(xì)介紹如何使用 Axios 的請(qǐng)求攔截器和響應(yīng)攔截器,需要的朋友可以參考下2024-11-11
JavaScript實(shí)現(xiàn)html轉(zhuǎn)pdf的三種方法詳解
近期項(xiàng)目需要實(shí)現(xiàn)將?html?頁(yè)面轉(zhuǎn)換成?pdf?報(bào)告的需求,經(jīng)過(guò)一番調(diào)研以及結(jié)合過(guò)往經(jīng)驗(yàn),發(fā)現(xiàn)了三種技術(shù)方案,下面我們就來(lái)看看它們的具體實(shí)現(xiàn)步驟吧2024-02-02
Bootstrap datepicker日期選擇器插件使用詳解
這篇文章主要為大家詳細(xì)介紹了Bootstrap datepicker日期選擇器插件的使用方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-07-07
JS中不為人知的五種聲明Number的方式簡(jiǎn)要概述
聲明一個(gè)數(shù)值類(lèi)型的變量我看到三種;我嘴角微微一笑:少年你還嫩了點(diǎn),哪止三種,我知道的至少有五種,好奇的你可以參考下哈,希望本文可以幫助到你2013-02-02
js實(shí)現(xiàn)點(diǎn)擊切換checkbox背景圖片的簡(jiǎn)單實(shí)例
下面小編就為大家?guī)?lái)一篇js實(shí)現(xiàn)點(diǎn)擊切換checkbox背景圖片的簡(jiǎn)單實(shí)例。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-05-05

