web前端(8)—— CSS選擇器

来源:https://www.cnblogs.com/yangva/archive/2018/11/14/9958934.html
-Advertisement-
Play Games

選擇器 選擇器,說白了就是html的標簽或者其相關特性,在一個HTML頁面中會有很多很多的元素,不同的元素可能會有不同的樣式,某些元素又需要設置相同的樣式,選擇器就是用來從HTML頁面中查找特定元素的,找到元素之後就可以為它們設置樣式了。 選擇器為樣式規則指定一個作用範圍 ...


選擇器

 

選擇器,說白了就是html的標簽或者其相關特性,在一個HTML頁面中會有很多很多的元素,不同的元素可能會有不同的樣式,某些元素又需要設置相同的樣式,選擇器就是用來從HTML頁面中查找特定元素的,找到元素之後就可以為它們設置樣式了。 選擇器為樣式規則指定一個作用範圍

基本選擇器

 

基本選擇器包含以下選擇器:

  • 標簽選擇器
  • 類選擇器
  • ID選擇器
  • 通用選擇器

 

標簽選擇器

標簽選擇器說白了就是html的標簽元素,就像前面說的h1-h6,p,div,form,ul,ol,li,a等等的,這些都可以是標簽選擇器

 

註意:<html>,<body>也可以作為標簽選擇器

 

類選擇器

這個選擇器很常用,也很重要。先說說什麼是類,這樣,還是打開百度首頁來講解

 

左邊我圈出來的class = 's_ipt'就是input的一個類屬性,右邊的css就是由類選擇器控制的,這樣就可以很好的找到此特有的標簽

註意:

  • 類選擇器的語法,【.s_ipt】,註意前面的點
  • 類選擇在同一個html文件可以有多個

 

ID選擇器

ID選擇器和類選擇器很類似

 還是百度這個例子

我圈出來的這個 id=‘kw’ 就是id選擇器,右邊的#kw就是其id選擇器的css樣式

 

註意:

  • id選擇器的語法是 【#kw】,註意前面的井號
  • id選擇器在同一個html文件里的屬性是唯一的,也就是說百度首頁的html文件里,html里的標簽只能由一個id叫kw的

 

 

 

通用選擇器

通用選擇器的就一個,用【*】代替,例:

* { color: black; }

 

* 號相信稍微是個愛研究的人都見過,在windows系統里表示通配符,可以代替一切的字元,在IT它也是這麼個用法,可以表示一切字元,那麼這裡的自然表示所有的標簽

 

組合選擇器

組合選擇器就是比較高級的用法,有時候我們可能只運用上面的基本選擇器不是很方便,那麼就可以用組合選擇器

 

組合選擇器包含有:

  • 高級選擇器
  • 子集選擇器
  • 後代選擇器
  • 相鄰選擇器

 

子代選擇器

說這個之前,我希望您有這種思想,把html結構想成一顆大樹,樹上有很多的枝葉,每個枝里又有很多小枝,這樣的話你可能會更好理解下麵的,對以後的理論也更好理解

 

好的,接正文,子代選擇器即就是選擇此元素的直系子代,例:

div > p{
  font-size:15px;      
}

以上例子就是選擇div里的直系子代里的p標簽

 

後代選擇器

 

後臺選擇器和前面的子代選擇器有些類似,不過後代是包含子代在內的所有子子孫孫標簽

例:

 

div  p{
  font-size:15px;      
}

 

以上表示選取div下的所有p標簽,不管是不是直系子代

 

相鄰選擇器

相鄰選擇器有兩個,一個是前者(哥哥),一個後者(弟弟)

前者,用+

div+p {
  color: red;
}

  

後者,用~

div~p {
  color: red;
}

  

高級選擇器

 

高級選擇器里包含有並集,交集

 

並集,用逗號連接

div,p,a{
  color:red;  
}

 

交集,直接連接,中間沒有空格

 

交集用個完整的html來講解,可能大家才更好理解

 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>高級選擇器</title>
    <style>
        /*交集選擇器*/

        /*既是P標簽,類名稱又會text的元素字體變為紅色*/
        p.text{
            color: red;
        }
    </style>
</head>
<body>
    <!--交集選擇器-多個選擇器包含的元素-->
    <p>test1</p>
    <p class="text">test2</p>
    <p class="text">test3</p>
    <p>test4</p>  
 
</body>
</html>

 

測試結果:

 

 

屬性選擇器

屬性選擇器的特點就是可以很好的定位到人為定義的屬性,而不是已經有的屬性,比如給html文件加一個特殊標識,用屬性選擇器立馬就可以取到,併進行調整樣式

屬性選擇器如果細分的話,有兩種,一個是屬性選擇器,一個是屬性-值選擇器

 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>屬性選擇</title>
    <style>
        /* 屬性選擇器 */
        [key]{
            color: red;
        }

        /* 屬性-值選擇器 */
        [key="test"]{
            color: red;
        }   
    

    </style>
</head>
<body>
    <p key="test">test1</p>    

</body>
</html>    

  

註意:屬性選擇器的語法是  [……]

 

而屬性選擇器最常用的就是表單:

input[type="text"] {
  backgroundcolor: red;
}

  

分組選擇器

當多個元素的樣式相同的時候,我們沒有必要重覆地為每個元素都設置樣式,我們可以通過在多個選擇器之間使用逗號分隔的分組選擇器來統一設置元素樣式

 

其實這個分組選擇就是前面高級選擇器里的並集選擇器,為什麼它又叫分組選擇器,就是因為很重要啦

 

h1,h2 {
  color: red;
}

  

 

偽類選擇器

偽類的意思就本來不存在的類,但是其又可以用

這個最常用的是對a和input標簽的選取

偽類選擇器有:

:link

:active

:visited

:hover

:focus

 

:link

表示沒有訪問的鏈接

a:link {
  color: blue;
}

  

:active

表示滑鼠點擊瞬間

a:active {
  color: black;
}

  

:visited

表示訪問過,點擊過的鏈接

a:visited {
  color: gray;
}

  

:hover

表示游標放上去但還未點擊的狀態

p:hover {
  cursor:pointer;
  background-color: #eee; 
}

  

:focus

input輸入框獲取焦點時(即正處於在輸入框輸入內容時)樣式

input:focus {
  background-color: #eee;
}

  

以上最常用的就是:hover

 

 

偽元素選擇器

偽元素的概念和偽類很像,意思就是本來不存在的,但是又可以直接是用的

 

偽元素有:

  • first-leter
  • before
  • after

first-leter

用於為文本的首字母設置特殊樣式,說白了就是那種文章首字母大寫的效果

p:first-letter {
  font-size: 48px;
}

  

before

用於在元素的內容前面插入新內容

p:before {
  content: "*"; /*在所有p標簽的內容前面加上一個紅色的**/
  color: red;
}

  

after

用於在元素的內容後面插入新內容

p:after {
  content: "?"; /*在所有p標簽的內容後面加上一個藍色的?*/
  color: red;
}

  

 

各種選擇器的優先順序(權重)

 

學完以上的各種各樣的選擇器,那麼當然以上的各種選擇器是可以混用的,那麼混用的話,就會存在一個問題,假如各種混用的選擇器剛好都對同一個元素選中並設置不同的樣式,這種的話,到底會顯示什麼樣呢?

 

這個問題也當然不是問題,因為每個選擇器都有優先順序(又叫權重)的,優先順序高就選擇誰

 

各種選擇器的優先順序:

 

 

 

權重總結:

1.先看標簽是否被選中,如果選中,就數id選擇器和類選擇器,標簽選擇的權重,最後誰的權重大就顯示誰的,如果權重一樣大,後者覆蓋前者

2.如果沒有選中,權重為0,如果權重都是由父級繼承而來,且權重都是0,遵循就近原則,誰描述的近就顯示誰

3.!import權重最大

4.css多層嵌套,內層元素會繼承外層元素的css樣式

 


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

-Advertisement-
Play Games
更多相關文章
  • vue常用指令 vue.js官方給自己的定義是數據模板引擎,並給出了一套渲染數據的指令.本文詳細介紹vue.js的常用指令. 官網:點我 一.v-text、v-html v-text:用於綁定文本 v-html:用於綁定html 1.{{Name}}這種寫法和v-text的作用是相同的,用於綁定標簽 ...
  • 實例 <!DOCTYPE html> <html> <head> <title>文檔的標題</title> </head> <body> 文檔的內容...... </body> </html> 親自試一試 親自試一試 瀏覽器支持 IEFirefoxChromeSafariOpera 所有瀏覽器都支持 ...
  • jQuery的方法: 以上的方法,不能寫在頁面載入完成事件函數$(function(){})內部,而需要寫在外面。 頁面載入完成事件: 我們項目中的代碼: ...
  • hasOwnProperty() 方法會返回一個布爾值,指示對象自身屬性中是否具有指定的屬性 例如:obj.hasOwnProperty(prop) 1. 所有 Object 的對象都會有 hasOwnProperty 方法。這個方法可以用來檢測一個對象是否含有特定的自身屬性;和 in 運算符不同, ...
  • 原文地址:http://www.cnblogs.com/MuYunyun/p/5678405.html#3471461 閱讀目錄 Chrome調試工具介紹: 快速切換文件 在源代碼中搜索 在源代碼中快速跳轉到指定的行 使用多個插入符進行選擇 設備模式 格式化凌亂的js源碼 顏色選擇器 改變顏色格式 ...
  • 歡迎大家前往 "騰訊雲+社區" ,獲取更多騰訊海量技術實踐乾貨哦~ 本文由 "shirishiyue" 發表於 "雲+社區專欄" 1、工具介紹 ​ 這是一個非常詳細且專業的web頁面性能分析工具,而且開源的!如果你打不開其官網,或者擔心安全問題,你可以自己拿源碼搭建這個平臺工具。 ​ 性能分析極其詳 ...
  • 一、jQuery.load() jQuery.load(url,[data],[callback])通過Ajax非同步請求載入伺服器中的數據,並把數據放到指定元素中。 url :請求伺服器的地址 data :可選項,請求時發送的數據 callback :可選項,請求成功後的回調函數 例: $(".co ...
  • 最近在做商城小程式的會員中心模塊項目。之前除了製作過簡單的翻譯小程式之外幾乎沒有做過小程式開發,開發的過程也是一個學習的過程,記錄一些在開發工程中值得記錄的。 getUserInfo 調整 調用前需要 用戶授權 scope.userInfo。 這個 API 在進行修改之後,只能夠通過用戶點擊來觸發, ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...