CSS 小結筆記之選擇器

来源:https://www.cnblogs.com/Assist/archive/2018/08/03/9406197.html
-Advertisement-
Play Games

Css選擇器主要分為以下幾類 類選擇器 ID選擇器 通配符選擇器 標簽選擇器 偽類選擇器 複合選擇器 1、類選擇器:通過.classname 來選擇 例如 同一個標簽可以通過多個類名來指定多個樣式,但是若其中有重疊部分,則按權重值重疊,若在同一權重級別中,如都是內部樣式表中的,則按照上下關係,下麵的 ...


Css選擇器主要分為以下幾類

1、類選擇器:通過.classname 來選擇

例如

 .color2 {
            color: rebeccapurple;
        }

 

同一個標簽可以通過多個類名來指定多個樣式,但是若其中有重疊部分,則按權重值重疊,若在同一權重級別中,如都是內部樣式表中的,則按照上下關係,下麵的覆蓋上面的。

例如:

  .classtest1 {
            font-size: 25px;
            color: blue;
        }
        
  .classtest2 {
            color: red;
        }
 <p class="classtest1 classtest2">classtest</p>

則p標簽內容顯示紅色,樣式覆蓋只與樣式定義的順序有關,與指定的循序無關,如果將上述的p標簽中的class順序調換,則結果不會改變。例如

 <p class="classtest2 classtest1">classtest</p>

顯示結果與上面的顯示結果一致。

2、Id選擇器通過#id來選擇

例如

 #id1 {
            color: palegreen;
        }
 <p id="id1">idTest</p>

在網頁中一般來說一個id對應一個元素,多個元素使用同一id值雖然不會報錯,並且可以使用同一樣式,但是用js進行操作時會出現問題。

3、通配符選擇器 * 

通配符選擇器是選擇所有元素。

 

*{
background-color:yellow;
}

 

4、標簽選擇器element 

例如 為所有的div設置樣式:

 div {
            color: blue;
            font-size: 20px
        }

5、偽類選擇器

(a)連接偽類選擇器  :link |:visited |:hover |:active

     a:link {/* 鏈接的顏色 */
            color: blue;
        }
        
        a:visited {/* 已訪問過的顏色 */
            color: green;
        }
        
        a:hover {/* 滑鼠放上去的顏色 */
            color: red;
        }
        
        a:active {/*點擊瞬間的顏色 */
       color: yellow; 
   }
<a href="#">a鏈接</a>

連接偽類選擇器的順序儘量不要改變,因為hover放在link和visited後才有效,active再hover後才有效

(b)結構偽類選擇器 

  • :first-child 選取第一個元素
  • :last-child 選取最後一個元素
  • :nth-chlid(n) 選取第n個元素(n從1開始,n小於等於0時沒有匹配項)
  • :nth-last-child
        li:first-child {
            color: blue;
        }
        
        li:last-child {
            color: green;
        }
        
        li:nth-child(5) {
            color: red;
        }
        
        li:nth-last-child(5) {
            color: orange;
        }
        /* even、2n指定偶數項 odd、2n+1 奇數 */
        
        li:nth-child(odd) {
            font-size: 25px;
        }
        
        li:nth-last-child(2n+1) {
            font-size: 35px;
        }
 <ul>
        <li>li1</li>
        <li>li2</li>
        <li>li3</li>
        <li>li4</li>
        <li>li5</li>
        <li>li6</li>
    </ul>

結果如下圖所示

 上述的選擇器是將父元素中所有的元素進行排序來計算n的,所以當目標元素中穿插了其他元素,此種方法會出現問題。需要用到以下選擇器

  • :first-of-type            同種類型元素的第一個
  • :last-of-type            同種類型元素的最後一個
  • :only-of-type           同種類型元素的單獨的一個  
  • :nth-of-type(n)        同種類型元素的第n個
  • nth-last-of-type(n)  同種類型元素的倒數n個
span:nth-of-type(even) {
            color: blue;
        }
 <div>
        <span>span1</span>
        <p>p1</p>
        <span>span2</span>
        <span>span3</span>
        <p>p1</p>
        <span>span4</span>
        <span>span5</span>
        <span>span6</span>
    </div>

這時用nth-of-type(n)沒有問題而使用 nth-child(n)會出現問題,可以自己試一下。

(c)目標選擇器 :target

只對當前目標有效

 :target {
            color: blue;
            font-size: 30px;
        }

 

    <a href="#div1">div1的鏈接</a>
    <a href="#div2">div2的鏈接</a>
    <div id="div1">div1Text</div>
    <div id="div2">div2Text</div>

點擊div1的鏈接則div1處於活動狀態,此時div1的樣式改變

 

6、複合選擇器

 (1)交集選擇器

交集選擇器是標簽選擇器+類選擇器(中間沒有空格!)。

 p.pred {
            color: red;
        }
 <span class="pred">spanText </span>
 <p class="pred">Ptext</p>

對於上面的例子中,只有p標簽改變了顏色

(2)並集選擇器 element,element 

當多個標簽需要設置同種樣式時,使用並集選擇器,並集選擇器用逗號隔開,如:

 

 div,
 span,
 .cla1{
            color:pink;
        }

 

<div>divtext</div>
<span>spantext</span>
<h3 class="cla1">h3text</h3>

上面三中結果顯示樣式一致。

(3)後代選擇器 element element 

後代選擇器用空格隔開,例如

 div span {
            color: orange;
        }

 

指定div下麵的span標簽是橙色

<div>divText</div>
<span>SpanText</span>
<div>
    <span>divspanText</span>
</div>

只有 divspanText 文本變成橙色

(4)子元素選擇器 element>element

 後代選擇器只要是滿足前一個標簽內的子孫元素都可以,而子元素選擇器只有子元素才可以。

 div>p {
            color: hotpink
        }
  <div>
        <p>divpText</p>
        <h1>
            <p>h1pText</p>
         </h1>
    </div>

只有divptext顏色改變,而h1ptext顏色不變。

(5) 下一級選擇器 element+element

選擇緊接著在上一個元素之後的元素

 

 div+p {
            color: green;
        }

 

   <div>
     <p>divpText</p>
      <h1>
          <p> h1pText</p>
      </h1>
    </div>
    <p>ptext</p> 

只有ptext顏色改變。

 (6)屬性選擇器 E[attr] 

具體用法在下例給出

    div[class=cla] {
            color: pink;
        }
        
        div[class^=div] {
            /*以div開頭的class*/
            color: blue;
            font-size: 15px;
        }
        
        div[class$=div] {
            /*以div結尾的class*/
            color: orange;
            font-size: 15px;
        }
        
        div[class*=Text] {
            /*包含Text的class*/
            color: green;
            font-size: 15px;
        }

 

    <div class="cla">claText</div>
    <div class="div1">div1Text</div>
    <div class="div2">div2Text</div>
    <div class="div3">div3Text</div>
    <div class="1div1Text">1div1Text</div>
    <div class="1div1Text">2div1Text</div>
    <div class="1div1Text">3div1Text</div>
    <div class="1div">1divText</div>
    <div class="2div">2divText</div>
    <div class="3div">3divText</div>

(7)偽元素選擇器 

  • ::first-letter 首字母
  • ::first-line  首行
  • ::selection 選中的元素
  • ::brfore     在元素開始添加內容與content一起使用
  • ::after       在元素結尾添加內容與content一起使用
      p::first-letter {
            color: red;
            font-size: 30px;
        }
        
        p::first-line {
            color: palegreen;
            font-size: 25px;
        }
        
        p::selection {
            color: blue;
            font-size: 25px;
        }
        
        P::after {
            content: '-結尾'
        }
        
        p::before {
            content: '開頭:';
        }
 <p>層疊樣式表(英文全稱:Cascading Style Sheets) 是一種用來表現HTML(標準通用標記語言的一個應用) 或XML(標準通用標記語言的一個子集) 等文件樣式的電腦語言。 CSS不僅可以靜態地修飾網頁, 還可以配合各種腳本語言動態地對網頁各元素進行格式化。
    </p>

偽元素與偽類選擇器的區別:

首先,在Css3標準中偽元素選擇器使用兩個冒號'::',而偽類選擇器使用一個冒號‘ : ’。再就是如果不使用偽元素選擇器,想要達成相同的效果需要多添加元素才能實現,而不使用為例選擇器想要達成相同的效果需要增加一個類來實現。

例如對於上面的偽元素選擇器,想要改變第一個字母的顏色大小則需要增加一個標簽:

        span {
            color: red;
            font-size: 30px;
        }
 <p><span></span>疊樣式表(英文全稱:Cascading Style Sheets) 是一種用來表現HTML(標準通用標記語言的一個應用) 或XML(標準通用標記語言的一個子集) 等文件樣式的電腦語言。 CSS不僅可以靜態地修飾網頁, 還可以配合各種腳本語言動態地對網頁各元素進行格式化。
    </p>

而不使用偽類選擇器想要改變第一個元素的樣式需要增加一個類,例如

 .first {
            color: blue;
        }
<li class="first">li1</li>

 

 

 


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

-Advertisement-
Play Games
更多相關文章
  • (1)HTML5現在已經不是SGML的子集,主要是關於圖像,位置,存儲,地理定位等功能的增加。 繪畫canvas元素; 用於媒介回放的video和audio元素; 本地離線存儲localStorage長期存儲數據,瀏覽器關閉後數據不丟失,sessionStorage的數據在瀏覽器關閉後自動刪除; 語 ...
  • 筆者最近在寫node.js項目中遇到了一個比較有趣的流程式控制制需求需求是:先將多個object對象迴圈遍歷後進行非同步操作寫入到資料庫中去,等這部操作結束後在進行下一次的查詢操作。這個流程需要註意的是在你foreach 或者 for迴圈的時候裡面的非同步操作是不會同步進行的,往往會導致時間相差而產生bug ...
  • 首先解釋下宿主環境:一般宿主環境由外殼程式創建與維護,只要能提供js引擎執行的環境都可稱之為外殼程式。如:web瀏覽器,一些桌面應用系統等。即由web瀏覽器或是這些桌面應用系統早就的環境即宿主環境。 1、本地對象 ECMA-262 把本地對象(native object)定義為“獨立於宿主環境的 E ...
  • 新手一枚,解決的問題喜歡記錄,也許正好有人在網上迷茫的百度著。-0- 最近使用Chart.js做折線圖的報表展示,直接顯示整數啥的很好弄畢竟例子直接在哪裡可以用,百分比就沒辦法了。百度慢慢汲取營養,雖然總是幾篇文章複製粘貼,但還有有收穫,然後自己搗鼓半天總算是弄出來了。。。 首先參考: http:/ ...
  • /** * @param {number[]} height * @return {number} */ var maxArea = function(height) { let maxarea = 0 for(let i=0;i=0; j--){ maxarea = Math.max(maxare... ...
  • 學習CSS相關知識,定位是其中的重點,也是難點之一,如果不瞭解css定位有時候都不知道怎麼用,下麵整理了一下關於定位屬性的具體理解和應用方案。 一:定位 定位屬性列表 position top bottom right left z index position 基本語法: position:sta ...
  • 發佈訂閱模式 前一篇對觀察者模式做了介紹,重點在於觀察者和被觀察者的對應關係,以及將被觀察者的改變及時通知到相對應的觀察者。 這樣的模式基本上可以解決少量數據源的情景,在觀察者和被觀察者可能是多對多關係的情況下,強耦合的結構會讓代碼不夠清晰,難以維護。 在《JavaScript設計模式》一書中,提到 ...
  • 每個函數都包含兩個非繼承而來的方法:call()方法和apply()方法。 1、相同點:這兩個方法的作用是一樣的。 都是在特定的作用域中調用函數,等於設置函數體內this對象的值,以擴充函數賴以運行的作用域。 一般來說,this總是指向調用某個方法的對象,但是使用call()和apply()方法時, ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...