第十章 CSS選擇器

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title>選擇器</title>
    <style media="screen">
      /*p{
        color: red;
      }*/
      /*h1{
        color: green;
      }*/
      /*#pID1{
        color:blue;
      }*/
      /*#pID2{
        color:red;
      }*/
      /*#pID3{
        color:green;
      }*/
      /*#pID4{
        color:purple;
      }*/
      /*.pClass1{
        color:green;
      }*/
      /*.pClass2{
        color: brown;
      }*/
      /*.pDoubleClass1{
        color: blue;
      }*/
      /*.pDoubleClass2 {
        font-size: 30px;
      }*/

      /*.colorR{
        color: brown;
      }
      .size30{
        font-size: 30px;
      }
      .line {
        text-decoration: underline;
      }*/

      /*div p{
        color: purple;
      }*/
      /*div .divullipClass{
        color: purple;
      }*/
      /*div ul li p{
        color: brown;
      }*/
      /*div .divPClass{
        color: green;
      }*/
      /*div>p{
        color: purple;
      }*/
      /*div>ul>li>p{
        color: green;
      }*/


      /*p#npId{
        color: brown;
      }*/
      /*p.npClass{
        color: brown;
      }*/

      /*h2,p{
        color: purple;
      }*/
      /*.upClass,.uhClass {
        color: purple;
      }*/

      /*h2+p{
        color: green;
      }*/

      /*p:first-child {
        color: red;
      }*/
      /*p:first-of-type {
        color:red;
      }*/
      /*p:last-child {
        color: green;
      }*/
      /*p:last-of-type {
        color: purple;
      }*/
      /*p:nth-child(3) {
        color: red;
      }*/
      /*p:nth-of-type(3) {
        color: green;
      }*/
      /*p:nth-last-child(3){
        color: red;
      }*/
      /*p:nth-last-of-type(2){
        color: green;
      }*/
      /*p:only-child {
        color: green;
      }*/
      /*p:only-of-type {
        color: red;
      }*/

      /*p:nth-child(odd) {
        color: red;
      }
      p:nth-child(even) {
        color: blue;
      }*/
      /*p:nth-of-type(odd) {
        color: blue;
      }*/
      /*p:nth-child(2n+0){
        color: green;
      }*/

      /*p[id]{
        color: red;
      }*/
      /*p[class="pClass"] {
        color: green;
      }*/
      /*img[alt|=abc]{
        color: green;
      }*/
      /*img[alt^=abc]{
        color: red;
      }*/
      /*img[alt$=abc]{
        color: purple;
      }*/
      /*img[alt~=abc]{
        color: red;
      }*/
      /*img[alt*=abc]{
        color: blue;
      }*/
      /**{
        color: red;
      }*/

      /*p{
        color: red;
      }*/
      /*#pId1 {
        color: red;
      }
      #pId2 {
        color: red;
      }*/
      /*.pClass{
        color: red;
      }*/
      /*div p{
        color: red;
      }*/
      /*div>p{
        color: red;
      }*/
      /*p.pClass{
        color: red;
      }*/
      /*#pId2,#pId1 {
        color: red;
      }*/
      /*h2~p{
        color: red;
      }*/
      /*p:nth-child(n+0) {
        color: red;
      }*/
      /*[id]{
        color: red;
      }*/
      [class="pClass"]{
        color: red;
      }
    </style>
  </head>
  <body>
    <!-- <p>我是段落</p>
    <ul>
      <li>
        <ul>
          <li><p>我是段落</p></li>
        </ul>
      </li>
    </ul> -->

    <!-- <h1>我是標題</h1>

    <p id="pID1">id段落1</p>
    <p id="pID2">id段落2</p>
    <p id="pID3">id段落3</p>
    <p id="pID4">id段落4</p> -->


    <!-- <p class="pClass1">pClass1段落1</p>
    <p class="pClass1">pClass1段落2</p>
    <p class="pClass2">pClass2段落3</p>
    <p class="pClass2">pClass2段落4</p>
    <p class="pDoubleClass1 pDoubleClass2">pDoubleClass1段落4</p>
    <p class="pDoubleClass1 pDoubleClass2">pDoubleClass2段落5</p> -->


    <!-- <p class="colorR size30">第一行文字</p>
    <p class="size30 line">第二行文字</p>
    <p class="colorR line">第三行文字</p> -->


    <!-- <div id="divID" class="divClass">
      <p class="divPClass">div 我是段落</p>
      <p>div 我是段落</p>
      <ul>
        <li>
          <p id="divullipId" class="divullipClass">div ul li 我是段落</p>
        </li>
        <li>
          <p id="divullipId" class="divullipClass">div ul li 我是段落</p>
        </li>
      </ul>
    </div> -->

    <!-- <p>交集選擇器段落1</p>
    <p id="npId" class="npClass">交集選擇器段落2</p>
    <p class="npClass">交集選擇器段落3</p>
    <p>交集選擇器段落4</p> -->

    <!-- <h2 class="uhClass">并集選擇器標題</h2>
    <p class="upClass">并集選擇器段落1</p>
    <p >并集選擇器段落2</p>
    <p >并集選擇器段落3</p>
    <p>并集選擇器段落4</p> -->

    <!-- <h2>兄弟選擇器標題</h2>
    <a href="#">我是連接</a>
    <p>兄弟選擇器段落1</p>
    <p >兄弟選擇器段落2</p>
    <a href="#">我是連接</a>
    <p >兄弟選擇器段落3</p>
    <p>兄弟選擇器段落4</p>

    <h2>兄弟選擇器標題</h2>
    <p>兄弟選擇器段落1</p>
    <p >兄弟選擇器段落2</p>
    <p >兄弟選擇器段落3</p>
    <p>兄弟選擇器段落4</p> -->

    <!-- <h2>序選擇器1</h2>
    <p>我是段落1</p>
    <p>我是段落2</p>
    <p>我是段落3</p>
    <p>我是段落4</p>
    <hr>
    <div class="">
      <p>我是段落5</p>
      <p>我是段落6</p>
      <p>我是段落7</p>
      <p>我是段落8</p>
    </div> -->

    <!-- <h2>序選擇器1</h2>
    <p>我是段落1</p>
    <hr>
    <div class="">
      <p>我是段落5</p>
    </div> -->

    <!-- <h2>序選擇器2</h2> -->
    <!-- <p>我是段落1</p>
    <p>我是段落2</p>
    <p>我是段落3</p>
    <p>我是段落4</p>
    <p>我是段落5</p>
    <p>我是段落6</p>
    <p>我是段落7</p>
    <p>我是段落8</p> -->

    <!-- <h2>屬性選擇器</h2>
    <p id="pID1" class="pClass">我是段落1</p>
    <p class="pClass">我是段落2</p>
    <p id="pID3" class="pClass">我是段落3</p>
    <p>我是段落4</p>
    <p>我是段落5</p>
    <p class="pClass">我是段落6</p>
    <p>我是段落7</p>
    <p id="pID8">我是段落8</p> -->

    <!-- <img src="" alt="abcmmmwww">
    <img src="" alt="abc mmm www">
    <img src="" alt="abc-mmm-www">
    <img src="" alt="wwwmmmabc">
    <img src="" alt="www mmm abc">
    <img src="" alt="www-mmm-abc">
    <img src="" alt="wwwabcmmm">
    <img src="" alt="www abc mmm">
    <img src="" alt="www-mmm-abc"> -->

    <!-- <h2>通配符選擇器</h2>
    <p>段落</p>
    <a href="#">我是連接</a> -->

    <div class="">
      <h2>選擇器練習</h2>
      <p id="pId1" class="pClass">我是段落1</p>
      <p id="pId1" class="pClass">我是段落2</p>
    </div>
  </body>
</html>

第六十五課 標簽選擇器

作用:根據指定的標簽名稱,在當前界面中找到所有該名稱的標簽,然后設置屬性
格式:

標簽名稱{
屬性:值;
}

注意點:

1、標簽選擇器選中的是當前界面中的所有的標簽,而不是單獨選中某一個標簽
2、標簽選擇器無論標簽藏的多深都能選中
3、只要是HTML中的標簽就可以作為標簽選擇器(h/a/img/ol/dl/input...)

第六十六課 id選擇器

id選擇器:根據指定的ID名稱找到對應的標簽,然后設置屬性
格式:

#id名稱{
  屬性:值;
}

注意點

1、每個HTML標簽都有一個屬性叫做id,也就是說每個標簽都可以設置id
2、同一個界面中ID的名稱是不可以重復的
3、編寫id選擇器一定要在id名稱前面加上#
4、id的名稱只能由字母/數字、下劃線
id名稱不能以數字開頭
id名稱不能是Html標簽的名稱
在企業開發中一般情況下如果僅僅是為了設置樣式,我們不會使用ID,因為在前端開發中ID是留給js使用的

第六十七課 類選擇器

class選擇器:根據指定的類名稱找到對應的標簽,然后設置屬性
格式

.類名 {
屬性:值;
}

注意點

1、每個HTML標簽都有一個屬性叫做class,也就是說每個標簽都可以設置class
2、同一個界面中class的名稱是可以重復的
3、編寫id選擇器一定要在class名稱前面加上.
4、class命名規范和id一樣
5、class就是專門給某個特定的標簽設置樣式的
6、在HTML中每個標簽可以同時綁定多個類名

格式

<標簽名稱 class=“類名1 類名2 。。。”>
錯誤寫法
<標簽名稱 class=“類名1” class=“類名2”>

第六十八課 id選擇器和類選擇器

區別

id相當于人的身份證不可以重復;class相當于人的名字可以重復;
一個HTML標簽只能綁定一個id名稱;一個HTML標簽可以綁定多個class名稱;
id選擇器以#開頭;class選擇器以.開頭;
id一般情況下是給js使用的,所以除了特殊情況否則不要使用id設置樣式
對類的使用可以看出一個開發人員的技術水平
一般情況下企業開發中要注意代碼冗余的抽取,可以將一些公共的代碼抽取到一個類選擇器中,然后讓標簽和這個類選擇器綁定即可

第六十九課 后代選擇器

后代選擇器:找到指定標簽的所有后代標簽,設置屬性
格式:

標簽名稱1 標簽名稱2 ... {
屬性:值;
}
先找到標簽名稱1的標簽,再找到標簽名稱2的標簽,然后設置屬性

注意點:

后代選擇器必須用空格隔開
后代不僅是兒子,還包括孫子。。。,只要放在這個標簽中,都是他的后代
后代選擇器不僅可以使用標簽名稱,還可以使用其他選擇器
后代選擇器可以通過空格一直延續下去

第七十課 子元素選擇器

子元素選擇器:找到指定的標簽中所有特定的直接子元素,然后設置屬性
格式

標簽名稱1>標簽名稱2{
屬性:值;
}
先找到名稱叫做標簽名稱1的標簽,然后在這個標簽中找到所有直接子元素名稱為標簽2的元素

注意點

1、子元素選擇器只會查找兒子,不會查找其他被嵌套的標簽
2、子元素選擇器之間需要用>符號鏈接,并且不能有空格
3、子元素選擇器不僅可以使用標簽名稱,還可以使用其他選擇器
4、子元素選擇器可以通過>符號一直延續下去

第七十課 后代選擇器和子元素選擇器

區別

后代選擇器使用空格作為連接符號;后代選擇器會選中指定標簽中所有的特定后代標簽,
同時選中兒子/孫子。。。,只要是被放到指定標簽中的特定標簽都會被選中
子元素選擇器使用>作為連接器;子元素選擇器只會選中指定標簽中,所有的特定的直接標簽,只有兒子標簽
共同點:
都可以使用標簽/id名稱/class名稱來作為選擇器;
都可以通過各自的連接符號一直延續下去

在企業開發中如何選擇

如果想選中標簽中所有的特定的標簽,那么就使用后代選擇器;
如果只想選中指定標簽中的所有特定兒子標簽就使用子元素選擇器

第七十二課 交集選擇器

交集選擇器:給所有選擇器選中的標簽中,相交的那部分標簽設置屬性
格式:

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

注意點

1、選擇器之間沒有任何連接符號
2、選擇器可以使用標簽名稱/id名稱/class名稱
3、交集選擇器在企業開發中用的并不多

第七十三課 并集選擇器

作用:給所有選擇器選中的標簽設置屬性
格式:

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

注意點:

1、并集選擇器必須使用,來連接
2、選擇器可以使用標簽名稱/id名稱/class名稱

第七十四課 兄弟選擇器

相鄰兄弟選擇器 CSS2
作用:給指定選擇器后面緊跟的那個選擇器選中的標簽設置屬性
格式

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

注意點

1、相鄰兄弟選擇器必須通過+連接
2、相鄰兄弟選擇器只能選中緊跟其后的那個標簽,不能選中被隔開的標簽

通用兄弟選擇器 CSS3
作用:給指定選擇器后面的所有選擇器選中的所有標簽設置屬性
格式:

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

注意點:

1、通用兄弟選擇器必須用~連接
2、通用兄弟選擇器選中的是指定選擇器后面某個選擇器選中的所有標簽,無論有沒有被隔開都可以選中

第七十五課 序選擇器上

CSS3中新增的選擇器最具有代表性的就是序選擇器
1、同級別的第幾個 不區分類型

:first-child 選中同級別中的第一個標簽
:last-child 選中同級別中的最后一個標簽
:nth-child(n) 選中同級別中的第n個標簽
:nth-last-child(n) 選中同級別中的倒數第n個標簽
:only-child 選中父元素中唯一的元素

2、同類型的第幾個

:first-of-type 選中同級別中同類型的第一個標簽
:last-of-type 選中同級別中同類型的最后一個標簽
:nth-of-type(n) 選中同級別中同類型的第n個標簽
:nth-last-of-type(n) 選中同級別中同類型的倒數第n個標簽
:only-of-type 選中父元素中唯一類型的某個標簽

第七十六課 序選擇器下

:nth-child(odd) 選中同級別中的所有奇數(odd)
:nth-child(even)選中同級別中的所有偶數(even)
:nth-child(xn+y)
x和y是用戶自定義的,n是一個計數器,從0開始遞增

第七十七課 屬性選擇器

格式:

[attribute]
作用:根據指定的屬性名稱找到對應的標簽,然后設置屬性

[attribute=value]
作用:找到有指定屬性,并且屬性的取值等于value的標簽,然后設置屬性

最長見的場景:區分input屬性

input[type=password]{}
<input type="text" name="" id="">
<input type="password" name="" id="">

第七十八課 屬性選擇器下

1、屬性的取值是以什么開頭的

[attribute|=value] CSS2只能找到value開頭,并且是被-和其他內容隔開的
[attribute^=value] CSS3只要是以Value開頭的都可以找到,無論用何種方式隔開

2、屬性的取值是以什么結尾的

[attribute$=value] CSS3

3、屬性的取值是否包含某個特定的值

[attribute~=value] CSS2只能找到包含value,并且是以空格隔開的
[attribute*=value] CSS3只要包含Value都可以找到

第七十九課 通配符選擇器

作用:給當前界面上所有的標簽設置屬性

格式:
*{
屬性:值;
}

注意點:

由于通配符選擇器是設置界面中所有的標簽屬性,所以在設置之前會遍歷所有的標簽,
如果當前界面上的標簽比較多,那么性能會比較差,所以在企業開發中一般不會使用通配符選擇器

第八十課 選擇器練習

用學過的選擇器,設置p標簽內容為紅色

<div class="">
<h2>選擇器練習</h2>
<p id="pId1" class="pClass">我是段落1</p>
<p id="pId1" class="pClass">我是段落2</p>
</div>

內容參考

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,362評論 6 544
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,577評論 3 429
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 178,486評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,852評論 1 317
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,600評論 6 412
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,944評論 1 328
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,944評論 3 447
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 43,108評論 0 290
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,652評論 1 336
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,385評論 3 358
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,616評論 1 374
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,111評論 5 364
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,798評論 3 350
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,205評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,537評論 1 295
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,334評論 3 400
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,570評論 2 379

推薦閱讀更多精彩內容

  • Spring Cloud為開發人員提供了快速構建分布式系統中一些常見模式的工具(例如配置管理,服務發現,斷路器,智...
    卡卡羅2017閱讀 134,828評論 18 139
  • CSS選擇器 標簽選擇器 什么是標簽選擇器? 作用: 根據指定的標簽名稱, 在當前界面中找到所有該名稱的標簽, 然...
    Jackson_yee_閱讀 512評論 0 0
  • CSS選擇器 標簽選擇器 什么是標簽選擇器? 作用: 根據指定的標簽名稱, 在當前界面中找到所有該名稱的標簽, 然...
    極客江南閱讀 11,804評論 10 109
  • 蝦:我們可以去曲阜唱歌,估計很便宜,上次我們在山西才一塊錢blabla.... 時間倒回兩千年....... 孔子...
    一位貴賓狗閱讀 160評論 0 1
  • Xcode離線文檔下載地址https://developer.apple.com/library/download...
    WarMap閱讀 152評論 0 0