亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

目錄
? 1. HTML Structure
? 2. Style the Hamburger Icon
? 3. Style and Toggle the Menu
? 4. Accessibility Tips
Final Notes
首頁 web前端 css教程 如何創(chuàng)建僅CSS的漢堡菜單?

如何創(chuàng)建僅CSS的漢堡菜單?

Aug 01, 2025 am 05:01 AM
css 漢堡菜單

是的,可以用純CSS創(chuàng)建漢堡菜單,具體步驟如下:1. 使用隱藏的checkbox作為開關(guān),通過label模擬漢堡圖標(biāo),并用ul構(gòu)建導(dǎo)航菜單;2. 用CSS將三個span樣式化為漢堡圖標(biāo),并在:checked狀態(tài)下通過transform實(shí)現(xiàn)旋轉(zhuǎn)和隱藏動畫,形成“X”關(guān)閉效果;3. 利用~兄弟選擇器控制nav-menu的顯示,初始隱藏菜單,checked時通過scaleY展開,配合媒體查詢在大屏幕隱藏漢堡按鈕并顯示橫向菜單;4. 添加aria-label提升可訪問性,確保鍵盤導(dǎo)航和屏幕閱讀器兼容;該方案無需JavaScript,依賴CSS選擇器和輸入狀態(tài)實(shí)現(xiàn)交互,適用于輕量級響應(yīng)式站點(diǎn),但不支持點(diǎn)擊外部關(guān)閉等復(fù)雜功能,需測試移動端觸控和多設(shè)備兼容性。

How to create a CSS-only hamburger menu?

Creating a CSS-only hamburger menu is totally doable using just HTML and CSS — no JavaScript required. The trick is to use a hidden checkbox and the :checked pseudo-class to toggle the menu state, combined with the ~ (general sibling) selector to control the menu display.

How to create a CSS-only hamburger menu?

Here’s how to build a simple, functional hamburger menu with pure CSS:


? 1. HTML Structure

Start with a minimal structure using a checkbox, hamburger icon (three spans), and the navigation menu:

How to create a CSS-only hamburger menu?
<nav class="navbar">
  <input type="checkbox" id="nav-toggle" class="nav-toggle">
  <label for="nav-toggle" class="hamburger">
    <span></span>
    <span></span>
    <span></span>
  </label>
  <ul class="nav-menu">
    <li><a href="#">Home</a></li>
    <li><a href="#">About</a></li>
    <li><a href="#">Services</a></li>
    <li><a href="#">Contact</a></li>
  </ul>
</nav>
  • The checkbox (#nav-toggle) acts as the toggle switch.
  • The <label> for the checkbox becomes the clickable hamburger icon.
  • The .nav-menu is the list that will appear when the menu is open.

? 2. Style the Hamburger Icon

Make the three spans look like a hamburger menu, and animate them when active:

.hamburger {
  display: flex;
  flex-direction: column;
  cursor: pointer;
  width: 30px;
  height: 20px;
  justify-content: space-between;
}

.hamburger span {
  display: block;
  height: 3px;
  width: 100%;
  background: #333;
  border-radius: 3px;
  transition: all 0.3s ease;
}

/* Animate when menu is open */
#nav-toggle:checked   .hamburger span:nth-child(1) {
  transform: rotate(45deg) translate(5px, 6px);
}
#nav-toggle:checked   .hamburger span:nth-child(2) {
  opacity: 0;
}
#nav-toggle:checked   .hamburger span:nth-child(3) {
  transform: rotate(-45deg) translate(7px, -5px);
}

This creates the classic "X" close animation when the menu is toggled.

How to create a CSS-only hamburger menu?

? 3. Style and Toggle the Menu

Hide the checkbox and style the navigation menu to appear only when the checkbox is checked:

.nav-toggle {
  display: none; /* Hide the checkbox */
}

.nav-menu {
  display: flex;
  list-style: none;
  margin: 0;
  padding: 0;
  flex-direction: column;
  position: absolute;
  top: 60px;
  left: 0;
  width: 100%;
  background: #f8f8f8;
  box-shadow: 0 5px 10px rgba(0,0,0,0.1);
  transform: scaleY(0);
  transform-origin: top;
  transition: transform 0.3s ease;
}

.nav-menu li {
  padding: 10px 20px;
}

.nav-menu li a {
  text-decoration: none;
  color: #333;
  font-size: 18px;
}

/* Show menu when checkbox is checked */
#nav-toggle:checked ~ .nav-menu {
  transform: scaleY(1);
}

/* Optional: Make it mobile-only */
@media (min-width: 768px) {
  .nav-toggle,
  .hamburger {
    display: none;
  }
  .nav-menu {
    display: flex !important;
    position: static;
    transform: none;
    flex-direction: row;
    gap: 20px;
    background: transparent;
    box-shadow: none;
  }
}

? The ~ selector lets the checkbox control the .nav-menu, even though it's not a direct sibling — it just needs to come after in the DOM.


? 4. Accessibility Tips

Make it more accessible:

  • Add aria-label to the label:
    <label for="nav-toggle" class="hamburger" aria-label="Toggle menu">
  • Consider focus styles for keyboard navigation.

  • Final Notes

    This CSS-only hamburger menu works well for simple sites. It’s lightweight and avoids JavaScript entirely. Just remember:

    • It only toggles visibility — no advanced animations or outside-click closing without JS.
    • On mobile, ensure touch targets are large enough.
    • Test across devices and screen sizes.

    Basically, it's a clever use of form input state and CSS selectors to simulate interactivity — no JS needed.

    以上是如何創(chuàng)建僅CSS的漢堡菜單?的詳細(xì)內(nèi)容。更多信息請關(guān)注PHP中文網(wǎng)其他相關(guān)文章!

本站聲明
本文內(nèi)容由網(wǎng)友自發(fā)貢獻(xiàn),版權(quán)歸原作者所有,本站不承擔(dān)相應(yīng)法律責(zé)任。如您發(fā)現(xiàn)有涉嫌抄襲侵權(quán)的內(nèi)容,請聯(lián)系admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費(fèi)脫衣服圖片

Undresser.AI Undress

Undresser.AI Undress

人工智能驅(qū)動的應(yīng)用程序,用于創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用于從照片中去除衣服的在線人工智能工具。

Clothoff.io

Clothoff.io

AI脫衣機(jī)

Video Face Swap

Video Face Swap

使用我們完全免費(fèi)的人工智能換臉工具輕松在任何視頻中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費(fèi)的代碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

功能強(qiáng)大的PHP集成開發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺化網(wǎng)頁開發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

神級代碼編輯軟件(SublimeText3)

如何用PHP搭建社交分享功能 PHP分享接口集成實(shí)戰(zhàn) 如何用PHP搭建社交分享功能 PHP分享接口集成實(shí)戰(zhàn) Jul 25, 2025 pm 08:51 PM

在PHP中搭建社交分享功能的核心方法是通過動態(tài)生成符合各平臺要求的分享鏈接。1.首先獲取當(dāng)前頁面或指定的URL及文章信息;2.使用urlencode對參數(shù)進(jìn)行編碼;3.根據(jù)各平臺協(xié)議拼接生成分享鏈接;4.在前端展示鏈接供用戶點(diǎn)擊分享;5.動態(tài)生成頁面OG標(biāo)簽優(yōu)化分享內(nèi)容展示;6.務(wù)必對用戶輸入進(jìn)行轉(zhuǎn)義以防止XSS攻擊。該方法無需復(fù)雜認(rèn)證,維護(hù)成本低,適用于大多數(shù)內(nèi)容分享需求。

PHP打造博客評論系統(tǒng)變現(xiàn) PHP評論審核與防刷策略 PHP打造博客評論系統(tǒng)變現(xiàn) PHP評論審核與防刷策略 Jul 25, 2025 pm 08:27 PM

1.評論系統(tǒng)商業(yè)價(jià)值最大化需結(jié)合原生廣告精準(zhǔn)投放、用戶付費(fèi)增值服務(wù)(如上傳圖片、評論置頂)、基于評論質(zhì)量的影響力激勵機(jī)制及合規(guī)匿名數(shù)據(jù)洞察變現(xiàn);2.審核策略應(yīng)采用前置審核 動態(tài)關(guān)鍵詞過濾 用戶舉報(bào)機(jī)制組合,輔以評論質(zhì)量評分實(shí)現(xiàn)內(nèi)容分級曝光;3.防刷需構(gòu)建多層防御:reCAPTCHAv3無感驗(yàn)證、Honeypot蜜罐字段識別機(jī)器人、IP與時間戳頻率限制阻止灌水、內(nèi)容模式識別標(biāo)記可疑評論,持續(xù)迭代應(yīng)對攻擊。

什么是常見的CSS瀏覽器不一致? 什么是常見的CSS瀏覽器不一致? Jul 26, 2025 am 07:04 AM

不同瀏覽器對CSS解析存在差異,導(dǎo)致顯示效果不一致,主要包括默認(rèn)樣式差異、盒模型計(jì)算方式、Flexbox和Grid布局支持程度及某些CSS屬性行為不一致。1.默認(rèn)樣式處理不一致,解決方法是使用CSSReset或Normalize.css統(tǒng)一初始樣式;2.舊版IE的盒模型計(jì)算方式不同,建議統(tǒng)一使用box-sizing:border-box;3.Flexbox和Grid在邊緣情況或舊版本中表現(xiàn)有差異,應(yīng)多測試并使用Autoprefixer;4.某些CSS屬性行為不一致,需查閱CanIuse并提供降級

如何用Mac搭建PHP Nginx環(huán)境 MacOS配置Nginx與PHP服務(wù)組合 如何用Mac搭建PHP Nginx環(huán)境 MacOS配置Nginx與PHP服務(wù)組合 Jul 25, 2025 pm 08:24 PM

Homebrew在Mac環(huán)境搭建中的核心作用是簡化軟件安裝與管理。1.Homebrew自動處理依賴關(guān)系,將復(fù)雜的編譯安裝流程封裝為簡單命令;2.提供統(tǒng)一的軟件包生態(tài),確保軟件安裝位置與配置標(biāo)準(zhǔn)化;3.集成服務(wù)管理功能,通過brewservices可便捷啟動、停止服務(wù);4.便于軟件升級與維護(hù),提升系統(tǒng)安全性與功能性。

描述'垂直align”屬性及其典型用例 描述'垂直align”屬性及其典型用例 Jul 26, 2025 am 07:35 AM

1.ItAdjustSelementsLikeImagesRikeImagesOrformInputswithIntExtLineSustLineSlineSlineSlineSlikeLikeLikeBaseline,中間,Super,Super,Super和Sub.2.intablebecells,ItControlScontentalStalteNtalmscontentalMedwithThtop,Middle,Middle,Midder,Midder,經(jīng)常

什么是口音色的物業(yè)? 什么是口音色的物業(yè)? Jul 26, 2025 am 09:25 AM

accent-color是CSS中用于自定義復(fù)選框、單選按鈕和滑塊等表單元素高亮顏色的屬性;1.它直接改變表單控件選中狀態(tài)的默認(rèn)顏色,如將復(fù)選框的藍(lán)色勾選標(biāo)記改為紅色;2.支持的元素包括type="checkbox"、type="radio"和type="range"的輸入框;3.使用accent-color可避免復(fù)雜的自定義樣式和額外DOM結(jié)構(gòu),保持原生可訪問性;4.現(xiàn)代瀏覽器普遍支持,舊瀏覽器需降級處理;5.設(shè)置accent-col

如何將SCSS編譯到CSS? 如何將SCSS編譯到CSS? Jul 27, 2025 am 01:58 AM

installdartsassvianpmafterinstallingnode.jsusingnpminstall-gsass.2.compilescsstocssssusingthecommandSassInput.scsssoutput.css.3。 useass - watchinput.scssoutput.csstoauto-compileonsave.4.watchentirefolderswithsass-watchscss:css.5.usepartialswith_prefixfo

如何更改CSS中的文本顏色? 如何更改CSS中的文本顏色? Jul 27, 2025 am 04:25 AM

要改變CSS中文本顏色,需使用color屬性;1.使用color屬性可設(shè)置文本前景色,支持顏色名稱(如red)、十六進(jìn)制碼(如#ff0000)、RGB值(如rgb(255,0,0))、HSL值(如hsl(0,100%,50%))以及帶透明度的RGBA或HSLA(如rgba(255,0,0,0.5));2.可將顏色應(yīng)用于包含文本的任何元素,如h1至h6標(biāo)題、段落p、鏈接a(需注意a:link、a:visited、a:hover、a:active不同狀態(tài)的顏色設(shè)置)、按鈕、div、span等;3.最

See all articles