WEB前端第十一課——CSS選擇器

来源:https://www.cnblogs.com/husa/archive/2020/07/22/13357421.html
-Advertisement-
Play Games

1.屬性選擇器 通過HTML的屬性及屬性值來選擇元素,如<p att= "val" >文本內容</p>,class 即是<p>元素的屬性,val 則是 att 的屬性值 屬性選擇器的書寫格式:元素[屬性名稱 = "屬性值"] {color: red; },等號只是其中一種關係符號 屬性選擇器類型: ...


1.屬性選擇器

  通過HTML的屬性及屬性值來選擇元素,如<p att= "val" >文本內容</p>,class 即是<p>元素的屬性,val 則是 att 的屬性值

  屬性選擇器的書寫格式:元素[屬性名稱 = "屬性值"] {color: red; },等號只是其中一種關係符號

  屬性選擇器類型:

         ① E [att ]     選擇具有 att屬性的 E元素

         ② E [att = "val" ]  選擇具有 att屬性且屬性值等於 val的 E元素

         ③ E [att ~= "val" ]   選擇具有 att屬性,且屬性值列表包含 val屬性值的 E元素

                    如<p class= "GP CP LP" >文本內容 </p>,屬性選擇器:p [class $= "CP" ] {color: yellow; }

         ④ E [att ^= "val" ]   選擇具有 att屬性,且屬性值或列表以 val開頭的 E元素

                    如<p class= "GP CP LP" >文本內容 </p>,屬性選擇器:p [class ^= "GP" ] {color: pink; }

         ⑤ E [att $= "val" ]   選擇具有 att屬性,且屬性值或列表以 val結尾的 E元素

                    如<p class= "GP CP LP" >文本內容 </p>,屬性選擇器:p [class $= "LP" ] {color: red; }

         ⑥ E [att *= "val" ]    選擇具有 att屬性,且屬性值中包含 val字元串的 E元素

                    如<a href= "mail.163.com" >網易郵箱 </a>,屬性選擇器:a [href *= "163" ] {color: orange; }

         ⑦ E [att |= "val" ]    選擇具有 att屬性,且屬性值以 val開頭 同時使用“分隔符號連接”的 E元素

                    如 <div class= "cn-BeiJing">文本內容 </div>,屬性選擇器:div [class |= "cn" ] {color: green; }

2.鏈接偽類選擇器

  偽類通過冒號來定義,用於設定元素的狀態變化,使元素看上去更加動態

  ① E:link,主要用於設置超鏈接 <a>在未被訪問前的樣式(特指 a標簽)

    書寫格式:a:link {color: black; },未訪問是<a>的顏色,設置別的元素沒有效果

  ② E:visited,主要設置超鏈接 <a>在鏈接地址已被訪問過時的樣式(特指 a標簽)

    書寫格式:a:visited {color: blue; }

  ③ E:hover,設置滑鼠懸停在元素上時的樣式,不限於 <a>標簽

    書寫格式:p:hover {color: red; }

  ④ E:active,設置點擊滑鼠時元素的樣式

    書寫格式:div:active {color: white; }

  對同一個元素使用上述四種選擇器時,設置順序必須按照上述次序

3.結構性偽類選擇器

  ① E:not (s選擇器),匹配不含有 s選擇器的 E元素,括弧中不需要加引號

    書寫格式:div:not ( .s1) {color: blue; },選擇類名中不包含有 s1的 div元素

  ② E:first-child,匹配父元素的第一個子元素E

    要使該選擇器生效,E元素必須是某個元素的第一個子元素,一般的元素都是<body>的子元素,所以通常都可以使用該偽類,而body不是子元素,所以不可以使用

  語法實例:

 

 

  ③ E:last-child,匹配父元素的最後一個子元素E,用法與“first-child”類似

  ④ E:only-child,E元素是唯一的子元素時被匹配

  ⑤ E:empty,匹配沒有任何子元素(並且不包括text節點)的E元素,即空的E元素

  ⑥ E:checked,匹配界面上處於選中狀態的E元素,多用於input type 為 radio 與 CheckBox 時

  測試代碼:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>CSS選擇器</title>
    <style>
        /*ul:first-child {color: blue}*/
        /*li:first-child {color: darkorange}*/
        
        input:checked+span {color: red}
    </style>
</head>
<body>
<!--    <ul>-->
<!--        <h3>標題內容</h3>-->
<!--        <li>列表行1</li>-->
<!--        <li>列表行2</li>-->
<!--        <li>列表行3</li>-->
<!--    </ul>-->
<!--    <ul>-->
<!--        <li>列表行A</li>-->
<!--        <li>列表行B</li>-->
<!--        <li>列表行C</li>-->
<!--    </ul>-->

    <input type="radio" name="sex" checked="checked"> <span> male</span>
    <input type="radio" name="sex" > <span>female</span>
</body>
</html>

 

  ⑦ E:nth-child(),選中第幾個子元素E

  測試代碼:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>CSS選擇器</title>
    <style>
        p:nth-child(2) {color: red}
    /*    (n)中的n值可以為數字、xn(x的倍數)、odd(奇數)、even(偶數)*/
    </style>
</head>
<body>
    <p>第一段內容</p>
    <p>第二段內容</p>
    <p>第三段內容</p>
    <p>第四段內容</p>
    <p>第五段內容</p>
</body>
</html>

4.偽對象選擇器

  偽對象也叫偽元素,在過去的版本中,偽類和偽對象書寫時前面都只加一個冒號,實際上,偽對象前面應該使用兩個冒號,而現在為了相容舊的書寫方式,用一個冒號引導偽元素也是能夠被解析的

  偽類一般反應無法在CSS中輕鬆或可靠檢測到的某個元素的狀態或者屬性;

  偽元素表示DOM外部的某種文檔結構

  偽類更多的是定義元素的狀態,而偽元素則是改變文檔結構,在結構外增加一個沒有實際存在的元素(偽元素)

  常用的偽元素:

    ① E:before 或 E::before

      before選擇器是在被選元素E的“內容”前面插入內容,通常和 content屬性一起使用

      書寫格式:p::before {content: "在p元素的內容前插入這段話"; color: blue; }

    ② E:after 或 E::after

      after選擇器是在被選元素E的“內容”後面插入內容,和 content屬性配合使用

      書寫格式:p::after {content: "在p元素的內容後面插入這段話", color: green; }

5.選擇器的優先順序

  優先順序數值比較,以數值大的為準

  style=1000,id=100,class=10,element=1,其他組合選擇器以此為計算依據進行數值比較

  即,style樣式>ID選擇器>class選擇器>元素選擇器

  當優先順序相同時,寫在後面的樣式生效

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 一 location規則 1.1 location語法 基本語法: location [=|~|~*|^~]/uri/{...} 修飾符釋義: 1 = #表示精確嚴格匹配,只有請求的url路徑與後面的字元串完全相等時,才會命中。同時若這個查詢匹配,將停止搜索並立即處理此請求。 2 ~ #表示該規則是 ...
  • Postgresql的Extensions能夠延伸,更改和推進Postgres的行為。怎麼樣?通過hooking到底層的Postgres API hooks。開源的Citus資料庫水平擴展了Postgres,它本身就是一個PostgreSQL擴展,它允許Citus保持最新的Postgres版本,而不 ...
  • #1、cmd登錄mysql命令 #(1)需要回車輸入密碼 C:\Users\Administrator>mysql -h localhost -P3306 -u root -p Enter password: ******** #(2)註意-p和密碼之間沒有空格,-P代表埠 -p代表密碼 C:\U ...
  • 本文更新於2019-06-29,使用MySQL 5.7,操作系統為Deepin 15.4。 應用可使用PrepareStatement + Bind-Variable來防止SQL註入。 已知的非法符號有: ( ) < > [ ] /* */ -- # ; = ' + 空格 % ...
  • 最近總發現用戶表一些數據被刪了,找不到原因,後面通過創建觸發器來排查,當有操作x_yonghu表時,記錄下來插入日誌表中。 create or replace trigger trg_x_yonghu_log_aft_modify after update OF shouji, zigezhengh ...
  • #資料庫對應EFCore操作 #1,查某個id在某個集合被包含的數據 例如: 查 Id 在ids里的結合 //實現的sql是實體Id in ids,也就是ids跟Id 兩個集合的交集 var _ainfcfgs = await _ainfcfgServices.GetListAsync(x => i ...
  • 對於sql優化,除了索引之外,執行計劃和統計信息是無法繞開的一個話題,如果sql優化(所有的RDBMS)脫離了統計信息的話就少了一個為什麼的過程,味道就感覺少了一大半。剛接觸Postgresql,粗淺地學習總結一下Postgresql相關的統計信息。 postgresql 進程模型 開始之前,有必要 ...
  • 一、驗證表單 封裝一個函數用於驗證手機號 /** * @param {String}eleId * @param {Object}reg */ function checkInput(eleId,reg) { var ele = document.getElementById(eleId); ele ...
一周排行
    -Advertisement-
    Play Games
  • GoF之工廠模式 @目錄GoF之工廠模式每博一文案1. 簡單說明“23種設計模式”1.2 介紹工廠模式的三種形態1.3 簡單工廠模式(靜態工廠模式)1.3.1 簡單工廠模式的優缺點:1.4 工廠方法模式1.4.1 工廠方法模式的優缺點:1.5 抽象工廠模式1.6 抽象工廠模式的優缺點:2. 總結:3 ...
  • 新改進提供的Taurus Rpc 功能,可以簡化微服務間的調用,同時可以不用再手動輸出模塊名稱,或調用路徑,包括負載均衡,這一切,由框架實現並提供了。新的Taurus Rpc 功能,將使得服務間的調用,更加輕鬆、簡約、高效。 ...
  • 本章將和大家分享ES的數據同步方案和ES集群相關知識。廢話不多說,下麵我們直接進入主題。 一、ES數據同步 1、數據同步問題 Elasticsearch中的酒店數據來自於mysql資料庫,因此mysql數據發生改變時,Elasticsearch也必須跟著改變,這個就是Elasticsearch與my ...
  • 引言 在我們之前的文章中介紹過使用Bogus生成模擬測試數據,今天來講解一下功能更加強大自動生成測試數據的工具的庫"AutoFixture"。 什麼是AutoFixture? AutoFixture 是一個針對 .NET 的開源庫,旨在最大程度地減少單元測試中的“安排(Arrange)”階段,以提高 ...
  • 經過前面幾個部分學習,相信學過的同學已經能夠掌握 .NET Emit 這種中間語言,並能使得它來編寫一些應用,以提高程式的性能。隨著 IL 指令篇的結束,本系列也已經接近尾聲,在這接近結束的最後,會提供幾個可供直接使用的示例,以供大伙分析或使用在項目中。 ...
  • 當從不同來源導入Excel數據時,可能存在重覆的記錄。為了確保數據的準確性,通常需要刪除這些重覆的行。手動查找並刪除可能會非常耗費時間,而通過編程腳本則可以實現在短時間內處理大量數據。本文將提供一個使用C# 快速查找並刪除Excel重覆項的免費解決方案。 以下是實現步驟: 1. 首先安裝免費.NET ...
  • C++ 異常處理 C++ 異常處理機制允許程式在運行時處理錯誤或意外情況。它提供了捕獲和處理錯誤的一種結構化方式,使程式更加健壯和可靠。 異常處理的基本概念: 異常: 程式在運行時發生的錯誤或意外情況。 拋出異常: 使用 throw 關鍵字將異常傳遞給調用堆棧。 捕獲異常: 使用 try-catch ...
  • 優秀且經驗豐富的Java開發人員的特征之一是對API的廣泛瞭解,包括JDK和第三方庫。 我花了很多時間來學習API,尤其是在閱讀了Effective Java 3rd Edition之後 ,Joshua Bloch建議在Java 3rd Edition中使用現有的API進行開發,而不是為常見的東西編 ...
  • 框架 · 使用laravel框架,原因:tp的框架路由和orm沒有laravel好用 · 使用強制路由,方便介面多時,分多版本,分文件夾等操作 介面 · 介面開發註意欄位類型,欄位是int,查詢成功失敗都要返回int(對接java等強類型語言方便) · 查詢介面用GET、其他用POST 代碼 · 所 ...
  • 正文 下午找企業的人去鎮上做貸後。 車上聽同事跟那個司機對罵,火星子都快出來了。司機跟那同事更熟一些,連我在內一共就三個人,同事那一手指桑罵槐給我都聽愣了。司機也是老社會人了,馬上聽出來了,為那個無辜的企業經辦人辯護,實際上是為自己辯護。 “這個事情你不能怪企業。”“但他們總不能讓銀行的人全權負責, ...