1. 程式人生 > >css的偽元素::after和::before的使用

css的偽元素::after和::before的使用

::after是一個CSS偽元素,使用::after,你可以從CSS裡往頁面上新增內容。雖然最終生成的東西並不是真正的DOM裡的內容,但這些內容能像普通內容一樣顯示,基本下的效果是這樣的:

CSS程式碼

div::after{

content:"你好";

}

HTML程式碼

<div>

  <!--div的內容-->

你好

</div>

::before跟::after完全類似,指示它插入的內容會出現在其他內容之前。這兩者的區別可以簡單描述為:

1、想讓插入的內容出現在其他內容之前,使用::before,否者,使用::after。

2、在程式碼順序上,::after生成的內容也比::before生成的內容靠後,如果按堆疊視角,::after生成的內容會在::before生成的內容之上。

3、字串:content:"字串",特殊自趺床需要轉義或unicode編碼。

4、圖片: content:url(/path/to/images.jpg);圖片會按原尺寸大小的插入,不能改變,因為漸變色實際上也是影象,所以,這些偽元素裡也可以使用漸變色。

5、空:content:"";可以用於清除左右浮動元素,也能夠用於使用背景圖片(這是可以設定高和寬,甚至使用background-size)

6、計數器:content:content(li); 在列表時計算行數非常方便。

需要注意的是,你不能用他們插入HTML(至少這些HTML程式碼會被轉義輸出)content:"<h1>hello</h1>";

雙冒號(::)和單冒號(::)的區別

所有支援css3的雙冒號語法的瀏覽器都會支援單冒號的語法,但IE8只支援單冒號。建議只使用單冒號,以獲得最佳的瀏覽器支援。

雙冒號市一中新語法,是用來將偽元素選擇器和偽元素區別開,如果不需要IE8支援,就用雙冒號

瀏覽器支援情況:

1、Firefox 3.5- 不支援偽元素的絕對定位。

2、Opera9.2,偽元素的空格會顯示,如同在pre一樣。

3、IE8不支援偽元素裡的z-index。