純CSS實現點擊事件展現隱藏div菜單列表/元素切換

来源:https://www.cnblogs.com/vanwee/archive/2019/02/14/10374606.html
-Advertisement-
Play Games

在寫移動端導航的時候經常用到點擊按鈕出現/隱藏導航條的情況,最常見的方法當然還是前端框架直接調用,省心省力,不易出錯;當然還有使用純JS實現的小代碼段。我這裡整理了純CSS實現方式,給需要的人和給自己做個筆記: 實現原理利用CSS偽類:target 可以配合CSS3過渡做出很多不同的效果,具體不做詳 ...


在寫移動端導航的時候經常用到點擊按鈕出現/隱藏導航條的情況,最常見的方法當然還是前端框架直接調用,省心省力,不易出錯;當然還有使用純JS實現的小代碼段。我這裡整理了純CSS實現方式,給需要的人和給自己做個筆記:

實現原理利用CSS偽類:target

 1 <!doctype html>
 2 <html>
 3 <head>
 4 <meta charset="utf-8">
 5 <title>純CSS實現點擊事件展現隱藏div菜單列表</title>
 6     <style>
 7         /*樣式預設,可根據自身情況設定增刪*/
 8         .l-btn{
 9             position: relative;
10             width: 1.875rem;
11             height: 1.875rem;
12         }
13         .l-btn>a:first-child,.l-btn>a:first-child+a{
14             width: 1.875rem;
15             height: 1.875rem;
16             line-height: 1.875rem;
17             text-align: center;
18             cursor: pointer;
19             text-decoration: none;
20         }
21         .l-btn>a:first-child+a+*{
22             position: absolute;
23             width: 20rem;
24             display: none;/*這個樣式可以設置透明度、高度等進行變換,配合CSS3過渡,達到更美觀的效果,這裡僅做功能*/
25         }
26         
27         /*單獨*/
28         .l-btn>a:first-child{
29             display: block;
30         }
31         .l-btn>a:first-child+a{
32             display: none;
33         }
34         /*-----為了方便理解,這裡單獨拿出來寫,實際應用時可進行CSS分組合併----*/
35         .l-btn>a:first-child:target{
36             display: none;
37         }
38         .l-btn>a:first-child:target+a{
39             display: block;
40         }
41         .l-btn>a:first-child:target+a+*{
42             display: block;/*這裡需要與上面設置的屬性匹配*/
43         }
44     </style>
45 </head>
46 
47 <body>
48     <div class="l-btn">
49         <a href="#l-btn-a" id="l-btn-a"></a>
50         <a href="#l-btn-b" id="l-btn-b">X</a>
51         <div>我是菜單列表</div>
52     </div>
53 </body>
54 </html>

可以配合CSS3過渡做出很多不同的效果,具體不做詳細演示

效果沒有JS那麼完美,畢竟地址欄會出現你的錨點信息,當然這是比較小的瑕疵,好處應該是輕量吧。。

另外使用:first-child(CSS2)作為選擇器僅為了相容更低版本的IE


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • Vue 基礎篇 一、框架與庫的區別 JQ庫 DOM(DOM操作) + Ajax請求 art template庫 模板引擎 框架 全方位、功能齊全 簡易的DOM體驗 + 發請求 + 模板引擎 + 路由功能 + ... 代碼上的不同: 一般使用庫:調用某個函數,自己可以把控庫的代碼 一般使用框架:其框架 ...
  • 1、上篇已經介紹了全局過濾器的使用,“全局”顧名思義就是一次定義處處使用,可以被一個頁面里不同的Vue對象所使用,如下代碼所示: 這裡定義了兩個Vue對象分別綁定id為div1和div2的元素,在這兩個元素作用域里使用了全局過濾器formatData,運行的效果是一樣的,這就是全局過濾器。但是有的時 ...
  • ...
  • 1. 同屏播放視頻 2. 移動端視頻預載入 由於移動端不能預載入視頻,所以hack一種方案:監聽WXJSBridge WeixinJSBridgeReady,先播放再暫停,這樣當觸發播放視頻時就不用等待,就不會出現黑屏情況。 3. 滑動播放視頻 微信安卓環境下需要在touchmove事件中阻止掉預設 ...
  • 1. 修改 HTML 內容 2. 修改 HTML 屬性 ...
  • 採用ionic 開發中,遇到鍵盤彈出遮擋元素的問題。 以登陸頁面為例,輸入用戶名和密碼時,鍵盤遮擋了登陸按鈕。 最終採用自定義指令解決了問題: 引用:將命名好的指令名 :popupKeyBoardShow,按駝峰拆開用“-”連接成小寫,如:popup-key-board-show。 <popup-k ...
  • 在app.js里的 .config 里添加配置,同時在函數中引入 $ionicConfigProvider,具體格式如下所示: ...
  • 通過瀏覽器訪問url時候瀏覽器會攜帶cookie,可利用cookie進行信息驗證如用戶驗證,cookie前後端都可獲取設置,後端用self.get_cookie和self.set_cookie,前端可用document.cookie 獲取設置,根據前端document的這個方法結合Date()方法自... ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...