在我們學習前端開發的時候,有時總是會把css中的偽類和偽元素混淆在一起。那麼,在css中什麼是偽類?什麼又是偽元素?它們有什麼差別,又是怎麼使用的?本章我們就給大家好好聊聊css中的偽類和偽元素,介紹css中的偽類和偽元素的區別和基本用法。有一定的參考價值,有需要的朋友可以參考一下,希望對你有幫助。
一.偽類別(用於為某些選擇器添加特殊的效果)
偽類別存在的意義是為了透過選擇器找到那些不存在與DOM樹中的信息以及不能被常規CSS選擇器獲取到的信息。偽類別由一個冒號:開頭,冒號後面是偽類別的名稱和包含在圓括號中的可選參數。任何常規選擇器可以再任何位置使用偽類。偽類語法不區別大小寫。有些偽類的作用會互斥,有些偽類可以同時被同一個元素使用。並且,為了滿足使用者在操作DOM時產生的DOM結構改變,偽類也可以是動態的。
偽類別包含兩種:狀態偽類別和結構性偽類別。
狀態偽類別是基於元素目前狀態進行選擇的。在與使用者的互動過程中元素的狀態是動態變化的,因此該元素會根據其狀態呈現不同的樣式。當元素處於某狀態時會呈現該樣式,而進入另一狀態後,該樣式也會失去。常見的狀態偽類別主要包括:
:link 應用於未被存取過的連結;
:hover 套用於滑鼠懸停到的元素;
:active 應用於啟動的元素;
:visited 應用於被訪問過的鏈接,與:link互斥。
:focus 應用於擁有鍵盤輸入焦點的元素。
結構性偽類是css3新增選擇器,利用dom樹進行元素過濾,透過文件結構的互相關係來匹配元素,能夠減少class和id屬性的定義,使文檔結構更簡潔。常見的包括:
:first-child 選擇某個元素的第一個子元素;
:last-child 選擇某個元素的最後一個子元素;
:nth-child() 選擇某個元素的一個或多個特定的子元素;
:nth-last-child() 選擇某個元素的一個或多個特定的子元素,從這個元素的最後一個子元素開始算出;
:nth-of-type() 選擇指定的元素;
:nth-last-of-type() 選擇指定的元素,從元素的最後一個開始計算;
:first-of-type 選擇一個上級元素下的第一個同類子元素;
:last-of-type 選擇一個上級元素的最後一個同類子元素;
:only-child 所選的元素是它的父元素的唯一一個子元素;
:only-of-type 選擇一個元素是它的上級元素的唯一一個相同類型的子元素;
:empty 選擇的元素裡面沒有任何內容。
範例:
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>伪类</title> <style> .demo { width: 200px; height: 500px; margin: 50px auto; text-align: center; } .tab_content { height: 50px; background: red; margin-bottom: 10px; } #tab1:target, #tab2:target, #tab3:target { background:blue; line-height: 50px; } </style> </head> <body> <div class="demo"> <ul class="tabs"> <li><a href="#tab1">标签一</a></li> <li><a href="#tab2">标签二</a></li> <li><a href="#tab3">标签三</a></li> </ul> <div id="tab1" class="tab_content">tab1</div> <div id="tab2" class="tab_content">tab2</div> <div id="tab3" class="tab_content">tab3</div> </div> </body> </html>
效果圖1:
#效果圖2:
上面效果圖1與效果圖2的差別在於當我點選標籤一以後,tab1盒子的背景色由紅色變成藍色,字體顏色變成白;當點擊標籤二時,就會變成tab2發生變化,點選標籤三也一樣。
二:偽元素(用於將特殊的效果新增至某些選擇器)
偽元素是對元素中的特定內容進行操作,而不是描述狀態。它的操作層次比偽類更深一層,因此動態性比偽類低很多。實際上,偽元素就是選取某些元素前面或後面這種普通選擇器無法完成的工作。控制的內容和元素是相同的,但它本身是基於元素的抽象,並不存在於文件結構中!
常見的偽元素選擇器包括:
:first-letter 選擇元素文字的第一個字(母)。
:first-line 選擇元素文字的第一行。
:before 在元素內容的最前面新增內容。
:after 在元素內容的最後面新增內容。
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <style> .demo { width: 500px; height: 500px; margin: 50px auto; text-align: center; } .spliter::before, .spliter::after { content: ''; display: inline-block; border-top: 1px solid black; width: 200px; margin: 5px; } </style> </head> <body> <div class="demo"> <p class="spliter">分割线</p> </div> </body> </html>
效果圖:
以上是css如何分辨偽類和偽元素?偽類別和偽元素的各自的區別與用法(程式碼實例)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

伪元素失效了的原因:1、选择器问题;2、样式冲突;3、继承问题;4、语法错误;5、浏览器兼容性问题等。详细介绍:1、选择器问题,伪元素的选择器可能不正确,导致无法选择到目标元素;2、样式冲突,如果在CSS中存在样式冲突,可能会导致伪元素失效;3、继承问题,伪元素可能无法继承某些样式属性;4、语法错误,如果在CSS中存在语法错误,可能会导致伪元素失效;5、浏览器兼容性问题等等。

使用:nth-child(n+3)伪类选择器选择位置大于等于3的子元素的样式,具体代码示例如下:HTML代码:<divid="container"><divclass="item">第一个子元素</div><divclass="item"&

在之前的文章《css伪选择器学习之伪元素选择器解析》中,我们学习了伪元素选择器,而今天我们详细了解一下伪类选择器,希望对大家有所帮助!

实现CSS::placeholder伪元素选择器的多种应用场景,需要具体代码示例在Web开发中,CSS是一种常用的样式表语言,用于控制网页的布局和样式。而::placeholder伪元素选择器则是CSS3新增的一种选择器,用于修改输入框(包括文本输入框、密码输入框等)的占位符样式。下面将为大家介绍多种应用场景,并提供相应的代码示例。修改输入框占位符的颜色:

hover不是伪元素,是伪类。伪类用于选择元素的特定状态或行为,而伪元素则用于在元素的特定部分添加样式。因为:hover用于选择元素的特定状态,而不是在元素的特定部分添加样式,使用:hover伪类可以为元素的鼠标悬停状态添加样式,可以通过:hover伪类为链接添加悬停效果,当鼠标悬停在链接上时,链接的颜色、背景色等可以发生变化。

加上伪元素可以用来创建装饰性的效果、实现特定的布局效果、创建交互效果、修饰特定的元素状态和创建一些特殊效果等。详细介绍:1、创建装饰性的效果,通过设置:before或:after伪元素的内容属性和样式,可以在元素之前或之后插入图标、形状或其他装饰性元素,这样可以为网页添加更多的视觉吸引力和个性化;2、实现特定的布局效果,通过:before和:after伪元素可以创建等等。

使用:active伪类选择器实现鼠标点击效果的CSS样式CSS是一种层叠样式表语言,用于描述网页的表现和样式。:active是CSS中的一个伪类选择器,用于选择元素在鼠标点击时的状态。通过使用:active伪类选择器,我们可以为被点击的元素添加特定的样式,以达到鼠标点击效果的目的。下面是一个简单的示例代码,演示如何使用:active伪类选择器实现鼠标点击效果

伪元素是CSS中的一种特殊选择器,用于在元素的特定位置插入内容,它们被称为“伪元素”,是因为它们不是实际存在于HTML文档中的元素,而是通过CSS来创建的。它可以用来在元素的前面或后面插入内容,或者在元素的内部的特定位置插入内容,通常用于添加装饰性的效果或改变元素的外观。在CSS中,伪元素使用双冒号来表示,而不是单冒号,这是为了与伪类区分开来,伪类使用单冒号表示。


熱AI工具

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

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

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

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

MinGW - Minimalist GNU for Windows
這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

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

SublimeText3 英文版
推薦:為Win版本,支援程式碼提示!

禪工作室 13.0.1
強大的PHP整合開發環境