搜尋
首頁web前端css教學CSS偽類和偽元素的區別
CSS偽類和偽元素的區別Mar 31, 2017 am 11:06 AM
css

偽類別和偽元素皆獨立於文件結構。它們取得元素的途徑也不是基於id、class屬性這些基礎的元素特徵,而是在處於特殊狀態的元素(偽類),或是元素中特別的內容(偽元素)。差異總結如下:

CSS伪类 (Pseudo-classes):用于向某些选择器添加特殊的效果,即在元素当前静态样式的基础上添加特殊效果(一般都是动态效果),所以一个元素达到一个特定状态时,它可能得到一个伪类的样式;当状态改变时,它又会失去这个样式。
屬性 #描述
:active 為已啟動的元素加入樣式
:focus 為擁有鍵盤輸入焦點的元素新增樣式
:hover 當滑鼠懸浮在元素上方時,向元素新增樣式
:link 向未被存取的連結新增樣式
#:visited
:visited
:visited 已被造訪的連結新增樣式

:first-child#為元素的第一個子元素新增樣式

:lang用於為某些選擇器設定特殊效果,是對元素中的特定內容進行設定和操作,。
為具有指定lang屬性的元素新增樣式
备注:在 CSS 定义中,同一个元素的 :hover 必须位于 :link、:visited 之后才能生效,:active 必须位于 :hover 之后才能生效。
 css偽元素 (Pseudo-elements):
操作層次比偽類更深,故動態性比偽類要差
屬性 描述
:first-letter 在文字的第一個字母中加入特殊樣式
:first-line 在文字的首行中加入特殊樣式

:before<a href="http://www.php.cn/wiki/1550.html" target="_blank"></a>在元素之前加入內容

  • ##:after

    在元素之後加入內容

  •  

    #w3c
 對兩者的定義:

##CSS 偽類別用於為某些選擇器新增特殊的效果。

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

區別

這裡用偽類 :first-child
 和偽元素 

:first-letter

 來比較。 <pre class="brush:php;toolbar:false">p&gt;i:first-child {color: red}&lt;p&gt;     &lt;i&gt;first&lt;/i&gt;     &lt;i&gt;second&lt;/i&gt;&lt;/p&gt;</pre> //偽類 :first-child 添加樣式到第一個子元素
如果我們不使用偽類,而希望達到上述效果,可以這樣做:

.first-child {color: red}<p>
    <i>first</i>
    <i>second</i></p>
即我們為第一個子元素新增一個類,然後定義這個類別的樣式。那我們接著看看偽元素:

p::first-letter {color: red}<p>I am stephen lee.</p>
//偽元素 ::first-letter 添加樣式到第一個字母
那麼如果我們不使用偽元素,要達到上述效果,該怎麼做呢?

.first-letter {color: red}<p><span>I</span> am stephen lee.</p>

即我們為第一個字母加上一個 

span,然後為 span

 增加樣式。

兩者的差別已經出來了。那就是:

#########偽類的效果可以透過添加一個實際的類別來達到,而偽元素的效果則需要透過添加一個實際的元素才能達到,這也是為什麼他們一個稱為偽類,一個稱為偽元素的原因。 ############總結######偽元素和偽類之所以這麼容易混淆,是因為他們的效果類似而且寫法相仿,但實際上 ###css3###為了區分兩者,已經明確規定了偽類用一個冒號來表示,而偽元素則用兩個冒號來表示。 ###
:Pseudo-classes
::Pseudo-elements
###但因為相容性的問題,所以現在大部分還是統一的單冒號,但是拋開相容性的問題,我們在書寫時應該盡可能養成好習慣,區分兩者。 ###

以上是CSS偽類和偽元素的區別的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
利用CSS怎么创建渐变色边框?5种方法分享利用CSS怎么创建渐变色边框?5种方法分享Oct 13, 2021 am 10:19 AM

利用CSS怎么创建渐变色边框?下面本篇文章给大家分享CSS实现渐变色边框的5种方法,希望对大家有所帮助!

css ul标签怎么去掉圆点css ul标签怎么去掉圆点Apr 25, 2022 pm 05:55 PM

在css中,可用list-style-type属性来去掉ul的圆点标记,语法为“ul{list-style-type:none}”;list-style-type属性可设置列表项标记的类型,当值为“none”可不定义标记,也可去除已有标记。

css与xml的区别是什么css与xml的区别是什么Apr 24, 2022 am 11:21 AM

区别是:css是层叠样式表单,是将样式信息与网页内容分离的一种标记语言,主要用来设计网页的样式,还可以对网页各元素进行格式化;xml是可扩展标记语言,是一种数据存储语言,用于使用简单的标记描述数据,将文档分成许多部件并对这些部件加以标识。

css3怎么实现鼠标隐藏效果css3怎么实现鼠标隐藏效果Apr 27, 2022 pm 05:20 PM

在css中,可以利用cursor属性实现鼠标隐藏效果,该属性用于定义鼠标指针放在一个元素边界范围内时所用的光标形状,当属性值设置为none时,就可以实现鼠标隐藏效果,语法为“元素{cursor:none}”。

css怎么实现英文小写转为大写css怎么实现英文小写转为大写Apr 25, 2022 pm 06:35 PM

转换方法:1、给英文元素添加“text-transform: uppercase;”样式,可将所有的英文字母都变成大写;2、给英文元素添加“text-transform:capitalize;”样式,可将英文文本中每个单词的首字母变为大写。

css怎么设置i不是斜体css怎么设置i不是斜体Apr 20, 2022 am 10:36 AM

在css中,可以利用“font-style”属性设置i元素不是斜体样式,该属性用于指定文本的字体样式,当属性值设置为“normal”时,会显示元素的标准字体样式,语法为“i元素{font-style:normal}”。

rtl在css是什么意思rtl在css是什么意思Apr 24, 2022 am 11:07 AM

在css中,rtl是“right-to-left”的缩写,是从右往左的意思,指的是内联内容从右往左依次排布,是direction属性的一个属性值;该属性规定了文本的方向和书写方向,语法为“元素{direction:rtl}”。

怎么设置rotate在css3的旋转中心点怎么设置rotate在css3的旋转中心点Apr 24, 2022 am 10:50 AM

在css3中,可以用“transform-origin”属性设置rotate的旋转中心点,该属性可更改转换元素的位置,第一个参数设置x轴的旋转位置,第二个参数设置y轴旋转位置,语法为“transform-origin:x轴位置 y轴位置”。

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
3 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

MantisBT

MantisBT

Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

SecLists

SecLists

SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。

PhpStorm Mac 版本

PhpStorm Mac 版本

最新(2018.2.1 )專業的PHP整合開發工具

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境