CSS :hover 樣式詳解

一、CSS :hover 動畫效果

CSS :hover 偽類是所有CSS偽類中最常用的一個,它可以讓元素在鼠標懸停時改變其樣式。通過結合其他CSS屬性和關鍵幀動畫,可以創建出許多有趣的觸發動畫效果。

例如:當鼠標懸停在一個按鈕上時,可以使按鈕背景色漸變或者添加動態陰影效果。下面是一個樣例:

.btn {
   padding: 10px 20px;
   border: none;
   background: linear-gradient(to bottom, white, #EEEEEE);
   cursor: pointer;
   animation: btnAnim 0.3s ease-in-out forwards;
}
 
.btn:hover {
   background: linear-gradient(to bottom, #EEEEEE, white);
   animation: none;
}
 
@keyframes btnAnim {
   from {
      box-shadow: none;
   }
   to {
      box-shadow: 0 0 5px 2px rgba(0, 0, 0, 0.4);
   }
}

二、CSS :hover 不生效

有時候,CSS :hover 樣式不會生效,這可能是由於以下原因:

1、CSS樣式權重不正確。當存在相同的樣式時,應該使用更具體的選擇器以確保 :hover 觸發樣式。例如:

button.btn:hover {
   background: #333;
}

2、HTML結構錯誤。如果HTML結構不正確,可能會導致CSS :hover 樣式不生效。例如:

<img src="example.png">
<span>Example Text</span>

正確的結構應該是:

<div>
   <img src="example.png">
   <span>Example Text</span>
</div>

三、CSS :hover 特效

CSS :hover 特效可以讓網站更加引人注目,提高用戶體驗。這裡,我們介紹兩個非常流行的特效:

1、手寫字體效果:

body {
   background: #000;
}
 
h1 {
   color: white;
   font-family: Arial;
   font-size: 64px;
   text-transform: uppercase;
   letter-spacing: 3px;
   position: relative;
}
 
h1:after {
   content: attr(data-text);
   position: absolute;
   top: 0;
   left: 0;
   padding: 5px;
   color: #1abc9c;
   background: #34495e;
   overflow: hidden;
   z-index: -1;
   transition: all 0.5s ease;
}
 
h1:hover:after {
   width: 100%;
   color: #fff;
}

2、環形進度條:

div {
   width: 100px;
   height: 100px;
   border-radius: 50%;
   background: #EEE;
   display: flex;
   align-items: center;
   justify-content: center;
   position: relative;
}
 
div:before,
div:after {
   content: "";
   position: absolute;
   width: 50px;
   height: 50px;
   border-radius: 50%;
   border: 4px solid transparent;
   border-top-color: #1abc9c;
}
 
div:before {
   animation: spin 2s linear infinite;
}
 
div:after {
   animation: progress 5s linear infinite;
   border-width: 6px;
   transform: rotate(120deg);
   animation-delay: -2s;
}
 
@keyframes spin {
   to {
      transform: rotate(360deg);
   }
}
 
@keyframes progress {
   0% {
      transform: rotate(-120deg);
   }
   100% {
      transform: rotate(240deg);
   }
}

四、CSS :hover 圖片放大

CSS :hover 可以用來創建圖片懸停放大的效果。下面是一段實現代碼:

img:hover {
   transform: scale(1.2);
   transition: all 0.5s ease;
}

五、CSS :hover 移齣動畫

移齣動畫可以在鼠標離開元素時添加過渡效果。下面是一個移出旋轉動畫的例子:

div {
   width: 100px;
   height: 100px;
   background: #1abc9c;
   transition: all 0.5s ease;
}
 
div:hover {
   transform: rotate(180deg);
}
 
div:hover:before {
   opacity: 1;
   transform: rotate(180deg);
}
 
div:before {
   content: "";
   position: absolute;
   width: 100%;
   height: 100%;
   background: #34495e;
   opacity: 0;
   transition: all 0.5s ease;
}

六、CSS :hover 用法

CSS :hover 非常靈活,可以用於任何元素,例如下面的一些例子:

1、改變鏈接的顏色:

a:hover {
   color: #1abc9c;
}

2、滑動看到隱藏的元素:

div.hidden {
   height: 0;
   opacity: 0;
   overflow: hidden;
   transition: all 0.5s ease;
}
 
div:hover .hidden {
   height: auto;
   opacity: 1;
}

3、改變按鈕的形狀:

button {
   padding: 10px 20px;
   border: none;
   border-radius: 20px;
   background: #1abc9c;
   color: white;
   transition: all 0.5s ease;
}
 
button:hover {
   border-radius: 50%;
   background: #2ecc71;
}

七、CSS 行內樣式:hover

通過將 :hover 偽類應用於HTML標籤的行內樣式,可以實現一些快速的效果。例如:

<p style="background: #1abc9c; color: white; padding: 10px;" 
   onMouseOver="this.style.backgroundColor='#2ecc71';" 
   onMouseOut="this.style.backgroundColor='#1abc9c';">
   Hover Me
</p>

八、hover 事件

通過JavaScript,可以在鼠標懸停時觸發事件。例如:

const elem = document.querySelector(".box");
 
elem.addEventListener("mouseover", () => {
   elem.style.transform = "scale(1.2)";
});
 
elem.addEventListener("mouseout", () => {
   elem.style.transform = "scale(1)";
});

九、 CSS :hover 理解

CSS :hover 是一種偽類選擇器,用於在鼠標懸停時改變元素的外觀。它是CSS中最常用的偽類之一,因為它可以輕鬆地在元素上創建交互式效果。 :hover 可以與其他CSS屬性結合使用,例如 transition 和 animation 以創建更複雜的效果。

十、 CSS :hover 控制其他元素

在CSS :hover 中,可以使用相鄰兄弟選擇器和子元素選擇器來控制其他元素的樣式。例如:

.btn:hover + .text {
   color: white;
}
 
.btn:hover ~ .text {
   color: #2ecc71;
}

以上就是關於 CSS :hover 的詳細解釋和用法示例。通過合理地應用 :hover,我們可以為網站增加更多交互性和用戶體驗。

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/195700.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-02 20:36
下一篇 2024-12-02 20:36

相關推薦

  • 如何使用HTML修改layui內部樣式影響全局

    如果您想要使用layui來構建一個美觀的網站或應用,您可能需要使用一些自定義CSS來修改layui內部組件的樣式。然而,修改layui組件的樣式可能會對整個頁面產生影響,甚至可能破…

    編程 2025-04-29
  • CSS sans字體家族

    CSS sans字體家族是一組基於CSS的無襯線字體,具有在不同設備和瀏覽器上保持一致的特性。本文將從優勢、使用、自定義等多個方面對CSS sans字體家族進行詳細介紹。 一、優勢…

    編程 2025-04-28
  • JFXtras樣式——美化JavaFX應用的必備神器

    本文將從多個方面對JFXtras樣式進行詳細的闡述,教你如何使用JFXtras樣式來美化你的JavaFX應用。無需任何前置知識,讓我們一步步來了解。 一、簡介 JFXtras是一個…

    編程 2025-04-27
  • 神經網絡代碼詳解

    神經網絡作為一種人工智能技術,被廣泛應用於語音識別、圖像識別、自然語言處理等領域。而神經網絡的模型編寫,離不開代碼。本文將從多個方面詳細闡述神經網絡模型編寫的代碼技術。 一、神經網…

    編程 2025-04-25
  • Linux sync詳解

    一、sync概述 sync是Linux中一個非常重要的命令,它可以將文件系統緩存中的內容,強制寫入磁盤中。在執行sync之前,所有的文件系統更新將不會立即寫入磁盤,而是先緩存在內存…

    編程 2025-04-25
  • 詳解eclipse設置

    一、安裝與基礎設置 1、下載eclipse並進行安裝。 2、打開eclipse,選擇對應的工作空間路徑。 File -> Switch Workspace -> [選擇…

    編程 2025-04-25
  • C語言貪吃蛇詳解

    一、數據結構和算法 C語言貪吃蛇主要運用了以下數據結構和算法: 1. 鏈表 typedef struct body { int x; int y; struct body *nex…

    編程 2025-04-25
  • Python安裝OS庫詳解

    一、OS簡介 OS庫是Python標準庫的一部分,它提供了跨平台的操作系統功能,使得Python可以進行文件操作、進程管理、環境變量讀取等系統級操作。 OS庫中包含了大量的文件和目…

    編程 2025-04-25
  • git config user.name的詳解

    一、為什麼要使用git config user.name? git是一個非常流行的分佈式版本控制系統,很多程序員都會用到它。在使用git commit提交代碼時,需要記錄commi…

    編程 2025-04-25
  • Java BigDecimal 精度詳解

    一、基礎概念 Java BigDecimal 是一個用於高精度計算的類。普通的 double 或 float 類型只能精確表示有限的數字,而對於需要高精度計算的場景,BigDeci…

    編程 2025-04-25

發表回復

登錄後才能評論