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

第一部分:基礎知識
1.與:active 和 :hover這些偽類不一樣,他們都是偽元素。
2.:before/:after偽元素是在css2中提出來的。而::before/::after是在css3中的寫法,這樣從新提出是為了用兩個冒號表示偽元素以區(qū)分偽類。
3.它們用在css里某個選擇器之后,為了增添裝飾性內容的,因為這樣可以實現語義化,如果用html來添加一些沒有實際內容的節(jié)點或者輔助式樣本的文本,他們是毫無意義的。
4.它們有特有的屬性content,其中添加的內容默認是內聯元素。
5.創(chuàng)建的偽元素默認是在所依附的元素之上的,我們可以使用z-index:-1;把它放到下面去。
6.它們是虛擬節(jié)點,而不是真正的節(jié)點。如:
div::after{ content: " "; border:thin solid red; }
我們在瀏覽器可以看到:
::after并不是一個真實節(jié)點,實際上我們在一些網站上經常可以看到它們的使用。
6.input,img,iframe等元素都不能包含其他元素,所以不能通過偽元素插入內容?! ?/p>
第二部分:應用
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.清除浮動(下面內容取自張鑫旭大神)
<!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中清除浮動的(用在浮動元素的父元素上)。
總結
以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作能帶來一定的幫助,如果有疑問大家可以留言交流。
相關文章
那些你所不知的CSS ::before 和::after 偽元素用法
下面小編就為大家?guī)硪黄切┠闼恢腃SS ::before 和::after 偽元素用法。小編覺得挺不錯的,現在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-06-12- :before和:after偽元素在CSS中除了被用來添加元素、加小標、清浮動等,還有很多妙用之處,接下來我們就來看一兩個CSS中:before和:after偽元素使用的奇技淫巧2016-05-20
- 這篇文章主要介紹了CSS中如何靈活使用:before和:after,主要內容介紹了什么是:before和:after? 該如何使用:before和:after?感興趣的小伙伴們可以參考一下2016-05-05
- 這篇文章主要介紹了CSS中的before和:after偽元素使用詳解,包括對一些非文本內容的插入操作使用,需要的朋友可以參考下2015-05-27
- 這篇文章主要介紹了使用before和:after偽類制作css3圓形按鈕,需要的朋友可以參考下2014-04-08
CSS偽元素 :before, :after, box-shadow應用
利用CSS偽元素 :before 和 :after 可以在文檔前后插入內容而不改變文檔原有結構,下面有個不錯的示例,大家可以參考下2014-03-04- 這兩個偽類對象只有在清楚浮動clearfix的時候會用到哈,最近在研究css3的時候覺得它兩個的搭配不僅能夠減少代碼量并且能整出很巴適的效果2013-07-11
應用before/after偽類時如何CSS命名以及針對ie6/ie7瀏覽器兼容
before/after偽類相當于在元素內部插入兩個額外的標簽,其最適合也是最推薦的應用就是圖形生成,本文簡單展示我在實際項目中,應用before/after偽類時候,如何CSS命名的,HT2013-01-08CSS偽類:before在元素之前 :after 在元素之后實例講解
本教程簡單的介紹一下關于CSS偽類:before, :after詳解:before 偽元素在元素之前添加內容;after 偽元素在元素之后添加內容;有需要了解的朋友可以參考一下2012-12-18CSS偽元素before、after設置特殊效果:制作時尚焦點圖相框
在css選擇器中有這樣子的寫法div:before、div:after,對于before、after來說有部分人是相當陌生的,那么這兩個標簽是什么呢?有什么用處?本文將詳細介紹,需要的朋友可以參2012-12-12