1. 程式人生 > >CSS選擇器型別

CSS選擇器型別

關係選擇器

包含選擇符(E F)

選擇所有被E元素包含的F元素,中間用空格隔開

<head>
    <style>
        ul li{color:red;}
    </style>
</head>

<ul>
    <li>12</li>
    <li>12</li>
    <li>12</li>
    <li>12</li>
</ul>
<ol>
    <li>33</li>
    <li>33</li>
    <li>33</li>
    <li>33</li>
</ol>

子選擇符(E>F)

選擇所有作為E元素的直接子元素F,對更深一層的元素不起作用,用大於號表示。

<style>
    p>a{color:red;}
</style>

<div>
   <a href="#">子元素</a>
   <p><a href="#">子孫元素</a></p>
   <span><a href="#">猜猜看</a></span>
</div>

相鄰選擇符 (E+F)

選擇緊貼在E元素之後的F元素,用+號表示,選擇相鄰的第一個兄弟元素

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        p+span{color:red;}
    </style>
</head>
<body>
    <p>這是一個p標籤</p>
    <span>這是緊挨著p元素的第一個</span>
    <span>這是第二個</span>
</body>
</html>

兄弟選擇符(E~F)

選擇E元素之後的所有F元素,作用於多個元素,用~隔開

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        p~span{color:red;}
    </style>
</head>
<body>
    <p>這是一個p標籤</p>
    <span>這是緊挨著p元素的第一個</span>
    <span>這是第二個</span>
</body>
</html>

屬性選擇器

1.E[att]

選擇具有attr屬性的E元素

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        option[disabled]{color:red;}
    </style>
</head>
<body>
    <select name="交通工具" id="老司機">
        <option value="0">汽車</option>
        <option value="1" disabled>火車</option>
        <option value="2">飛機</option>
        <option value="3">輪船</option>
    </select>
</body>
</html>

2.E[att=”val”]

選擇具有att屬性且屬性值等於val的E元素
他不僅要符合屬性,值也要符合才行。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
       input[type="text"]{color:red;height: 100px;}
    </style>
</head>
<body>
    <form action="">
        <input type="text">
        <input type="password">
        <input type="radio">
        <input type="submit">
    </form>
</body>
</html>

3.E[att~=”val”]

選擇有att屬性的元素,且屬性值列表中有一個符合val的元素

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
      p[class~="p1"]{color:red;}
    </style>
</head>
<body>
   <p class="p1 pMore">隨便寫寫</p>
   <p class="pMore">隨便寫寫</p>
   <p class="p2 pMore">隨便寫寫</p>
   <p class="p3 pMore">隨便寫寫</p>
   <p class="pMore p1">隨便寫寫</p>
</body>
</html>

4.E[att^=”val”]

選擇E元素中,有att屬性,且以“val”開頭的元素。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
      p[class^="p"]{color:red;}
    </style>
</head>
<body>
   <p class="p1 pMore">隨便寫寫</p>
   <p class="More">隨便寫寫</p>
   <p class="p2 pMore">隨便寫寫</p>
   <p class="3 pMore">隨便寫寫</p>
   <p class="pMore p1">隨便寫寫</p>
</body>
</html>

5.E[att$=”val”]

選擇E元素中,有att屬性,,且以“val”結尾的元素。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
      p[class$="p"]{color:red;}
    </style>
</head>
<body>
   <p class="p1 pMore">隨便寫寫</p>
   <p class="More">隨便寫寫</p>
   <p class="p2 pMore">隨便寫寫</p>
   <p class="3 pMorep">隨便寫寫</p>
   <p class="pMore p1">隨便寫寫</p>
</body>
</html>

5.E[att*=”val”]

選擇具有att屬性幷包含“val”的字串的E元素

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
      a[href*="jd"]{color:yellow;}
    </style>
</head>
<body>
    <a href="http://www.baidu.com">百度</a>
    <a href="http://www.jd.com">京東</a>
    <a href="http://www.taobao.com">淘寶</a>
</body>
</html>

偽類選擇器

通過冒號來定義,定義了元素的狀態,如點選按下,點選完成等等 。我們之前都是直接操作元素的樣式。現在可以為元素的狀態改變樣式,是元素看上去更“動態”。

設定超連結a在未被訪問前的樣式(特指a標籤)

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
      a:link{color:red;}
    </style>
</head>
<body>
    <a href="#">百度</a>
</body>
</html>

2.E:visited

設定超連結a在連結已被訪問過時的樣式(特指a標籤)

a:visited{color:aqua;}

3.E:hover

滑鼠懸停在元素上時的樣式。不限於a標籤。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
      ul li{display: inline-block;
          list-style: none;
          width: 100px;
          height: 40px;
          text-align: center;
          font-size: 16px;
          font-family: "Microsoft YaHei UI";
          line-height: 40px;
      }
      ul li:hover{background-color: #ff4400;
      color: #fff;
      }
    </style>
</head>
<body>
    <ul>
        <li>首頁</li>
        <li>第二頁</li>
        <li>第三頁</li>
        <li>第四頁</li>
        <li>第五頁</li>
    </ul>
</body>
</html>

4.E:active

設定元素在滑鼠按下時的樣式(不限於a標籤)

ul li:active{color: aqua;}

5.E:not(s)

匹配不含有s選擇器的元素E

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        div:not(#div2){color: aquamarine;}
        div:not(.d2){color:aqua;}
    </style>
</head>
<body>
   <div class="d1">塊元素</div>
   <div class="d1">塊元素</div>
   <div class="d1">塊元素</div>
   <div class="d2 d1">塊元素</div>
   <div class="d3" id="div2">塊元素</div>
</body>
</html>

6.E:first-child

本身具有父元素,且是子元素的第一個

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
       li:first-child{color: #ff4400;}
    </style>
</head>
<body>
   <ul>
       <h2>標題</h2>
       <li>列表項</li>
       <li>列表項</li>
       <li>列表項</li>
       <li>列表項</li>
       <li>列表項</li>
   </ul>

   <ol>
       <li>列表項</li>
       <li>列表項</li>
       <li>列表項</li>
       <li>列表項</li>
       <li>列表項</li>
   </ol>
</body>
</html>

7.E:last-child

本身具有父元素,且是父元素裡面的最後一個。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
       li:last-child{color: #ff4400;}
    </style>
</head>
<body>
   <ul>
       <h2>標題</h2>
       <li>列表項</li>
       <li>列表項</li>
       <li>列表項</li>
       <li>列表項</li>
       <li>列表項</li>
   </ul>

   <ol>
       <li>列表項</li>
       <li>列表項</li>
       <li>列表項</li>
       <li>列表項</li>
       <li>列表項</li>
   </ol>
</body>
</html>

8.E:only-child

E元素是唯一的子元素時被匹配。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
       ol:only-child{color: #ff4400;}
    </style>
</head>
<body>

   <ol>
       <li>列表項</li>
       <li>列表項</li>
       <li>列表項</li>
       <li>列表項</li>
       <li>列表項</li>
   </ol>
</body>
</html>