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

目錄
? 1. Structure the HTML
? 2. Style the Menu with CSS
? 3. Create the CSS-Only Dropdown with Hover/Focus
? Optional: Make It Vertical
? Final Tips
首頁(yè) web前端 css教學(xué) 如何使用圖標(biāo)創(chuàng)建僅CSS的動(dòng)畫(huà)下拉菜單?

如何使用圖標(biāo)創(chuàng)建僅CSS的動(dòng)畫(huà)下拉菜單?

Aug 01, 2025 am 07:36 AM
css 下拉式選單

是的,可以?xún)H用CSS創(chuàng)建帶圖標(biāo)的動(dòng)畫(huà)下拉菜單,1. 使用語(yǔ)義化HTML結(jié)構(gòu),包含嵌套的ul和Font Awesome圖標(biāo);2. 通過(guò)CSS設(shè)置基礎(chǔ)樣式、過(guò)渡效果和隱藏下拉內(nèi)容;3. 利用:hover和:focus-within實(shí)現(xiàn)無(wú)需JavaScript的下拉顯示與圖標(biāo)旋轉(zhuǎn)動(dòng)畫(huà),且支持鍵盤(pán)導(dǎo)航,最終實(shí)現(xiàn)一個(gè)美觀、可訪(fǎng)問(wèn)的純CSS動(dòng)畫(huà)下拉菜單。

How to create a CSS-only animated dropdown menu with icons?

Creating a CSS-only animated dropdown menu with icons is totally doable — and it looks great without needing any JavaScript. Here's how to build one using semantic HTML, CSS (with :hover or :focus ), transitions, and optional icon fonts like Font Awesome.

How to create a CSS-only animated dropdown menu with icons?

? 1. Structure the HTML

Start with a clean, accessible HTML structure using an unordered list. We'll use nested <ul></ul> for submenus and include icons via Font Awesome (via CDN for simplicity).

 <nav class="dropdown-menu">
  <ul>
    <li>
      <a href="#"><i class="fas fa-home"></i> Home</a>
    </li>
    <li>
      <a href="#" class="dropdown-toggle">
        <i class="fas fa-th-large"></i> Services 
        <i class="fas fa-chevron-down toggle-icon"></i>
      </a>
      <ul class="dropdown-content">
        <li><a href="#"><i class="fas fa-cog"></i> Web Design</a></li>
        <li><a href="#"><i class="fas fa-paint-brush"></i> UI/UX</a></li>
        <li><a href="#"><i class="fas fa-server"></i> Hosting</a></li>
      </ul>
    </li>
    <li>
      <a href="#"><i class="fas fa-user"></i> About</a>
    </li>
    <li>
      <a href="#"><i class="fas fa-envelope"></i> Contact</a>
    </li>
  </ul>
</nav>

? Include Font Awesome in <head> :

How to create a CSS-only animated dropdown menu with icons?
 <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.0/css/all.min.css">

? 2. Style the Menu with CSS

Now apply styles to create a horizontal or vertical dropdown with smooth animations.

 /* Reset and base styles */
.dropdown-menu ul {
  list-style: none;
  margin: 0;
  padding: 0;
  background: #2c3e50;
  font-family: &#39;Segoe UI&#39;, sans-serif;
}

.dropdown-menu > ul {
  display: flex;
  flex-direction: row; /* Horizontal menu */
}

.dropdown-menu a {
  display: flex;
  align-items: center;
  color: #ecf0f1;
  text-decoration: none;
  padding: 12px 16px;
  transition: background 0.3s ease, color 0.3s ease;
}

.dropdown-menu a:hover,
.dropdown-menu a:focus {
  background: #34495e;
  color: #fff;
}

/* Dropdown toggle arrow rotation */
.dropdown-toggle {
  position: relative;
}

.toggle-icon {
  margin-left: 8px;
  transition: transform 0.3s ease;
}

? 3. Create the CSS-Only Dropdown with Hover/Focus

Use the :hover or :focus-within trick to show the submenu. :focus-within is more accessible (keyboard-friendly).

How to create a CSS-only animated dropdown menu with icons?
 /* Hide dropdown content by default */
.dropdown-content {
  position: absolute;
  top: 100%;
  left: 0;
  width: 200px;
  background: #34495e;
  opacity: 0;
  visibility: hidden;
  transform: translateY(-10px);
  transition: opacity 0.3s ease, visibility 0.3s ease, transform 0.3s ease;
  padding: 0;
  list-style: none;
  box-shadow: 0 4px 10px rgba(0, 0, 0, 0.2);
  z-index: 100;
}

/* Show dropdown on hover or focus */
li:hover .dropdown-content,
li:focus-within .dropdown-content {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}

/* Rotate chevron down when open */
li:hover .toggle-icon,
li:focus-within .toggle-icon {
  transform: rotate(180deg);
}

/* Style dropdown links */
.dropdown-content a {
  padding: 12px 16px;
  font-size: 14px;
}

.dropdown-content a:hover {
  background: #3b536b;
}

? Tip: Use focus-within so users can tab through the menu with a keyboard — better accessibility.


? Optional: Make It Vertical

Change flex-direction: column and adjust positioning:

 .dropdown-menu > ul {
  flex-direction: column;
}

.dropdown-content {
  position: static; /* Stack below in vertical layout */
  opacity: 1;
  visibility: visible;
  transform: none;
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.4s ease;
}

li:hover .dropdown-content,
li:focus-within .dropdown-content {
  max-height: 200px;
}

? Final Tips

  • Icons : Use Font Awesome, Material Icons, or inline SVGs.
  • Accessibility : Always test with keyboard navigation ( Tab , Enter ).
  • Performance : CSS transitions are lightweight and smooth.
  • Mobile? This is hover-based, so consider media queries or touch-friendly alternatives (which usually need JS).

That's it! You've got a sleek, animated dropdown menu with icons — all with pure CSS. No JavaScript required.

以上是如何使用圖標(biāo)創(chuàng)建僅CSS的動(dòng)畫(huà)下拉菜單?的詳細(xì)內(nèi)容。更多資訊請(qǐng)關(guān)注PHP中文網(wǎng)其他相關(guān)文章!

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

熱AI工具

Undress AI Tool

Undress AI Tool

免費(fèi)脫衣圖片

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線(xiàn)上人工智慧工具。

Clothoff.io

Clothoff.io

AI脫衣器

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整合開(kāi)發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺(jué)化網(wǎng)頁(yè)開(kāi)發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

神級(jí)程式碼編輯軟體(SublimeText3)

熱門(mén)話(huà)題

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

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

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

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

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

什麼是常見(jiàn)的CSS瀏覽器不一致? 什麼是常見(jiàn)的CSS瀏覽器不一致? Jul 26, 2025 am 07:04 AM

不同瀏覽器對(duì)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)多測(cè)試並使用Autoprefixer;4.某些CSS屬性行為不一致,需查閱CanIuse並提供降級(jí)

描述'垂直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可避免複雜的自定義樣式和額外DOM結(jié)構(gòu),保持原生可訪(fǎng)問(wèn)性;4.現(xiàn)代瀏覽器普遍支持,舊瀏覽器需降級(jí)處理;5.設(shè)置accent-col

CSS過(guò)渡教程 CSS過(guò)渡教程 Jul 26, 2025 am 09:30 AM

csStransitionSenablesMoothPropertyChangesWithMinimalCode,ifealforHoverForpectSandInteractiveFeedback.1.usethesyntaxtransition:propertyDurationTimingTiming-functionDelayDelay; TodefineTrysitions; TodefinEtrys;

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

要改變CSS中文本顏色,需使用color屬性;1.使用color屬性可設(shè)置文本前景色,支持顏色名稱(chēng)(如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