目錄
✅ 純CSS 模態彈窗示例
? 關鍵點說明
✅ 可選改進
? 小貼士
首頁 web前端 css教學 CSS模態彈出示例

CSS模態彈出示例

Jul 28, 2025 am 04:33 AM
css modal

使用純CSS 實現模態彈窗可通過隱藏的checkbox 控制顯隱,1. 用input[type="checkbox"] 作為狀態開關;2. 利用:checked .modal 控制模態框顯示;3. 通過label[for] 觸發勾選實現打開與關閉;4. 添加@keyframes 動畫實現淡入彈出效果;5. 模態框內關閉按鈕或遮罩點擊區域均可綁定label 控制隱藏,整個過程無需JavaScript,兼容性好且可訪問性強,適合靜態頁面或輕量級交互場景使用。

css modal popup example

一個純CSS 實現的模態彈窗(Modal Popup)可以在不使用JavaScript 的情況下,通過:target偽類或checkbox label控制顯隱。下面是一個簡單、實用且可複用的CSS 模態框示例,使用隱藏的checkbox來控制顯示和關閉,體驗更穩定。

css modal popup example

✅ 純CSS 模態彈窗示例

<!DOCTYPE html>
<html lang="zh">
<head>
  <meta charset="UTF-8" />
  <title>CSS Modal Popup 示例</title>
  <style>
    /* 基礎重置*/
    * {
      margin: 0;
      padding: 0;
      box-sizing: border-box;
    }

    body {
      font-family: Arial, sans-serif;
      background-color: #f4f4f4;
      padding: 20px;
    }

    /* 按鈕樣式*/
    .btn-open {
      padding: 10px 18px;
      background-color: #007BFF;
      color: white;
      border: none;
      border-radius: 4px;
      cursor: pointer;
      font-size: 16px;
    }

    /* 模態背景遮罩*/
    .modal {
      display: none;
      position: fixed;
      top: 0;
      left: 0;
      width: 100%;
      height: 100%;
      background-color: rgba(0, 0, 0, 0.5);
      justify-content: center;
      align-items: center;
      z-index: 1000;
    }

    /* checkbox 控制模態框顯隱*/
    #modal-toggle {
      display: none;
    }

    #modal-toggle:checked .modal {
      display: flex;
    }

    /* 模態內容框*/
    .modal-content {
      background: white;
      width: 90%;
      max-width: 500px;
      padding: 20px;
      border-radius: 8px;
      box-shadow: 0 4px 15px rgba(0, 0, 0, 0.2);
      position: relative;
      animation: fadeIn 0.3s ease-out;
    }

    /* 關閉按鈕*/
    .modal-close {
      position: absolute;
      top: 10px;
      right: 15px;
      font-size: 24px;
      color: #aaa;
      text-decoration: none;
      line-height: 1;
      cursor: pointer;
    }

    .modal-close:hover {
      color: #000;
    }

    /* 動畫效果*/
    @keyframes fadeIn {
      from {
        opacity: 0;
        transform: scale(0.9);
      }
      to {
        opacity: 1;
        transform: scale(1);
      }
    }
  </style>
</head>
<body>

  <!-- 觸發按鈕-->
  <label for="modal-toggle" class="btn-open">打開模態框</label>

  <!-- 隱藏的checkbox -->
  <input type="checkbox" id="modal-toggle" />

  <!-- 模態框-->
  <div class="modal">
    <div class="modal-content">
      <a href="#" class="modal-close" onclick="document.getElementById(&#39;modal-toggle&#39;).checked = false;">×</a>
      <h2>模態框標題</h2>
      <p>這裡是模態框的內容。你可以添加表單、圖片或其他內容。 </p>
      <label for="modal-toggle" style="margin-top: 10px; display: inline-block; padding: 8px 12px; background: #6c757d; color: white; border-radius: 4px; cursor: pointer;">關閉</label>
    </div>
  </div>

</body>
</html>

? 關鍵點說明

  • 無JavaScript 顯隱控制:使用<input type="checkbox" id="modal-toggle">:checked .modal控制顯示。
  • 點擊遮罩外區域關閉:可以給.modal添加一個偽元素或監聽label 點擊,但本例中通過“關閉”鏈接或按鈕關閉更安全。
  • 支持動畫:用@keyframes實現淡入彈出效果。
  • 可訪問性label[for]提升可用性,語義清晰。

✅ 可選改進

  • 點擊遮罩層關閉:可在.modal上加一個label覆蓋背景層, for="modal-toggle"
  • 使用:target方式更簡單,但URL 會變化(如#modal ),不適合所有場景。

? 小貼士

  • 如果你希望更現代的方式,可以結合prefers-reduced-motion避免動畫對敏感用戶造成不適。
  • 移動端記得加overflow-y: auto防止內容溢出。

基本上就這些,不復雜但足夠實用。你可以把這段代碼複製進HTML 文件直接運行測試。

以上是CSS模態彈出示例的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

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

熱門話題

如何用PHP開發問答社區平台 PHP互動社區變現模式詳解 如何用PHP開發問答社區平台 PHP互動社區變現模式詳解 Jul 23, 2025 pm 07:21 PM

1.PHP開發問答社區首選Laravel MySQL Vue/React組合,因生態成熟、開發效率高;2.高性能需依賴緩存(Redis)、數據庫優化、CDN和異步隊列;3.安全性必須做好輸入過濾、CSRF防護、HTTPS、密碼加密及權限控制;4.變現可選廣告、會員訂閱、打賞、佣金、知識付費等模式,核心是匹配社區調性和用戶需求。

如何用PHP搭建社交分享功能 PHP分享接口集成實戰 如何用PHP搭建社交分享功能 PHP分享接口集成實戰 Jul 25, 2025 pm 08:51 PM

在PHP中搭建社交分享功能的核心方法是通過動態生成符合各平台要求的分享鏈接。 1.首先獲取當前頁面或指定的URL及文章信息;2.使用urlencode對參數進行編碼;3.根據各平台協議拼接生成分享鏈接;4.在前端展示鏈接供用戶點擊分享;5.動態生成頁面OG標籤優化分享內容展示;6.務必對用戶輸入進行轉義以防止XSS攻擊。該方法無需複雜認證,維護成本低,適用於大多數內容分享需求。

PHP打造博客評論系統變現 PHP評論審核與防刷策略 PHP打造博客評論系統變現 PHP評論審核與防刷策略 Jul 25, 2025 pm 08:27 PM

1.評論系統商業價值最大化需結合原生廣告精準投放、用戶付費增值服務(如上傳圖片、評論置頂)、基於評論質量的影響力激勵機制及合規匿名數據洞察變現;2.審核策略應採用前置審核 動態關鍵詞過濾 用戶舉報機制組合,輔以評論質量評分實現內容分級曝光;3.防刷需構建多層防禦:reCAPTCHAv3無感驗證、Honeypot蜜罐字段識別機器人、IP與時間戳頻率限制阻止灌水、內容模式識別標記可疑評論,持續迭代應對攻擊。

如何設計段落的第一字母或第一行? 如何設計段落的第一字母或第一行? Jul 19, 2025 am 02:58 AM

要美化段落開頭提升視覺吸引力,常見做法是使用CSS的偽元素或手動設置文檔樣式。網頁開發中可用p::first-letter設置首字母樣式,如放大、加粗、變色,但需注意僅適用於塊級元素;若想突出整段首行,則用p::first-line來加樣式;在Word等文檔軟件中可手動調整首字母格式或創建樣式模板,而InDesign有內置“首字下沉”功能適合出版設計;應用時需注意細節,如避免複雜樣式影響閱讀、確保兼容性和格式一致性。

Vue成品資源網站免費入口 完整Vue成品永久在線觀看 Vue成品資源網站免費入口 完整Vue成品永久在線觀看 Jul 23, 2025 pm 12:39 PM

本文為Vue開發者和學習者精選了一系列頂級的成品資源網站。通過這些平台,你可以免費在線瀏覽、學習甚至復用海量高質量的Vue完整項目,從而快速提升開發技能和項目實踐能力。

CSS' Will-Change”屬性的目的是什麼? CSS' Will-Change”屬性的目的是什麼? Jul 23, 2025 am 03:47 AM

will-change是CSS屬性,用於提前告知瀏覽器元素可能發生的變更類型以優化性能。其核心作用是讓瀏覽器預先創建圖層提升渲染效率,常見值包括transform、opacity等,也可多屬性逗號分隔;適用於非標準屬性動畫、複雜組件過渡及用戶交互觸發的動畫;但需避免濫用,否則會導致內存佔用過高或GPU負載增加;最佳實踐為在變化發生前應用並在結束後移除。

解釋不同的CSS定位方案:靜態,相對,絕對,固定,粘性 解釋不同的CSS定位方案:靜態,相對,絕對,固定,粘性 Jul 19, 2025 am 03:19 AM

CSS定位方式共有五種:static、relative、absolute、fixed和sticky。 static為默認定位,遵循文檔流且不支持偏移;relative相對自身原位置移動,仍在文檔流中;absolute脫離文檔流,相對於最近的非static定位祖先定位;fixed相對於瀏覽器窗口固定不動,常用於固定導航欄;sticky介於relative和fixed之間,滾動到特定位置後固定,適合做粘性頭部。掌握它們的行為差異是佈局關鍵。

描述CSS規則集的結構 描述CSS規則集的結構 Jul 20, 2025 am 02:49 AM

CSS規則集由選擇器和聲明塊組成,用於定義HTML元素的樣式。 1.選擇器指定目標元素,如標籤、類或ID;2.聲明塊包含屬性和值,控制元素外觀。例如:p{color:blue;font-size:16px;}表示選中段落並設置文本顏色和字體大小。掌握這兩部分即可編寫有效CSS樣式。

See all articles