nth-of-type()選擇器用法詳解

antzone發表於2017-04-05

關於此選擇器的基本用法可以參閱CSS E:nth-of-type(n)偽類選擇器一章節。

先看它的語法結構:

[JavaScript] 純文字檢視 複製程式碼
E:nth-of-type(n){ Rules }

此選擇器的作用是匹配同型別中的第n個同級兄弟元素E。

下面介紹一下此選擇器的作用:

(1).首先要在同型別兄弟元素中進行查詢第n個元素,比如li元素,div元素等同型別中查詢。

(2).然後使用E進行篩選。

程式碼例項如下:

[HTML] 純文字檢視 複製程式碼
<!DOCTYPE html>
<html>
<head>
<meta charset=" utf-8">
<meta name="author" content="http://www.softwhy.com/" />
<title>螞蟻部落</title>
<style type="text/css">
#box li {
  width: 350px;
  height: 25px;
  line-height: 25px;
  font-size: 12px;
}
li:nth-of-type(3) {
  color: green;
}
</style>
</head>
<body>
<ul id="box">
  <li>螞蟻部落歡迎您,只有努力才會有美好的未來</li>
  <li>每一天都是新的,必須要好好把握。</li>
  <li>沒有人一開始就是高手,必須要努力奮鬥。</li>
  <li>未來都是虛無縹緲的,只有當前是現實。</li>
  <li>分享和互助式進步的最大原動力</li>
  <li>本站的url地址是www.softwhy.com。</li>
</ul>
</body>
</html>

上面的程式碼可以將第三個li元素的字型顏色設定為綠色。

[HTML] 純文字檢視 複製程式碼
<!DOCTYPE html>
<html>
<head>
<meta charset=" utf-8">
<meta name="author" content="http://www.softwhy.com/" />
<title>螞蟻部落</title>
<style type="text/css">
#box li {
  width: 350px;
  height: 25px;
  line-height: 25px;
  font-size: 12px;
}
.antzone:nth-of-type(2) {
  color: green;
}
.antzone:nth-of-type(4) {
  color: green;
}
</style>
</head>
<body>
<ul id="box">
  <li>螞蟻部落歡迎您,只有努力才會有美好的未來</li>
  <li class="antzone">每一天都是新的,必須要好好把握。</li>
  <li class="antzone">沒有人一開始就是高手,必須要努力奮鬥。</li>
  <li>未來都是虛無縹緲的,只有當前是現實。</li>
  <li class="antzone">分享和互助式進步的最大原動力</li>
  <li>本站的url地址是www.softwhy.com。</li>
</ul>
</body>
</html>

上面的程式碼可以將第二個li元素的字型顏色設定為綠色。

但是第四個li元素的字型顏色不是綠色,因為第四個li元素的class屬性值不是antzone。

[HTML] 純文字檢視 複製程式碼
<!DOCTYPE html>
<html>
<head>
<meta charset=" utf-8">
<meta name="author" content="http://www.softwhy.com/" />
<title>螞蟻部落</title>
<style type="text/css">
p:nth-of-type(2) {
  color: green;
}
</style>
</head>
<body>
  <h1>螞蟻部落</h1>
  <p>螞蟻部落一</p>
  <p>螞蟻部落二</p>
  <p>螞蟻部落三</p>
  <p>螞蟻部落四</p>
</body>
</html>

上面的程式碼可以同型別的元素中超找(h1和p)第二個元素,這裡限定為p元素。

所以螞蟻部落二的字型顏色為綠色。

[HTML] 純文字檢視 複製程式碼
<!DOCTYPE html>
<html>
<head>
<meta charset=" utf-8">
<meta name="author" content="http://www.softwhy.com/" />
<title>螞蟻部落</title>
<style type="text/css">
:nth-of-type(2) {
  color: green;
}
</style>
</head>
<body>
  <h1>螞蟻部落一</h1>
  <h1>螞蟻部落二</h1>
  <h1>螞蟻部落三</h1>
  <p>螞蟻部落一</p>
  <p>螞蟻部落二</p>
  <p>螞蟻部落三</p>
  <p>螞蟻部落四</p>
</body>
</html>

上面的程式碼可以將第二個h1元素和第二個p元素的字型顏色設定為綠色。奇偶匹配:

[HTML] 純文字檢視 複製程式碼
<!DOCTYPE html>
<html>
<head>
<meta charset=" utf-8">
<meta name="author" content="http://www.softwhy.com/" />
<title>螞蟻部落</title>
<style type="text/css">
p:nth-of-type(odd) {
  color: green;
}
</style>
</head>
<body>
  <h1>螞蟻部落</h1>
  <p>螞蟻部落一</p>
  <p>螞蟻部落二</p>
  <p>螞蟻部落三</p>
  <p>螞蟻部落四</p>
</body>
</html>

上面的程式碼可以將第一個p元素的字型顏色設定為綠色。

當然:nth-of-type()選擇器的引數也可以是even。

倍數寫法:

[HTML] 純文字檢視 複製程式碼
<!DOCTYPE html>
<html>
<head>
<meta charset=" utf-8">
<meta name="author" content="http://www.softwhy.com/" />
<title>螞蟻部落</title>
<style type="text/css">
#box li {
  width: 350px;
  height: 25px;
  line-height: 25px;
  font-size: 12px;
}
li:nth-of-type(3n) {
  color: green;
}
  </style>
</head>
<body>
  <ul id="box">
    <li>螞蟻部落歡迎您,只有努力才會有美好的未來</li>
    <li>每一天都是新的,必須要好好把握。</li>
    <li>沒有人一開始就是高手,必須要努力奮鬥。</li>
    <li>未來都是虛無縹緲的,只有當前是現實。</li>
    <li>分享和互助式進步的最大原動力</li>
    <li>本站的url地址是www.softwhy.com。</li>
  </ul>
</body>
</html>

上面的程式碼可以將第三個和第六個li元素字型顏色設定為綠色。

這個n可以是1,2,3....。

當然括號中的這個規則可以延伸為:nth-of-type(2n+1),:nth-of-type(2n-3),:nth-of-type(4n+3)等等,可以無限擴充套件。

相關文章