首頁 web前端 css教學 CSS中的偽類與偽元素及二者間的差異說明

CSS中的偽類與偽元素及二者間的差異說明

Mar 13, 2017 pm 05:40 PM
css

這篇文章主要介紹了詳解CSS中的偽類與偽元素及二者間的區別,實際上CSS3中規範了一種簡單粗暴的方法,即偽類前用一個冒號表示,而偽元素前用兩個冒號表示,這樣就不容易混淆了,需要的朋友可以參考下

CSS偽類的概念及作用
CSS偽類(Pseudoclasses)是選擇符的螺栓,用來指定一個或與其相關的選擇符的狀態。它們的形式是selector:pseudoclass{property:value;},簡單地用一個半角英文冒號(:)來隔開選擇符和偽類。
CSS很多的建議並沒有得到瀏覽器的支持,但有四個可以安全使用的用在連線上的CSS偽類。
1.link用在為存取的連線上。
2.visited用在已經造訪過的連線。
3.hover用於滑鼠遊標置於其上的連接。
4.active用來取得焦點(例如,被點擊)的連線上。
例如:

ExampleSourceCode   
a:link{     
color:red
}     
a:visited{     
color:green
}     
a:hover{     
color:blue
}     
a:active{     
color:orange     
}
登入後複製


注意:
儘管CSS給予你繞過的控制權,用不同的顏色表示已經訪問過的連接是一個很好的習慣,因為很多用戶還是這樣預期的。 CSS偽類(除了hover)不常用,恐怕也沒有過去常用。因此,它沒有過去那樣有用了。但如果你能收集使用者的意見,你會發現應該使用它。
傳統上,連接文字是藍色的,已存取的連接是紫色的。也許,這是最有效、最有用的顏色。然而,伴隨著CSS的廣泛發展,這種顏色不會是平常的了,使用者也不再假設連接必須是藍色或紫色的。
你應該也可以在除了連接的其他元素上使用hover偽類別。不幸的是,InternetExplore並不支援。這真是一個極大的煩惱。


偽元素
其實來說,CSS 中的偽元素在HTML上是不存在的,使用的時機通常都是針對某樣元素特殊處理時才會用到
常用的pseudo-element:
::first-line
可以指定p 元素第一行的樣式
::first-letter
可以指定p 元素第一個字的樣式
::selection
定義使用者反白後的效果
::before
在元素之前插入內容
::after
在元素之後插入內容
範例HTML

<p>
    臣亮言,先帝創業未半<br>

    每天,天剛亮時,我母親便把我喊醒,叫我披衣坐起。我從不知道她醒來坐了多久了。   
</p>
登入後複製


first-line和 first-letter

/* 第一行樣式 */
p::first-line {   
    color: red;   
}   
/* 開頭第一個字樣式 */
p::first-letter {   
    font-size: 30px;   
}   
selection   
// 反白後的效果   
p::selection {   
    background: red;   
    color: #FFF;   
}   
// Firefox   
p::-moz-selection {   
    background: red;   
    color: #FFF;   
}
登入後複製

偽類和偽元素的區別:
首先,閱讀w3c 對兩者的定義:
1.CSS 偽類用於為某些選擇器添加特殊的效果。
2.CSS 偽元素用於將特殊的效果新增至某些選擇器。
可以明確兩點,第一兩者都與選擇器相關,第二就是添加一些「特殊」的效果。這裡特殊指的是兩者都描述了其他 css 無法描述的東西。
偽類別類型

CSS中的偽類與偽元素及二者間的差異說明

偽元素種類
CSS中的偽類與偽元素及二者間的差異說明

#區別
這裡用偽類別:first- child 和偽元素:first-letter 來進行比較。

p>i:first-child {color: red}   
<p>   
    <i>first</i>   
    <i>second</i>   
</p>
登入後複製


CSS中的偽類與偽元素及二者間的差異說明//偽類:first-child 新增樣式到第一個子元素
如果我們不使用偽類,而希望達到上述效果,可以這樣做:

.first-child {color: red}   
<p>   
    <i class="first-child">first</i>   
    <i>second</i>   
</p>
登入後複製


即我們為第一個子元素新增一個類,然後定義這個類別的樣式。那我們接著看看為元素:

p:first-letter {color: red}   
<p>I am stephen lee.</p>
登入後複製


CSS中的偽類與偽元素及二者間的差異說明//偽元素:first-letter 新增樣式到第一個字母
那麼如果我們不使用偽元素,要達到上述效果,該怎麼做呢?

.first-letter {color: red}   
<p><span class=&#39;first-letter&#39;>I</span> am stephen lee.</p>
登入後複製


即我們為第一個字母加上一個 span,然後為 span 增加樣式。
兩者的差別已經出來了。那就是:

偽類的效果可以透過添加一個實際的類別來達到,而偽元素的效果則需要透過添加一個實際的元素才能達到,這也是為什麼他們一個稱為偽類,一個稱為偽元素的原因。


总结
伪元素和伪类之所以这么容易混淆,是因为他们的效果类似而且写法相仿,但实际上 css3 为了区分两者,已经明确规定了伪类用一个冒号来表示,而伪元素则用两个冒号来表示。

:Pseudo-classes   
::Pseudo-elements
登入後複製


但因为兼容性的问题,所以现在大部分还是统一的单冒号,但是抛开兼容性的问题,我们在书写时应该尽可能养成好习惯,区分两者。

以上是CSS中的偽類與偽元素及二者間的差異說明的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

vue中怎麼用bootstrap vue中怎麼用bootstrap Apr 07, 2025 pm 11:33 PM

在 Vue.js 中使用 Bootstrap 分為五個步驟:安裝 Bootstrap。在 main.js 中導入 Bootstrap。直接在模板中使用 Bootstrap 組件。可選:自定義樣式。可選:使用插件。

HTML,CSS和JavaScript的角色:核心職責 HTML,CSS和JavaScript的角色:核心職責 Apr 08, 2025 pm 07:05 PM

HTML定義網頁結構,CSS負責樣式和佈局,JavaScript賦予動態交互。三者在網頁開發中各司其職,共同構建豐富多彩的網站。

了解HTML,CSS和JavaScript:初學者指南 了解HTML,CSS和JavaScript:初學者指南 Apr 12, 2025 am 12:02 AM

WebDevelovermentReliesonHtml,CSS和JavaScript:1)HTMLStructuresContent,2)CSSStyleSIT和3)JavaScriptAddSstractivity,形成thebasisofmodernWebemodernWebExexperiences。

bootstrap怎麼設置框架 bootstrap怎麼設置框架 Apr 07, 2025 pm 03:27 PM

要設置 Bootstrap 框架,需要按照以下步驟:1. 通過 CDN 引用 Bootstrap 文件;2. 下載文件並將其託管在自己的服務器上;3. 在 HTML 中包含 Bootstrap 文件;4. 根據需要編譯 Sass/Less;5. 導入定製文件(可選)。設置完成後,即可使用 Bootstrap 的網格系統、組件和样式創建響應式網站和應用程序。

bootstrap怎麼寫分割線 bootstrap怎麼寫分割線 Apr 07, 2025 pm 03:12 PM

創建 Bootstrap 分割線有兩種方法:使用 標籤,可創建水平分割線。使用 CSS border 屬性,可創建自定義樣式的分割線。

bootstrap怎麼插入圖片 bootstrap怎麼插入圖片 Apr 07, 2025 pm 03:30 PM

在 Bootstrap 中插入圖片有以下幾種方法:直接插入圖片,使用 HTML 的 img 標籤。使用 Bootstrap 圖像組件,可以提供響應式圖片和更多樣式。設置圖片大小,使用 img-fluid 類可以使圖片自適應。設置邊框,使用 img-bordered 類。設置圓角,使用 img-rounded 類。設置陰影,使用 shadow 類。調整圖片大小和位置,使用 CSS 樣式。使用背景圖片,使用 background-image CSS 屬性。

bootstrap按鈕怎麼用 bootstrap按鈕怎麼用 Apr 07, 2025 pm 03:09 PM

如何使用 Bootstrap 按鈕?引入 Bootstrap CSS創建按鈕元素並添加 Bootstrap 按鈕類添加按鈕文本

bootstrap怎麼調整大小 bootstrap怎麼調整大小 Apr 07, 2025 pm 03:18 PM

要調整 Bootstrap 中元素大小,可以使用尺寸類,具體包括:調整寬度:.col-、.w-、.mw-調整高度:.h-、.min-h-、.max-h-

See all articles