前端(四)css選擇器、css的三大特性

css選擇器、css的三大特性

文章目錄

  • css選擇器、css的三大特性
  • 一、css介紹
  • 二、css選擇器
    • 2.1 基本選擇器
    • 2.2 組合選擇器
    • 2.3 交集并集選擇器
    • 2.4序列選擇器
    • 2.5屬性選擇器
    • 2.6偽類選擇器
    • 2.7偽元素選擇器
  • 三、css三大特性
    • 3.1 繼承性
    • 3.2 層疊性
    • 3.3 優先級

一、css介紹

CSS全稱為Cascading Style Sheet層疊樣式表,是專門用來為HTML標簽添加樣式的。樣式指的是HTML標簽的顯示效果,比如換行、寬高、顏色等等。
在沒有css以前html的樣式都需要在每個標簽后面設置屬性,這樣非常的繁瑣,有了scc以后只需要完成統一的樣式設置就可以批量化的設置標簽的樣式。

css引入有四種方式:

#內行式
<p style="color:red">hello</p>#嵌入式
<head><style>p{color: red;}</style>
</head>
<body><p>hello</p>
</body>#導入式
#css文件中為p{color: red;}
<head><style>@import "css/mystyle.css";#或者@import url("css/mystyle.css");</style>
</head>
<body><p>hello</p>
</body>#外鏈式
#css文件中為p{color: red;}
<head><link rel="stylesheet" href="css/mystyle.css">
</head>
<body><p>hello</p>
</body>

導入式的方式存在一些問題:

  • 導入式是css2.1特有的,對于不兼容css2.1的瀏覽器來說就是無效的
  • 導入式會先加載頁面,再加載樣式,因此如果頁面內容很大,可能會先出現無樣式的頁面,隔一段時間再出現完整的頁面從而降低用戶體驗

在css中可以使用如下的方式進行注釋:

/*這是注釋*/

二、css選擇器

選擇器的目的是通過某種方式選中標簽從而完成對標簽樣式的修改。

2.1 基本選擇器

id選擇器以#開頭,p1為標簽的id名。但需要注意的是id名是唯一的,標簽的id名不能重復,因此id資源十分珍貴,一般留給js代碼使用,css樣式不推薦使用。另外id名由字母、數字、部分特殊字符組成,且不能以數字開頭,更不能是html關鍵字如p,a,img。

<!--id選擇器-->
<style>#p1{color: red;}
</style>

類選擇器以.開頭,p1為標簽的類名。類名的命名規則和id相同,一個標簽可以有多個類,例如<p class=“p1 p2”></p>。

<!--類選擇器-->
<style>.p1{color: red;}
</style>

標簽選擇器只需直接寫標簽名即可。標簽選擇器會選擇頁面所有相同類型的標簽,但是只有html的標簽才能作為標簽選擇器。

<!--標簽選擇器-->
<style>p{color: red;}
</style>

通配符選擇器可以選中頁面的所有標簽,需要注意的是通配符選擇器使用時會遍歷頁面的所有標簽,如果頁面內容非常大,會導致效率降低的問題。

<!--通配符選擇器-->
<style>*{color: red;}
</style>

2.2 組合選擇器

后代選擇器以空格作為間隔,空格前后可以是基本選擇器的任意一種。后代選擇器可以選中某個標簽的所有滿足要求的子標簽,如下代碼中后代選擇器選中的是類為p1的標簽中子標簽為p并且子標簽p中所有id為p2的子標簽。

<!--后代選擇器-->
<style>.p1 p #p2{color: red;}
</style>

相鄰選擇器以+號作為間隔,+前后可以是基本選擇器的任意一種。相鄰選擇器的作用是選擇某個標簽相鄰的下一個標簽,如下代碼中相鄰選擇器選中的是類為p1的標簽相鄰的下一個p標簽。

<!--相鄰選擇器-->
<style>.p1+p{color: red;}
</style>

下級選擇器以>作為間隔,>前后可以是基本選擇器的任意一種。下級選擇器可以選中某個標簽下一層嵌套中滿足要求的子標簽,如下代碼中下級選擇器選中的是類為p1的標簽中下一層嵌套中子標簽為p并且子標簽p中的下一層嵌套的所有id為p2的子標簽。

<!--下級選擇器-->
<style>.p1>p>#p2{color: red;}
</style>

向后選擇器以作為間隔,前后可以是基本選擇器的任意一種。向后選擇器可以選中某標簽后面所有滿足要求的標簽。如下代碼中向后選擇器選中的是類為p1的標簽后面所有的p標簽。

<!--向后選擇器-->
<style>.p1~p{color: red;}
</style>

2.3 交集并集選擇器

交集并集選擇器前后同樣可以為基本選擇器的任意一種。
交集選擇器將多個基本選擇器連在一起寫(不過有標簽選擇器的話,標簽選擇器要寫在前面),其功能是選中滿足多個條件的標簽,如下代碼中交集選擇器選中的是標簽為p且類為p1,p2的標簽。

<!--交集選擇器-->
<style>p.p1.p2{color: red;}
</style>

并集選擇器將多個基本選擇器用,分隔寫在一塊,其功能是選中多個標簽,如下代碼中并集選擇器選中的是所有p標簽或者類為p1的標簽或者類為p2的標簽。

<!--并集選擇器-->
<style>p,.p1,.p2{color: red;}
</style>

2.4序列選擇器

序列選擇器可以加在任何基本選擇器后面作用是給基本選擇器一個篩選條件。

<!--選中所有層級中第一個且為p的標簽-->
p:first-child
<!--選中所有層級中最后一個且為p的標簽-->
p:last-child
<!--選中所有層級中正數第n個且為p的標簽-->
p:nth-child(n)
<!--選中所有層級中倒數第n個且為p的標簽-->
p:nth-last-child(n)
<!--選中所有層級中的第一個p標簽-->
p:first-of-type
<!--選中所有層級中的最后一個p標簽-->
p:last-of-type
<!--選中所有層級中正數第n個p標簽-->
p:nth-of-type(n)
<!--選中所有層級中倒數第n個p標簽-->
p:nth-last-of-type(n)
<!--選中所有層級中只有一個標簽且為p-->
p:only-child
<!--選中所有層級中只有一個p標簽-->
:only-of-type

2.5屬性選擇器

屬性選擇器的地位相當于基本選擇器,可以代替上面選擇器中需要使用基本選擇器的位置。
屬性選擇器會把屬性中的內容作為字符串對其進行匹配,=表示完全匹配,*表示含有,^表示以其開頭,$表示以其結尾。

<!--選中含有class屬性的標簽-->
[class]
<!--選中class中完全匹配為p1的標簽-->
[class="p1"]
<!--選中class中含有p1字符的標簽-->
[class*="p1"]
<!--選中class中以p1字符開頭的標簽-->
[class^="p1"]
<!--選中class中以p1字符結尾的標簽-->
[class$="p1"]
<!--選中a標簽且a標簽中的href屬性以https字符開頭,這本質是a的標簽選擇器和屬性選擇器經過交集選擇器拼接在了一起-->
a[href^="https"]

2.6偽類選擇器

<!--a標簽初始狀態文字顏色為紅色-->
a:link{color: red;}
<!--a標簽被訪問過后文字顏色為藍色-->
a:visited {color: blue;}
<!--鼠標懸停a標簽上時背景顏色為綠色-->
a:hover {background-color:green;}
<!--鼠標點擊a標簽時文字顏色為黃色-->
a:active {color: yellow;}
<!--input文本框聚集時框線消失,背景顏色為粉色-->
input:focus{outline: none;background-color:pink;}

a標簽的偽類選擇器可以單獨出現,也可以一起出現,一起出現時有嚴格的順序要求:link,visited,hover,active。
hover是所有其他標簽都可以使用的,focus只給input標簽使用。

2.7偽元素選擇器

<!--選中p標簽的首個字母,常用于雜志類文字首字母的調節大小-->
p:first-letter {font-size: 48px;}
<!--p標簽內容前面插入新內容,且文本顏色為紅色-->
p:before {content: "*";color: red;}
<!--p標簽內容后面插入新內容,且文本顏色為紅色-->
p:after {content: "?";color: red;}

選擇器的組合使用示例:p .p1:first-child~#qq:last-child,div+[class]:last-child p[class$=qq]

三、css三大特性

3.1 繼承性

繼承性指子標簽可以繼承父標簽的樣式,但是只有以color、font-、text-、line-開頭的屬性才可以繼承,a標簽的文字顏色和下劃線是不能繼承別人的,h標簽的文字大小是不能繼承別人的,如果繼承則會在原來字體大小的基礎上變大。

3.2 層疊性

層疊性是指如果多個選擇器選中了同一個標簽且設置的屬性產生沖突時會有覆蓋效果。例如打開瀏覽器開發者面板時會看到有效屬性被劃掉了。

3.3 優先級

當多個選擇器選中同一標簽且設置的屬性產生沖突時,就會涉及到優先級的問題了。
優先級遵守以下的規則:

  • 行內式>嵌入式和外部式(引入css文件的樣式)。
  • 直接選中 > 間接選中(即繼承而來的)。
  • 如果都是間接選中,那么誰離目標標簽比較近,就用誰的。
  • 如果都是直接選中,并且都是同類型的選擇器,那么誰寫的在后面就用誰的。
  • 如果都是直接選中,并且是不同類型的選擇器,那么id > 類 > 標簽 > 通配符(也算直接選中) > 繼承 > 瀏覽器默認(即沒有設置任何屬性)。
  • 如果都是直接選中,并且混雜了一系列其他的選擇器一起使用時,則需要通過計算機權重來判定優先級:id數多的優先級高;id數相同,則判定類數多的優先級高;id數、class數均相同,則判定標簽數多的優先級高;若id數、class數、標簽數均相同,則無需繼續往下計算了,誰寫在后面誰的優先級高。

另外可以通過important將優先級提升到最高,但是這種方法容易產生代碼難以維護的問題。

.p1{color:red !important;}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/62815.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/62815.shtml
英文地址,請注明出處:http://en.pswp.cn/web/62815.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

《探索視頻數字人:開啟未來視界的鑰匙》

一、引言 1.1視頻數字人技術的崛起 在當今科技飛速發展的時代&#xff0c;視頻數字人技術如一顆璀璨的新星&#xff0c;正逐漸成為各領域矚目的焦點。它的出現&#xff0c;猶如一場科技風暴&#xff0c;徹底改變了傳統的視頻制作方式&#xff0c;為各個行業帶來了前所未有的機…

【ETCD】[源碼閱讀]深度解析 EtcdServer 的 processInternalRaftRequestOnce 方法

在分布式系統中&#xff0c;etcd 的一致性與高效性得益于其強大的 Raft 協議模塊。而 processInternalRaftRequestOnce 是 etcd 服務器處理內部 Raft 請求的核心方法之一。本文將從源碼角度解析這個方法的邏輯流程&#xff0c;幫助讀者更好地理解 etcd 的內部實現。 方法源碼 …

免費下載 | 2024算網融合技術與產業白皮書

《2024算網融合技術與產業白皮書&#xff08;2023年&#xff09;》的核心內容概括如下&#xff1a; 算網融合發展概述&#xff1a; 各國細化算網戰略&#xff0c;指引行業應用創新升級。 算網融合市場快速增長&#xff0c;算力互聯成為投資新熱點。 算網融合產業模式逐漸成型…

基于卷積神經網絡的圖像二分類檢測模型訓練與推理實現教程 | 幽絡源

前言 對于本教程&#xff0c;說白了&#xff0c;就是期望能通過一個程序判斷一張圖片是否為某個物體&#xff0c;或者說判斷一張圖片是否為某個缺陷。因為本教程是針對二分類問題&#xff0c;因此主要處理 是 與 不是 的問題&#xff0c;比如我的模型是判斷一張圖片是否為蘋果…

安全見聞全解析

跟隨 瀧羽sec團隊學習 聲明&#xff01; 學習視頻來自B站up主 瀧羽sec 有興趣的師傅可以關注一下&#xff0c;如涉及侵權馬上刪除文章&#xff0c;筆記只是方便各位師傅的學習和探討&#xff0c;文章所提到的網站以及內容&#xff0c;只做學習交流&#xff0c;其他均與本人以及…

代碼隨想錄-算法訓練營-番外(圖論02:島嶼數量,島嶼的最大面積)

day02 圖論part02 今日任務:島嶼數量,島嶼的最大面積 都是一個模子套出來的 https://programmercarl.com/kamacoder/0099.島嶼的數量深搜.html#思路往日任務: day01 圖論part01 今日任務:圖論理論基礎/所有可到達的路徑 代碼隨想錄圖論視頻部分還沒更新 https://programmercar…

RabbitMQ個人理解與基本使用

目錄 一. 作用&#xff1a; 二. RabbitMQ的5中隊列模式&#xff1a; 1. 簡單模式 2. Work模式 3. 發布/訂閱模式 4. 路由模式 5. 主題模式 三. 消息持久化&#xff1a; 消息過期時間 ACK應答 四. 同步接收和異步接收&#xff1a; 應用場景 五. 基本使用 &#xff…

前端怎么預覽pdf

1.背景 后臺返回了一個在線的pdf地址&#xff0c;需要我這邊去做一個pdf的預覽&#xff08;需求1&#xff09;&#xff0c;并且支持配置是否可以下載&#xff08;需求2&#xff09;&#xff0c;需要在當前頁就能預覽&#xff08;需求3&#xff09;。之前我寫過一篇預覽pdf的文…

Python 參數配置使用 XML 文件的教程:輕松管理你的項目配置

Python 參數配置使用 XML 文件的教程&#xff1a;輕松管理你的項目配置 一句話總結&#xff1a;當配置項存儲在外部文件&#xff08;如 XML、JSON&#xff09;時&#xff0c;修改配置無需重新編譯和發布代碼。通過更新 XML 文件即可調整參數&#xff0c;無需更改源代碼&#xf…

解決 MySQL 啟動失敗與大小寫問題,重置數據庫

技術文檔&#xff1a;解決 MySQL 啟動失敗與大小寫問題&#xff0c;重置數據庫 1. 問題背景 在使用 MySQL 時&#xff0c;可能遇到以下問題&#xff1a; MySQL 啟動失敗&#xff0c;日志顯示 “permission denied” 或 “Can’t create directory” 錯誤。MySQL 在修改配置文…

python webdriver-manager 實現selenium 免下載安裝webdriver

python webdriver-manager 實現selenium 免下載安裝webdriver selenium在自動化測試中,通常需要使用瀏覽器驅動來與瀏覽器進行交互。然而,手動下載、安裝、以及管理這些驅動非常麻煩,尤其是當驅動版本頻繁更新時。為此,webdriver-manager庫提供了一個極簡的方案,自動幫我…

滑動窗口算法專題

滑動窗口簡介 滑動窗口就是利用單調性&#xff0c;配合同向雙指針來優化暴力枚舉的一種算法。 該算法主要有四個步驟 1. 先進進窗口 2. 判斷條件&#xff0c;后續根據條件來判斷是出窗口還是進窗口 3. 出窗口 4.更新結果&#xff0c;更新結果這個步驟是不確定的&#xff0c…

C# 中的Task

文章目錄 前言一、Task 的基本概念二、創建 Task使用異步方法使用 Task.Run 方法 三、等待 Task 完成使用 await 關鍵字使用 Task.Wait 方法 四、處理 Task 的異常使用 try-catch 塊使用 Task.Exception 屬性 五、Task 的延續使用 ContinueWith 方法使用 await 關鍵字和異步方法…

【AIGC】如何高效使用ChatGPT挖掘AI最大潛能?26個Prompt提問秘訣幫你提升300%效率的!

還記得第一次使用ChatGPT時&#xff0c;那種既興奮又困惑的心情嗎&#xff1f;我是從一個對AI一知半解的普通用戶&#xff0c;逐步成長為現在的“ChatGPT大神”。這一過程并非一蹴而就&#xff0c;而是通過不斷的探索和實踐&#xff0c;掌握了一系列高效使用的技巧。今天&#…

浩辰CAD教程004:柱梁板

文章目錄 柱梁板標準柱角柱構造柱柱齊墻邊繪制梁繪制樓板 柱梁板 標準柱 繪制標準柱&#xff1a; ①&#xff1a;點選插入柱子②&#xff1a;沿著一根軸線布置柱子③&#xff1a;指定的矩形區域內的軸線交點插入柱子 替換現有柱子&#xff1a;選擇替換之后的柱子形狀&#x…

UNIX數據恢復—UNIX系統常見故障問題和數據恢復方案

UNIX系統常見故障表現&#xff1a; 1、存儲結構出錯&#xff1b; 2、數據刪除&#xff1b; 3、文件系統格式化&#xff1b; 4、其他原因數據丟失。 UNIX系統常見故障解決方案&#xff1a; 1、檢測UNIX系統故障涉及的設備是否存在硬件故障&#xff0c;如果存在硬件故障&#xf…

橋接模式的理解和實踐

橋接模式&#xff08;Bridge Pattern&#xff09;&#xff0c;又稱橋梁模式&#xff0c;是一種結構型設計模式。它的核心思想是將抽象部分與實現部分分離&#xff0c;使它們可以獨立地進行變化&#xff0c;從而提高系統的靈活性和可擴展性。本文將詳細介紹橋接模式的概念、原理…

HTML綜合

一.HTML的初始結構 <!DOCTYPE html> <html lang"en"><head><!-- 設置文本字符 --><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><!-- 設置網頁…

二維碼數據集,使用yolov,voc,coco標注,3044張各種二維碼原始圖片(未圖像增強)

二維碼數據集&#xff0c;使用yolov&#xff0c;voc&#xff0c;coco標注&#xff0c;3044張各種二維碼原始圖片&#xff08;未圖像增強&#xff09; 數據集分割 訓練組70&#xff05; 2132圖片 有效集20&#xff05; 607圖片 測試集10&#xff05; 305圖…

Python爬蟲技術的最新發展

在互聯網的海洋中&#xff0c;數據就像是一顆顆珍珠&#xff0c;而爬蟲技術就是我們手中的潛水艇。2024年&#xff0c;爬蟲技術有了哪些新花樣&#xff1f;讓我們一起潛入這個話題&#xff0c;看看最新的發展和趨勢。 1. 異步爬蟲&#xff1a;速度與激情 隨著現代Web應用的復…