CSS的各種選擇器

在前端或者網(wǎng)頁設(shè)計中,會用html標簽根據(jù)業(yè)務需求搭建框架,用CSS來設(shè)置樣式。而CSS是通過選擇器選中所需要設(shè)置屬性的標簽,來對特定標簽設(shè)置屬性的。為了能夠靈活的完成各種各樣的需求,有很多選擇器可以供我們選擇,下面是自己對常用的選擇器的學習過程的記錄。更多詳情:http://www.w3school.com.cn/

標簽選擇器

用來根據(jù)標簽名稱選擇當前界面的某一類標簽,對一類標簽進行操作。

  • 書寫格式:
    標簽名稱{
    屬性:值;
    屬性1:值;

  • 案例


    <style>
        p {
            color: red;
        }
    </style>
    <body>
        <div>
            <p>這是段落</p>
            <span>這是span</span>
            <ul><li><p>li面段落</p></li></ul>
        </div>
    </body>

  • 效果圖
標簽選擇器.png

可以看到通過p標簽選擇器選擇了網(wǎng)頁上出現(xiàn)的所有p標簽,包括li里面的,這也是缺點,因為選擇了所有的p標簽。

id選擇器

id選擇器用來精準的選擇界面的某個標簽,同一個界面中id不能重復.id名稱只能由字母下劃線數(shù)字組成,不能以數(shù)字開頭(遵循大部分編程語言的變量命名規(guī)則),id名稱不能是html標簽名稱,僅僅為了設(shè)置樣式的時候是不會用id的,id的使用主要是留給js調(diào)用。

  • 書寫格式

    # id的名稱{
        屬性:屬性值;
        屬性1:值;
      }
    
  • 案例

 <style>
        #red{
          color: red;
        }
        #green{
            color: green;
        }
    </style>
    <body>
        <div>
            <p id="red">這是段落</p>
            <span>這是span</span>
            <ul><li><p id="green">li面段落</p></li></ul>
        </div>
    </body>
  • 效果圖
id選擇器.png

通過id成功設(shè)置了兩個p標簽的內(nèi)容顏色分別為紅色和綠色。

類選擇器

相對于id選擇器,class選擇器在同一個界面是可以重復的,類名前面是.可以給某個特定的標簽設(shè)置樣式,一個標簽可以有多個類名。一個標簽設(shè)置多個類名的書寫格式<標簽名 class=”class1 class2“>

  • 書寫格式

    .classname{
      屬性:屬性值;
      屬性1:值;
    }
    
  • 案例

 <style>
        .red{
            color: red;
        }
        .green{
            color: green;
        }
        .big{
            font-size: 20px;
        }
    </style>
    <body>
        <div>
            <p class="red big">這是段落</p>
            <p class="green">這是段落</p>
            <span class="green">這是span</span>
            <ul><li><p class="red">li面段落</p></li></ul>
        </div>
    </body>
  • 效果圖
類選擇器.png

為界面里面的不同的標簽通過指定類名的形式設(shè)置了不同的樣式和樣式疊加。合理的利用和設(shè)置類選擇器,可以大大減少css的重復代碼,優(yōu)化結(jié)構(gòu)。

后代選擇器

后代選擇器用來找到指定標簽的所有后代標簽,設(shè)置屬性。不僅僅局限于直接子標簽,多層嵌套的依然起效果。同時后代選擇選擇器的選擇器標簽可以是類名id選擇器名等其他的名稱

  • 書寫格式
    標簽直接用空格隔開
    標簽名稱1 標簽名稱2{
    屬性:屬性值

  • 案例

 <style>
        div p{
            color: red;
        }
        div .innerli{
            color: green;
        }
    </style>
    <body>
        <div>
            <p>這是段落</p>
            <p>這是段落</p>
            <ul>
                <li><p class="innerli">li里面的p標簽格外的</p></li>
               <li><p>li里面的p</p></li>
            </ul>
        </div>
        <p>不再div的p</p>
    </body>

效果圖

后代選擇器.png

子元素選擇器

和后代選擇器的區(qū)別是子元素選擇器只會在自己的直接后代中尋找,后代選擇器間接后代也作為查找范圍。

  • 書寫格式
    標簽名稱1>標簽名稱2{
    屬性:屬性值;
  • 案例
<style>
       div>p{
           color: red;
       }
        div>ul>li>p{
            color: green;
        }
    </style>
    <body>
        <div>
            <p>這是段落</p>
            <p>這是段落</p>
            <ul>
                <li><p>li里面的p標簽</p></li>
                <li><p>li里面的p</p></li>
            </ul>
        </div>
        <p>不再div的p</p>
    </body>
  • 效果圖
子元素選擇器.png

交集選擇器和并集選擇器

交集選擇器,一個標簽具有標簽選擇器1和2兩種身份時設(shè)置相關(guān)屬性。中間沒有任何字符,緊挨著

標簽選擇器1標簽選擇器2{
    屬性:屬性值;
}

并集選擇器,逗號隔開
擁有標簽選擇器1和2都設(shè)置為相同的屬性

  標簽選擇器,1標簽選擇器2{
    屬性:屬性值;
 }
  • 案例
 <style>
        .red{
            color: red;
        }
        p.red{
            font-size: 20px;
        }
        .blue{
            color: blue;
        }
        span,.blue{
            font-size: 25px;
        }
    </style>
    <body>
        <div>
            <p class="red">這是段落</p>
            <span class="red">這是span</span>
            <p>這是段落</p>
            <span class="blue">這是blue類span</span>
        </div>
        <span>普通的span</span>
    </body>
  • 效果圖
交集選擇器和并集選擇器.png

兄弟選擇器

相鄰兄弟選擇器用來選擇某個標簽緊隨其后同一級別的標簽,中間有其他的標簽隔開無效,通用兄弟選擇器無此限制。

  • 書寫格式

     標簽1+標簽2{
        屬性:屬性值   (相鄰兄弟選擇器)
     }
     標簽1~標簽2{
        屬性:屬性值   (通用兄弟選擇器)
     }
    

*案例

 <style>
         h1+p{
             color: red;
         }
         h2~p{
             color: blue;
         }
    </style>
    <body>
        <h1>標題1</h1>
        <p>段落1</p>
        <p>段落2</p>
        <p>段落3</p>
        <h1>標題2</h1>
        <span>隔開后相鄰兄弟選擇器無效</span>
        <p>段落1</p>
        <h2>標題3</h2>
        <p>段落2</p>
        <div><p>不是同一級別的無效</p></div>
        <p>段落3</p>
    </body>```
![兄弟選擇器.png](http://upload-images.jianshu.io/upload_images/2747346-0da6f018a426b8ed.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

###序選擇器
css3增加了許多選擇器,可以按照標簽的順序選擇某個選擇器功能強大。直接看案例。
```html
<style>
        p:first-child{
            color: red;
        }
        p:first-of-type{
            color: blue;
        }
        p:nth-child(3){
            color: aqua;
        }
        p:nth-of-type(3){
            color: rosybrown;
        }
        span:only-child{
            color: darkcyan;
        }
        h4:only-of-type{
            color: blueviolet;
        }
    </style>
    <body>
        <div>
            <h5>這是標題,first-child只取同級別的第一個,不區(qū)分類型,所以顏色不變</h5>
            <p>這是段落1 first-of-type,取出同類型的第一個</p>
            <p>通過nth-child,指定同級別不區(qū)分類型的標簽設(shè)置顏色</p>
            <p>nth-of-type(3),區(qū)分類型取第三個</p>
        </div>
        <div>
            <h4>父標簽div包含了h5和h4,但是只包含了一個h4,所以only-of-type,能夠選中</h4>
            <!--下面注釋打開后h4不唯一了所有不能夠選中-->
            <!--<h4>父標簽div包含了h5和h4,但是只包含了一個h4,所以only-of-type,能夠選中</h4>-->
            <h5>h標簽</h5>
        </div>
        <div>
            <span>父標簽只包含了這一個span標簽:only-child,所以上面div同時包含span和h5的無效</span>
        </div>
    </body>

  • 效果圖
$R8301IK.png
<style>
    tr{
        text-align: center;
    }
    /*奇數(shù)行*/
    tr:nth-child(even){
        color: green;
    }
    td:nth-child(odd){
        font-size: 20px;
    }
    /**用公式選擇n從0遞增*/
    span:nth-child(2n+1){
        color: aqua;
    }
</style>
    <body>
        <span>1</span><span>2</span><span>3</span>
        <span>4</span><span>5</span><span>6</span>
        <span>7</span><span>8</span><span>9</span>
        <table bgcolor="black" width="100" height="40" cellspacing="1px">
            <tr bgcolor="white"><td>1</td><td>2</td></tr>
            <tr bgcolor="white"><td>3</td><td>4</td></tr>
            <tr bgcolor="white"><td>5</td><td>6</td></tr>
            <tr bgcolor="white"><td>7</td><td>8</td></tr>
            <tr bgcolor="white"><td>9</td><td>0</td></tr>
        </table>
    </body>
  • 效果圖
序選擇器2.png

屬性選擇器

根據(jù)指定的屬性名稱或者屬性名稱和值找到標簽,設(shè)置屬性。

  • 案例
  <style>
    p[id]{
       color: green;
    }
    /*
    通常用來判斷input類型不需要設(shè)置任何class和id
    */
    input[type="password"]{
        color: blue;
    }
    /*
    標簽[attribute^=值]以某個值開頭
    */
    img[alt^='abc']{
        color: green;
    }
    /*
   標簽[attribute$=值]以某個值結(jié)尾
   */
    img[alt^='cd']{
        color: blue;
    }
    /*
     標簽[attribute$=值]包含某個值
    */
    img[alt*='abd']{
        color: brown;
    }
    </style>
    <body>
    <!--選擇出有id屬性的標簽設(shè)置紅色-->
        <p id="idf1">段落段落</p>
        <p id="idf2">段落段落</p>
        <p id="idf3">段落段落</p>
         賬號:<input type="text"><br>
        密碼:<input type="password">

    <img src="" alt="abcde">
    <img src="" alt="abc">
    <img src="" alt="abd">
    <img src="" alt="cde">
    </body>
  • 效果圖
屬性選擇器.png

通配符選擇器

  • 書寫格式
    *{
    屬性:屬性值

    用來設(shè)置所有的標簽,通常做一些全局的設(shè)置,比如清除默認標簽的自帶間距。

選擇器的優(yōu)先級

  1. 是否是直接選中,與之相反的是間接選中,就是通過父類繼承的屬性。直接選擇的要大于間接選擇
  2. 都是直接選中,并且都是同類型的,按照優(yōu)先級進行比較。id>類>標簽>通配符>繼承>默認
  3. 如果都是直接選中,并且是相同類型的選擇器,寫在后面的會覆蓋前面的

`

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,533評論 19 139
  • 國家電網(wǎng)公司企業(yè)標準(Q/GDW)- 面向?qū)ο蟮挠秒娦畔?shù)據(jù)交換協(xié)議 - 報批稿:20170802 前言: 排版 ...
    庭說閱讀 12,332評論 6 13
  • CSS選擇器 標簽選擇器 什么是標簽選擇器? 作用: 根據(jù)指定的標簽名稱, 在當前界面中找到所有該名稱的標簽, 然...
    Jackson_yee_閱讀 562評論 0 0
  • 第六十五課 標簽選擇器 作用:根據(jù)指定的標簽名稱,在當前界面中找到所有該名稱的標簽,然后設(shè)置屬性格式: 標簽名稱{...
    S大偉閱讀 422評論 0 0
  • part 3 雖然,當時我沒有直接的向馮先生開罵,但我心里還是很心疼人家小女生的,明明小小只那么可愛,干嘛...
    迷迷糊糊茶葉蛋閱讀 169評論 0 0

友情鏈接更多精彩內(nèi)容