#07你認真學了css?偽類和偽元素
一、偽類:
1、定義
偽類用於當已有元素處於的某個狀態時,為其新增對應的樣式,這個狀態是根據使用者行為而動態變化
2、型別
image
3、應用場景
用偽類元素進行效果展示
(1)link
visited
hover
active
順序
/* 未訪問的連結 */ a:link{ color: blue; } a:visited{ color: green; } /* 點選後滑鼠脫離,獲得焦點的連結 */ a:focus{ color: grey; } /*滑鼠懸停時,內容顏色獲得紅色 */ a:hover{ color: red; } /*選擇活動連結*/ a:active{ color: pink; }
image
(2)first-child
VS first-of-type
h1:first-child
:選擇是h1並且它是長子的元素-
h1:first-of-type
:選擇是h1並且它是它父親裡h1型別中的長子的元素image
關於first-child
VSfirst-of-type
的使用在之前的css系列部落格文章中有詳細解釋:
二、偽元素
1、定義
偽元素用於建立一些不在文件樹中的元素,併為其新增樣式
2、型別
image
如:
image
3、:before
和 :after
(也可以寫::before
和 ::after
)
<div class="box"> <p>這是第一段</p> </div> <style> .box:before{ content: 'start' } .box:after{ content: 'end' } </style>
image
使用偽元素before
和after
的好處:
可以在後臺發現,p的前後分別出現
::before
和::after
。html的dom樹中原本沒有::before
和::after
,現透過css樣式新增,使其在dom樹中新增這兩個元素。用新增
::before
和::after
的目的是為了省標籤。::before
生成的效果,所在的位置位於父元素(如box)的第一個子元素,::after
則位於父元素(如box)的最後一個子元素,即在html的dom樹上多了兩個子元素,這兩個子元素無需在html中體現,只需在css中表示即可。::before
和::after
所展示的效果相當於一個行內元素(注意行內元素的一些特性)其中
content
是必不可少
4、偽類選擇器的應用場景
(1)偽類選擇器應用於清除浮動
.clearfix:after { content:''; display:block; clear:both; }
詳細解釋請回看之前我寫得關於浮動的副作用和解決辦法:
(2)偽類選擇器可作為替代標籤
用程式碼替代圖片,如使用css3實現一個帶邊框的三角符
思路:邊框+三角符號的組合
先確認邊框樣式:
.bubble{ position: relative; padding: 10px; border-radius: 3px; /*可填可不填*/ background: #fff; border: 1px solid #000; display: inline-block; } <body> <div class="bubble"> hello world </div> </body>
再確認三角樣式:
.bubble:before{ content:''; width: 10px; height: 10px; border-left: 1px solid #000; border-top: 1px solid #000; background: #fff; display: inline-block; position: absolute; transform: rotateZ(45deg); top: -6px; } <body> <div class="bubble"> hello world </div> </body>
這裡基礎的三角樣式我們在之前已經有涉及過怎麼使用:
請戳
使用偽元素怎麼實現三角符號(css3 ):
基礎程式碼:(關於三角形的位置引數可以使用頁面後臺進行除錯)
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Document</title> <style> .bubble{ position: relative; padding: 10px; border-radius: 3px; /*可填可不填*/ background: #fff; border: 1px solid #000; display: inline-block; } .bubble:before{ content:''; width: 10px; height: 10px; border-left: 1px solid #000; border-top: 1px solid #000; background: #fff; display: inline-block; transform: rotateZ(45deg); position: absolute; top: -6px; } </style></head><body> <div class="bubble"> hello world </div></body></html>
結果:
image
運用以上知識舉一反三,實現以下效果:
image
程式碼請戳:
(3)偽類選擇器應用於element:checked;
(勾選住的一個狀態)
即input
元素的自定義重要屬性checkbox
或者radio
,實現一個自定義的樣式
如:笑臉切換
/*今天的心情:*/ <input type="checkbox"><style>input[type=checkbox]{ -webkit-appearance: none; /*去掉未勾選的方框預設樣式*/ appearance: none; background: url() 0 0 no-repeat; display: inline-block; width: 20px; height: 20px; background-size: contain; /*背景圖片的大小*/ vertical-align: middle; outline: none; } /*勾選之後的狀態*/ input[type=checkbox]:checked{ -webkit-appearance: none; appearance: none; background: url() 0 0 no-repeat; display: inline-block; width: 20px; height: 20px; background-size: contain; vertical-align: middle; } </style>
好處:
沒有加js
使用該屬性樣式,對於
input
來說已經實現勾選狀態,自定義加一些自己的圖片,自動載入資訊
(4)偽類選擇器應用於字型圖示
A、為什麼針對字型庫而來的字型,我們可以調整它的字型大小和顏色?
image
B、完整程式碼如下:
<!DOCTYPE html><html><head> <meta charset="utf-8"> <title>JS Bin</title> <link rel="stylesheet" type="text/css" href="//at.alicdn.com/t/font_nyta5x5h650cnmi.css"></head><body> <span class="iconfont icon-jirengulogojichu2"></span> <style> .iconfont{ font-size: 100px; color: red; } </style></body></html>
在css中新增這個:
/* e605為字型庫中的特有的一種編碼形式:unicode碼 */.icon-jirengulogojichu2:before{content:'e605';}
即:
image
作者:飢人谷_遠方
連結:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/4289/viewspace-2817381/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- css偽類和偽元素CSS
- CSS3偽類和偽元素CSSS3
- 偽類和偽元素
- css3 中的偽類和偽元素CSSS3
- 一次弄懂CSS的偽類和偽元素CSS
- CSS偽元素詳解以及偽元素與偽類的區別CSS
- [CSS] 偽元素和偽類,::before 和 :before 區別CSS
- 06-偽類和偽元素
- HTML表單及CSS選擇器、偽類和偽元素HTMLCSS
- CSS偽類與偽元素選擇器區別CSS
- CSS偽類與CSS偽元素的區別及由來CSS
- 偽元素和偽類的區別總結
- 總結偽類與偽元素
- CSS中一些利用偽類、偽元素和相鄰元素選擇器的技巧CSS
- CSS的偽元素CSS
- CSS偽類CSS
- 偽類與偽元素的區別
- 重新整理了偽類偽元素
- 【愣錘筆記】你真的瞭解什麼是偽類和偽元素嗎筆記
- Css 偽類/偽類物件使用整理_使用案例CSS物件
- css的偽類CSS
- 笑談CSS的偽元素CSS
- 2022 最受歡迎的 CSS 偽類、偽元素分別是什麼CSS
- css偽元素(before與after)CSS
- CSS選擇器(6)——偽元素CSS
- 巧用偽元素和偽類讓我們的html結構更清晰合理HTML
- css偽類選擇符CSS
- CSS偽類使用詳解CSS
- CSS偽類的詳解CSS
- 深入理解CSS偽類CSS
- CSS 偽類選擇器CSS
- CSS的偽元素使用例子之一CSS
- CSS E::after 偽元素選擇器CSS
- Css字型圖示偽元素方式引入CSS
- 【補充】送給你們的小心心之css偽元素CSS
- 新CSS偽類:focus-withinCSS
- 後端碼農談前端(CSS篇)第四課:選擇器補充(偽類與偽元素)後端前端CSS
- 瞭解css中偽元素 before和after的用法CSS