1. 程式人生 > >2-23偽類和偽元素

2-23偽類和偽元素

spa div 變化 工作 pre 大小 line doc 得到

1、偽類

①匹配所有<p> 元素中的第一個 <i> 元素

在下面的例子中,選擇相匹配的所有<p>元素的第一個 <i> 元素

1 p > i:first-child
2 {
3     color:blue;
4 } 

提示:first-child 作用於 IE8 以及更早版本的瀏覽器, !DOCTYPE 必須已經定義.

②匹配所有作為第一個子元素的 <p> 元素中的所有 <i> 元素

在下面的例子中,選擇器匹配所有作為元素的第一個子元素的 <p> 元素中的所有 <i> 元素

1 p:first-child i
2 {
3     color:blue;
4 } 

總結:①和②的區別,主要看first-child的位置,,控制在它前面的標簽。

e.g:①first-child的前面是i,所以是對於所有控制的p元素的第一個i元素;

2、偽元素

first-line 偽元素

"first-line" 偽元素用於向文本的首行設置特殊樣式。

註意:"first-line" 偽元素只能用於塊級元素。

first-letter 偽元素

"first-letter" 偽元素用於向文本的首字母設置特殊樣式

註意:"first-line" 偽元素只能用於塊級元素。

多個偽元素

可以結合多個偽元素來使用。

在下面的例子中,段落的第一個字母將顯示為紅色,其字體大小為 xx-large。第一行中的其余文本將為藍色,並以小型大寫字母顯示。

段落中的其余文本將以默認字體大小和顏色來顯示:

 1 p:first-letter
 2 {
 3     color:#ff0000;
 4     font-size:xx-large;
 5 }
 6 p:first-line 
 7 {
 8     color:#0000ff;
 9     font-variant:small-caps;
10 }

CSS - :before 偽元素

":before" 偽元素可以在元素的內容前面插入新內容。

CSS - :after 偽元素

":after" 偽元素可以在元素的內容之後插入新內容。

總結:

偽類選擇元素基於的是當前元素處於的狀態,或者說元素當前所具有的特性,而不是元素的id、class、屬性等靜態的標誌。由於狀態是動態變化的,所以一個元素達到一個特定狀態時,它可能得到一個偽類的樣式;當狀態改變時,它又會失去這個樣式。由此可以看出,它的功能和class有些類似,但它是基於文檔之外的抽象,所以叫偽類。

與偽類針對特殊狀態的元素不同的是,偽元素是對元素中的特定內容進行操作,它所操作的層次比偽類更深了一層,也因此它的動態性比偽類要低得多。實際上,設計偽元素的目的就是去選取諸如元素內容第一個字(母)、第一行,選取某些內容前面或後面這種普通的選擇器無法完成的工作。它控制的內容實際上和元素是相同的,但是它本身只是基於元素的抽象,並不存在於文檔中,所以叫偽元素。

2-23偽類和偽元素