搜尋
首頁web前端css教學深入理解CSS偽類選擇器的知識(程式碼範例)

這篇文章帶給大家的內容是關於深入理解CSS偽類選擇器的知識(程式碼範例),有一定的參考價值,有需要的朋友可以參考一下,希望對你有幫助。

前言

過去零星地了解並使用:link::aftercontent等偽類、偽元素選擇器,最近看書時發現這方面有所欠缺,於是決定稍微深入學習一下,以下為偽類部分的整理。

偽類

 偽類選擇器實質上是讓設計師可以依照元素特定的狀態,設定不同的視覺效果。具體有:link:visited:hover#、:active:focus :focus-within:target:root:checked

HTMLAnchorElement的4大經典偽類別

  1. #:link,用於設定連結初始狀態時的樣式;

  2. :visited,用來設定連結被點選後的樣式;

  3. :hover,用於設定滑鼠懸停在連結上方時,連結的樣式;

  4. :active,用來設定滑鼠按鍵按下,但未釋放時,連結的樣式。

 想必各位都跟我一樣,最初接觸到的就是上述4個偽類了吧? !而且還死機硬背它們的設定順序(LVAH)吧,哈哈。

設定目前目標元素樣式

 還記得URL中的井號嗎?從井號(#)開始到URL的末端稱為URL的hash或fragment,用來定位頁面內某項資源。假設現在頁面存在<h3 id="Target">Target</h3>的元素,那麼只要網址列輸入#title瀏覽器就會不斷滾動(捲動不一定存在補間動效)直到元素h3#title位於可視區的特定位置。 (注意:請不要和UI Routing混為一談)
 而上述這個被定位的頁面資源,被稱為目標元素當前活動元素!可透過:target設定其樣式。
 相容性:IE9開始支援。

範例:

// 当前URL为http://foo.com#1
:target {
    color: red;
}
.title{
    color: blue;
    
    &:target{
        border: solid 1px red;
    }
}

.title{I'm not target element.}
.title#1{Yes, I'm.}

設定元素取得焦點時的樣式

:focus用於設定元素處於focus狀態下的樣式。
相容性:IE8開始支援。
那麼哪些元素支援focus狀態呢?那要先弄清楚透過哪些操作可能實現focus。
它們分別是:

  1. 滑鼠點擊;

  2. #Tab鍵;

  3. ##透過JavaScript的

    HTMLElement.prototype.focus()方法。

那麼傳統上支援focus狀態的元素必定是

abuttoninputselecttextareas.而HTML5中增加當元素設定了
contenteditabletabindex屬性時,該元素支援focus狀態。 也就是符合以下選擇器的元素都支援focus狀態。

a,button,input,select,textarea,[contenteditable],[tabindex]
注意:若

tabindex屬性值小於0,則無法透過Tab鍵取得焦點。但可以透過滑鼠點擊 或 腳本時元素來獲得焦點。

JS取得目前得到焦點的元素

/* 
 * 加载完成时默认返回body
 * 若某元素获得焦点时,则返回该元素
 */
document.activeElement :: HTMLElement

另外還有一個讓人誤會的屬性

// 用于检测文档是否得到焦点,即用户是否正在与页面交互
// 页面仅仅位于屏幕可视区域,而用户没有与之交互时返回false。
document.hasFocus :: Void -> Boolean
設定子元素獲得焦點時,該元素的樣式

:focus-within,用於設定當子元素處於focus狀態時,該元素的樣式。 相容性:Chrome63開始支援。

範例:二次確認密碼時,密碼框高亮

.form-control{
  &:focus-within > input{
    &:focus {
      border: solid 1px skyblue;
    }
    
    &:not(:focus){
      border: solid 1px orange;
    }
  }
}

.form-control>input.pwd[type=password]+input.confirm-pwd[type=password]
其他

  1. #:root,用於設定元素的樣式,從IE9開始支援。

  2. :checked,用於設定單選和複選控制項被選取的樣式,從IE9開始支援。結合偽元素::beforecontent屬性可以實現靈活且有效率的自訂單選和複選控制項。

  3. :empty,用來設定沒有子節點的元素的樣式。 p{ }為存在TEXT_NODE子節點的元素,而p{}則為沒有子節點的元素。

  4. :not,作為謂語表達取反的語意。

  5. :placeholder-shown,用來設定元素placeholder顯示時的樣式。

相關推薦:

CSS的偽類別選擇器

關於CSS偽類別選擇器_html/css_WEB-ITnose

以上是深入理解CSS偽類選擇器的知識(程式碼範例)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
光標的下一個CSS樣式光標的下一個CSS樣式Apr 23, 2025 am 11:04 AM

具有CSS的自定義光標很棒,但是我們可以將JavaScript提升到一個新的水平。使用JavaScript,我們可以在光標狀態之間過渡,將動態文本放置在光標中,應用複雜的動畫並應用過濾器。

世界碰撞:使用樣式查詢的鑰匙幀碰撞檢測世界碰撞:使用樣式查詢的鑰匙幀碰撞檢測Apr 23, 2025 am 10:42 AM

互動CSS動畫和元素相互啟動的元素在2025年似乎更合理。雖然不需要在CSS中實施乒乓球,但CSS的靈活性和力量的增加,可以懷疑Lee&Aver Lee有一天會成為一種

使用CSS背景過濾器進行UI效果使用CSS背景過濾器進行UI效果Apr 23, 2025 am 10:20 AM

有關利用CSS背景濾波器屬性來樣式用戶界面的提示和技巧。您將學習如何在多個元素之間進行背景過濾器,並將它們與其他CSS圖形效果集成在一起以創建精心設計的設計。

微笑嗎?微笑嗎?Apr 23, 2025 am 09:57 AM

好吧,事實證明,SVG的內置動畫功能從未按計劃進行棄用。當然,CSS和JavaScript具有承載負載的能力,但是很高興知道Smil並沒有像以前那樣死在水中

'漂亮”在情人眼中'漂亮”在情人眼中Apr 23, 2025 am 09:40 AM

是的,讓#039;跳上文字包裝:Safari Technology Preview In Pretty Landing!但是請注意,它與在鉻瀏覽器中的工作方式不同。

CSS-tricks編年史XLIIICSS-tricks編年史XLIIIApr 23, 2025 am 09:35 AM

此CSS-tricks更新了,重點介紹了年鑑,最近的播客出現,新的CSS計數器指南以及增加了幾位新作者,這些新作者貢獻了有價值的內容。

tailwind的@Apply功能比聽起來更好tailwind的@Apply功能比聽起來更好Apr 23, 2025 am 09:23 AM

在大多數情況下,人們展示了@Apply的@Apply功能,其中包括Tailwind的單個property實用程序之一(會改變單個CSS聲明)。當以這種方式展示時,@Apply聽起來似乎很有希望。如此明顯

感覺就像我沒有釋放:走向理智的旅程感覺就像我沒有釋放:走向理智的旅程Apr 23, 2025 am 09:19 AM

像白痴一樣部署的部署歸結為您部署的工具與降低複雜性與添加的複雜性之間的獎勵之間的不匹配。

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脫衣器

Video Face Swap

Video Face Swap

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

熱工具

SublimeText3 英文版

SublimeText3 英文版

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

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強大的PHP整合開發環境

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

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

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

將Eclipse與SAP NetWeaver應用伺服器整合。

Atom編輯器mac版下載

Atom編輯器mac版下載

最受歡迎的的開源編輯器