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用法相同的偽類還有很多,如下圖所示

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM