1. 程式人生 > 其它 >WEB前端初學者筆記(8)--偽類選擇器

WEB前端初學者筆記(8)--偽類選擇器

一、什麼是偽類

偽類用於定義元素的特殊狀態。

例如,它可以用於:

  • 設定滑鼠懸停在元素上時的樣式

  • 為已訪問和未訪問連結設定不同的樣式

  • 設定元素獲得焦點時的樣式

二、hover

以下面程式碼為例,hover是滑鼠懸停在元素上樣式的改變,它不僅僅改變的是盒子的顏色,也可以改變盒子的寬高、邊框等等等等。

活學活用,聯想到網頁上一些頁面,當滑鼠放上去會有一些div盒子彈出來,這就可以用hover實現,比如div4,將他的display屬性設定為none,這樣盒子就會消失,當滑鼠懸停在指定位置之後,會把屬性改為display: block; 這樣就實現了盒子彈射出來。

 1 <!
doctype html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <meta name="viewport" 6 content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0"> 7 <meta http-equiv="X-UA-Compatible" content="ie=edge"
> 8 <title>Document</title> 9 <style> 10 #div1{ 11 width: 300px; 12 height: 300px; 13 background: red; 14 } 15 #div1:hover{ 16 background: black; 17 } 18 #div2{ 19 width: 100px;
20 height: 100px; 21 background: green; 22 } 23 #div1:hover>#div2{ 24 background: pink; 25 } 26 #div3{ 27 width: 50px; 28 height: 50px; 29 background: yellow; 30 } 31 #div1:hover #div3{ 32 background: blue; 33 } 34 #div4{ 35 width: 200px; 36 height: 200px; 37 background: gray; 38 display: none; 39 } 40 #div1:hover+#div4 { 41 background: lightgreen; 42 width: 150px; 43 height: 600px; 44 display: block; 45 } 46 /*這個加號 必須緊挨著的弟弟元素,中間有其他元素或者哥哥元素都會失效*/ 47 48 49 50 </style> 51 </head> 52 <body> 53 <div id="div1"> 54 <div id="div2"> 55 <div id="div3"> 56 57 </div> 58 </div> 59 </div> 60 61 <div id="div4"></div> 62 </body> 63 </html>

以下面的例子展示hover如何實現滑鼠懸停圖片後圖片樣式轉換。如網頁展示,這是一個灰色麥克風,滑鼠放上去之後會變成藍色麥克風。其實這都是一個圖片,只不過在圖片上使用了no-repeat實現不平鋪,讓多餘部分消失,然後使用hover來實現對圖片的重新定位,達到預期效果。

使用一張圖片而不是多張圖片的作用是減少載入次數。

 1 <!doctype html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <meta name="viewport"
 6           content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
 7     <meta http-equiv="X-UA-Compatible" content="ie=edge">
 8     <title>Document</title>
 9     <style>
10         #camera{
11             width: 24px;
12             height: 24px;
13             border: 1px solid;
14             margin: 100px auto 0;
15             background: url("https://dss0.bdstatic.com/5aV1bjqh_Q23odCf/static/superman/img/searchbox/nicon-2x-6258e1cf13.png") no-repeat;
16             background-size:24px 96px;
17         }
18         #camera:hover{
19             background-position: 0px -24px;
20         }
21 
22     </style>
23 </head>
24 <body>
25 <div id="camera"></div>
26 </body>
27 </html>

三、與hover用法相同的偽類還有很多,如下圖所示