偽類和偽元素的區別

2021-07-23 16:21:00 字數 2314 閱讀 8458

學習這麼長時間對於一些基本點還是不太理解,所以在這裡進行了區分

第一種理解

偽類用於向某些選擇器新增特殊的效果。

偽元素用於將特殊的效果新增到某些選擇器。

第二種理解

偽類的效果可以通過新增乙個實際的類來達到,而偽元素的效果則需要通過新增乙個實際的元素才能達到,這也是為什麼他們乙個稱為偽類,乙個稱為偽元素的原因。

偽類有::first-child ,:link:,vistited,:hover,:active,:focus,:lang

偽元素有::first-line,:first-letter,:before,:after

偽元素和偽類之所以這麼容易混淆,是因為他們的效果類似而且寫法相仿,但實際上 [css3]為了區分兩者,已經明確規定了偽類用乙個冒號來表示,而偽元素則用兩個冒號來表示。

`:pseudo-classes         //偽類

::pseudo-elements //偽元素

但因為相容性的問題,所以現在大部分還是統一的單冒號,但是拋開相容性的問題,我們在書寫時應該盡可能養成好習慣,區分兩者。

偽元素選擇器

::first-line 匹配文字塊的首行

::first-letter 選擇文字塊的首字母 :

:before 與 ::after ——使用 contnet 屬性生成額外的內容並插入在標記中:

偽類選擇器

e f:nth-child(n):該選擇器定位元素e的第n個子元素的元素f:

div.class p:nth-child(3) //class=」class」的div容器裡的第3個元素p,如果第3個子元素不是p,此樣式將失效

e f:nth-last-child(n):該選擇器定位元素e的倒數第n個子元素的元素f;

e:nth-of-type(n):該選擇器定位元素e的第n個指定型別子元素;

e:nth-lash-of-type(n):該選擇器定位元素e的導數第n個指定型別子元素:

.class p:nth-child(2) 與 .class p:nth-of-type(2) 的區別在於,如果.class裡的第2個子元素不是p元素時,.class p:nth-child(2) 的樣式將無效,而.class p:nth-of-type(2) 將定位在 .class 裡的第2個p元素

nth-child(n)、nth-last-child(n)、nth-of-type(n)、nth-last-of-type(n),這其中的 n 可以使用數字靜態式,比如 .nth-child(2n+1) 將匹配第1、3、5…個元素

e:first-child:父元素的第乙個子元素e,與:nth-child(1)相同;

e:last-child:父元素的倒數第乙個子元素e;

e:first-of-type:與:nth-of-type(1)相同;

e:last-of-type:與:nth-last-of-type(1)相同;

e:only-child:父元素中唯一的子元素e;

e:only-of-type:父元素中唯一具有該型別的元素e;

e:empty:沒有子元素的元素,沒有子元素包括文字節點;

e:lang(en):具有使用雙字母縮寫(en)表示的語言的元素;

e:not(exception):該選擇器將選擇與括號內的選擇器不匹配的元素:

:root —— root 選擇頁面的根元素

p:not(.item3)——not 排除某個或者某類元素——not(被排除的元素)

div:empty——指定的前面選擇器所選的元素內容為空則生效。

–input的偽類選擇器–

input:focus——當輸入框獲取焦點的時候應用此樣式

input:enabled——起用狀態下的樣式

input:disabled——禁用狀態下的樣式

input:read-only——在輸入框為唯讀狀態下的樣式

input:read-write——輸入框為可讀可寫狀態下的樣式

input:checked——checked 表示選中狀態下checkbox 的樣式

input:indeterminate + label——checkbox 半選擇狀態下的樣式

indeterminate——需要配合js來使用(以下是js**)

var checkbox = document.queryselector("#box6>input");

//半選擇狀態 只能用js來設定

checkbox.indeterminate = true;

偽類和偽元素區別

偽類是向某些選擇器新增特殊的效果,可以通過新增乙個類來達到,用乙個冒號來表示。pseudo classes 如 first child,link visiter hover active focus lang 偽類類似於class,表示一些元素的狀態,但無需標識的分類。偽元素是將特殊的效果新增到某些...

偽類和偽元素的區別

個人的關注點可能主要集中在js方向上,但是本著css也不能丟掉的原則,所以上網查了些css方面的困惑點,這一篇的主題是 偽類和偽元素。偽類和偽元素的根本區別在於 它們是否創造了新的元素 抽象 從我們模仿其意義的角度來看,如果需要新增新元素加以標識的,就是偽元素,反之,如果只需要在既有元素上新增類別的...

偽類和偽元素的區別

在css1和css2中對偽類和偽元素的定義沒有太大區別,都是 開頭。css3定義的比較明顯。偽類 用於選擇dom樹上元素不同的狀態 visited link 或者是dom上無法用簡單選擇器選擇的元素 first child 元素本身 偽類用乙個 偽類 active 選擇正在被啟用的元素 1 hove...