深入理解::before/:before和::after/:after的使用

第一部分:基礎(chǔ)知識
1.與:active 和 :hover這些偽類不一樣,他們都是偽元素。
2.:before/:after偽元素是在css2中提出來的。而::before/::after是在css3中的寫法,這樣從新提出是為了用兩個冒號表示偽元素以區(qū)分偽類。
3.它們用在css里某個選擇器之后,為了增添裝飾性內(nèi)容的,因?yàn)檫@樣可以實(shí)現(xiàn)語義化,如果用html來添加一些沒有實(shí)際內(nèi)容的節(jié)點(diǎn)或者輔助式樣本的文本,他們是毫無意義的。
4.它們有特有的屬性content,其中添加的內(nèi)容默認(rèn)是內(nèi)聯(lián)元素。
5.創(chuàng)建的偽元素默認(rèn)是在所依附的元素之上的,我們可以使用z-index:-1;把它放到下面去。
6.它們是虛擬節(jié)點(diǎn),而不是真正的節(jié)點(diǎn)。如:
div::after{ content: " "; border:thin solid red; }
我們在瀏覽器可以看到:
::after并不是一個真實(shí)節(jié)點(diǎn),實(shí)際上我們在一些網(wǎng)站上經(jīng)??梢钥吹剿鼈兊氖褂?。
6.input,img,iframe等元素都不能包含其他元素,所以不能通過偽元素插入內(nèi)容?! ?/p>
第二部分:應(yīng)用
1.做間隔符。
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>偽元素</title> <style> a{ color:blue; text-decoration: none; } .log:after{ content:"|"; color:red; } </style> </head> <body> <a href="" class="log">登錄</a><a href="">注冊</a> </body> </html>
效果如下:
2.做三角形
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>偽元素</title> <style> a{ color:blue; text-decoration: none; } .log:before{ content:" "; display: inline-block; width: 0; height: 0; border:10px solid transparent; border-left: 10px solid red; } </style> </head> <body> <a href="" class="log">登錄</a> </body> </html>
效果如下所示:
3.清除浮動(下面內(nèi)容取自張鑫旭大神)
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>偽元素</title> <style> .box{padding:10px; background:gray;} .fix{*zoom:1;} .fix:after{display:block; content:"clear"; height:0; clear:both; overflow:hidden; visibility:hidden;} .l{float:left;} </style> </head> <body> <div class="box fix"> <img class="l" src="http://image.zhangxinxu.com/image/study/s/s256/mm1.jpg" /> </div> </body> </html>
效果如下:
注意:其中*zoom:1;是用來在IE6中清除浮動的(用在浮動元素的父元素上)。
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作能帶來一定的幫助,如果有疑問大家可以留言交流。
相關(guān)文章
那些你所不知的CSS ::before 和::after 偽元素用法
下面小編就為大家?guī)硪黄切┠闼恢腃SS ::before 和::after 偽元素用法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-06-12- :before和:after偽元素在CSS中除了被用來添加元素、加小標(biāo)、清浮動等,還有很多妙用之處,接下來我們就來看一兩個CSS中:before和:after偽元素使用的奇技淫巧2016-05-20
- 這篇文章主要介紹了CSS中如何靈活使用:before和:after,主要內(nèi)容介紹了什么是:before和:after? 該如何使用:before和:after?感興趣的小伙伴們可以參考一下2016-05-05
- 這篇文章主要介紹了CSS中的before和:after偽元素使用詳解,包括對一些非文本內(nèi)容的插入操作使用,需要的朋友可以參考下2015-05-27
- 這篇文章主要介紹了使用before和:after偽類制作css3圓形按鈕,需要的朋友可以參考下2014-04-08
CSS偽元素 :before, :after, box-shadow應(yīng)用
利用CSS偽元素 :before 和 :after 可以在文檔前后插入內(nèi)容而不改變文檔原有結(jié)構(gòu),下面有個不錯的示例,大家可以參考下2014-03-04CSS偽類對象before和after的用法實(shí)例詳解
這兩個偽類對象只有在清楚浮動clearfix的時候會用到哈,最近在研究css3的時候覺得它兩個的搭配不僅能夠減少代碼量并且能整出很巴適的效果2013-07-11應(yīng)用before/after偽類時如何CSS命名以及針對ie6/ie7瀏覽器兼容
before/after偽類相當(dāng)于在元素內(nèi)部插入兩個額外的標(biāo)簽,其最適合也是最推薦的應(yīng)用就是圖形生成,本文簡單展示我在實(shí)際項(xiàng)目中,應(yīng)用before/after偽類時候,如何CSS命名的,HT2013-01-08CSS偽類:before在元素之前 :after 在元素之后實(shí)例講解
本教程簡單的介紹一下關(guān)于CSS偽類:before, :after詳解:before 偽元素在元素之前添加內(nèi)容;after 偽元素在元素之后添加內(nèi)容;有需要了解的朋友可以參考一下2012-12-18CSS偽元素before、after設(shè)置特殊效果:制作時尚焦點(diǎn)圖相框
在css選擇器中有這樣子的寫法div:before、div:after,對于before、after來說有部分人是相當(dāng)陌生的,那么這兩個標(biāo)簽是什么呢?有什么用處?本文將詳細(xì)介紹,需要的朋友可以參2012-12-12