」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > 為什麼 CSS `visibility:hidden` 無法達到懸停效果?

為什麼 CSS `visibility:hidden` 無法達到懸停效果?

發佈於2024-11-17
瀏覽:945

Why Does CSS `visibility: hidden` Fail for Hover Effects?

揭開謎團:為什麼CSS 可見性在懸停時失敗

CSS 可見性提供了操作元素可見性的便捷方法,但有時它會偶然發現意想不到的障礙。考慮這樣一個場景,您定義了一個「擾流器」類別來使文字最初不可見,並在滑鼠懸停時顯示它。儘管您有期望,文字仍然頑固地保持在隱藏狀態,無視您的懸停努力。

深入探討原因

這種令人困惑的行為背後的罪魁禍首在於大自然的隱藏元素。當使用visibility:hidden隱藏元素時,它實際上變得不可見並且不佔用頁面佈局中的空間。這意味著嘗試懸停在它上面本質上就像嘗試與虛空互動一樣。該元素根本不註冊懸停操作。

解決可見性困境

要克服此障礙,您需要為元素提供一種保持可見的方法即使其內容被隱藏。一種方法是將元素嵌套在可以接收懸停事件的另一個容器內。實現此目的的方法如下:

CSS:

.spoiler span {
    visibility: hidden;
}

.spoiler:hover span {
    visibility: visible;
}

HTML:

Spoiler: E.T. phones home.

說明:

透過將隱藏文字嵌套在span在元素中,可以確保外部擾流板元素保持可見,允許它捕獲懸停事件。當懸停發生時,內部 span 元素變得可見,顯示劇透文字。

其他注意事項

在某些瀏覽器(如Chrome)中,您可能會遇到一個小問題,其中隱藏的擾流板元素仍然可以用滑鼠稍微選擇。為了解決這個問題,你可以為劇透元素加上一個輪廓:

.spoiler {
    outline: 1px solid transparent;
}

這個透明的輪廓確保擾流板元素有足夠的大小來接收懸停事件,而不妨礙文本的整體可見性。

透過這些調整,您的擾流板類將完美地運行,保留隱藏文字的不可見性並提供無縫的懸停體驗。

最新教學 更多>
  • 如何在 CSS 類別名稱中使用轉義百分號來建立動態佈局元素?
    如何在 CSS 類別名稱中使用轉義百分號來建立動態佈局元素?
    CSS中.container.\31 25\25是什麼意思? 反斜線字元()用於轉義特殊字元CSS,例如百分號 (%)$。這允許使用原本無效的標識符,例如包含某些標點符號的標識符。 在提供的範例中,反斜線用於轉義類別名稱 .container 中的百分號。 \ 31 25\25。這導致類別名稱等同於...
    程式設計 發佈於2024-11-17
  • 如何在 PHP 中組合兩個關聯數組,同時保留唯一 ID 並處理重複名稱?
    如何在 PHP 中組合兩個關聯數組,同時保留唯一 ID 並處理重複名稱?
    在 PHP 中組合關聯數組在 PHP 中,將兩個關聯數組組合成一個數組是常見任務。考慮以下請求:問題描述:提供的代碼定義了兩個關聯數組,$array1 和 $array2。目標是建立一個新陣列 $array3,它合併兩個陣列中的所有鍵值對。 此外,提供的陣列具有唯一的 ID,而名稱可能重疊。要求是建...
    程式設計 發佈於2024-11-17
  • 如何使用標記有效地拆分 C++ 字串?
    如何使用標記有效地拆分 C++ 字串?
    使用標記有效拆分C 字串要根據指定標記將C std::string 拆分為子字串,有多種方法可供選擇可考慮。最有效的解決方案取決於您的應用程式的特定要求。 在您的情況下,字串由 ; 分隔。字符,並且 C 字串函數和 Boost 的使用受到限制,您可以使用 std::getline() 函數。此函數允...
    程式設計 發佈於2024-11-17
  • Bootstrap 4 Beta 中的列偏移發生了什麼事?
    Bootstrap 4 Beta 中的列偏移發生了什麼事?
    Bootstrap 4 Beta:列偏移的刪除和恢復Bootstrap 4 在其Beta 1 版本中引入了重大更改柱子偏移了。然而,隨著 Beta 2 的後續發布,這些變化已經逆轉。 從 offset-md-* 到 ml-auto在 Bootstrap 4 Beta 1 中, offset-md-*...
    程式設計 發佈於2024-11-17
  • 為什麼 Go 中 rune 是 int32 的別名而不是 uint32?
    為什麼 Go 中 rune 是 int32 的別名而不是 uint32?
    為什麼 rune 是 Go 中 int32 的別名,而不是 uint32? 儘管 rune 類型的主要目的是表示字元值,但 rune 類型Go 中沒有定義為 uint32 的別名。相反,它是 int32 的別名。鑑於字元通常由正值表示,此選擇似乎違反直覺。 此決定背後的基本原理源於符文作為 Unic...
    程式設計 發佈於2024-11-17
  • 在 Spans 中使用「float: right」時如何保留 HTML 順序?
    在 Spans 中使用「float: right」時如何保留 HTML 順序?
    使用Float:right 反轉Span 順序使用Float:right 反轉Span 順序在提供的HTML 中,具有「button」類別的Span 的樣式為「float : right” ,”導致它們以與HTML 結構相反的順序顯示。順序?不要直接浮動span 元素,而是將它們包裝在包含元素中並將...
    程式設計 發佈於2024-11-17
  • 如何將 SDL2 和 SDL_image 與 CMake 一起用於 C++ 專案?
    如何將 SDL2 和 SDL_image 與 CMake 一起用於 C++ 專案?
    在CMake中使用SDL2和SDL_image在這篇文章中,我們深入研究了在CMake中使用SDL2圖形庫和SDL_image擴展的步驟您的C 專案在CMake 的幫助下。 配置專案並依賴項project(shooter-cmake2) cmake_minimum_required(VERSION ...
    程式設計 發佈於2024-11-17
  • 大批
    大批
    方法是可以在物件上呼叫的 fns 數組是對象,因此它們在 JS 中也有方法。 slice(begin):將陣列的一部分提取到新數組中,而不改變原始數組。 let arr = ['a','b','c','d','e']; // Usecase: Extract till index ...
    程式設計 發佈於2024-11-17
  • 為什麼我在 Django 資料庫查詢中收到「InterfaceError (0, \'\')\」?
    為什麼我在 Django 資料庫查詢中收到「InterfaceError (0, \'\')\」?
    在Django 查詢執行中遇到InterfaceError (0, '')Django 使用者可能會遇到持久的「InterfaceError (0 , '')” "嘗試資料庫操作時出錯,特別是在伺服器重新啟動後。資料庫的持久連接,在多個資料庫中保持開啟狀態運...
    程式設計 發佈於2024-11-17
  • MySQL 中的分片真的是大型資料集的最佳方法嗎?
    MySQL 中的分片真的是大型資料集的最佳方法嗎?
    MySQL 中的分片:一種關鍵方法在優化MySQL 資料庫時,分片作為處理大型資料集的潛在解決方案而出現。然而,在實施分片之前了解與分片相關的權衡和潛在陷阱至關重要。 最佳方法:不分片與普遍看法相反,除非絕對必要,否則對 MySQL 表進行分片的最佳方法是避免這樣做。為什麼?分片帶來了重大的技術挑戰...
    程式設計 發佈於2024-11-17
  • 如何在 MySQL SELECT 查詢中使用 IF 語句:語法與最佳實務指南
    如何在 MySQL SELECT 查詢中使用 IF 語句:語法與最佳實務指南
    MySQL SELECT 查詢中的IF 語句用法嘗試在MySQL SELECT 查詢中實現IF 語句時,您可能會遇到困難,因為具體語法要求。在 MySQL 中,傳統的 IF/THEN/ELSE 結構僅在預存程序和函數中可用。 要解決此問題,重構查詢至關重要。查詢中支援的 IF() 函數主要用於根據 ...
    程式設計 發佈於2024-11-17
  • 如何在Python中產生特定範圍內的唯一隨機數?
    如何在Python中產生特定範圍內的唯一隨機數?
    產生範圍內的唯一隨機數產生隨機數時,確保每個數字都是唯一的可能是一個挑戰。雖然可以使用條件語句來檢查重複項,但在處理大範圍或大數字時,這種方法會變得很麻煩。 產生唯一隨機數字列表的簡單方法是使用 Python 的 random.sample( ) 功能。此函數有兩個參數:總體(產生隨機數的數字範圍)...
    程式設計 發佈於2024-11-17
  • 如何使用佔位符和參數執行帶有“WHERE...IN”的 PDO 查詢?
    如何使用佔位符和參數執行帶有“WHERE...IN”的 PDO 查詢?
    PDO 查詢“WHERE...IN”為了使用PDO 增強數據庫訪問,許多開發人員遇到了挑戰,特別是“WHERE...IN” IN”查詢。讓我們深入研究其中的複雜性,並發現在PDO 準備好的語句中使用項目列表的正確方法。“WHERE... IN”難題考慮一個場景,您需要根據表單中已檢查項目的清單從資料...
    程式設計 發佈於2024-11-17
  • 如何有效率地存取和刪除Python字典中的任意元素?
    如何有效率地存取和刪除Python字典中的任意元素?
    存取 Python 字典中的任意元素在 Python 中,字典將鍵值對儲存在無序集合中。如果字典不為空,則可以使用下列語法存取任意(隨機)元素:mydict[list(mydict.keys())[0]]但是,這這種方法可能冗長且低效,特別是當您需要執行多次迭代時。讓我們探索更有效的方法來實現此目的...
    程式設計 發佈於2024-11-17
  • 如何使用 jQuery 製作背景顏色動畫?
    如何使用 jQuery 製作背景顏色動畫?
    使用 jQuery 淡化背景顏色引人注目的網站元素通常需要微妙的動畫,例如淡入和淡出。雖然 jQuery 廣泛用於動畫文字內容,但它也可用於動態增強背景顏色。 在 jQuery 中淡入/淡出背景顏色進行操作要使用 jQuery 設定元素的背景顏色,您首先需要合併 jQueryUI 函式庫。整合後,可...
    程式設計 發佈於2024-11-17

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3