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
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...