偽類與偽元素的區(qū)別:
1.偽類本質(zhì)上是為了彌補常規(guī)CSS選擇器的不足,以便獲取到更多信息;
2.偽元素本質(zhì)上是創(chuàng)建了一個有內(nèi)容的虛擬容器;
3.CSS3中偽類和偽元素的語法不同;? ?偽類? :link? :hover? ? ? ? ?偽元素? ::before? ? ::after
4.可以同時使用多個偽類,而只能同時使用一個偽元素;
5.其中偽類和偽元素的根本區(qū)別在于:它們是否創(chuàng)造了新的元素,,? ?這個新創(chuàng)造的元素就叫? "偽無素"。
6.偽元素/偽對象:不存在在DOM文檔中,是虛擬的元素,是創(chuàng)建新元素。 這個新元素(偽元素)? 是某個元素的子元素,這個子元素雖然在邏輯上存在,但卻并不實際存在于文檔樹中.
7.偽類:存在DOM文檔中,(無標(biāo)簽,找不到,? 只有符合觸發(fā)條件時才能看到 ),? 邏輯上存在但在文檔樹中卻無須標(biāo)識的“幽靈”分類。
8. 因為偽類是類似于添加類所以可以是多個,而偽元素在一個選擇器中只能出現(xiàn)一次,并且只能出現(xiàn)在末尾?
偽類:用于向某些選擇器添加特殊的效果
偽元素:用于將特殊的效果添加到某些選擇器(標(biāo)簽
:after/::after和:before/::before的異同
相同點
1.都可以用來表示偽類對象,用來設(shè)置對象前的內(nèi)容
2.:before和::before寫法是等效的; :after和::after寫法是等效的
不同點
1.:before/:after是Css2的寫法,::before/::after是Css3的寫法
2.所以css2的要比css3的兼容好? ? ,,? :before/:after 的兼容性要比::before/::after好?,
不過在H5開發(fā)中建議使用::before/::after比較好
?注意:
1.偽對象要配合content屬性一起使用
2.偽對象不會出現(xiàn)在DOM中,所以不能通過js來操作,僅僅是在 CSS 渲染層加入
3.偽對象的特效通常要使用:hover偽類樣式來激活
