CSS E:nth-last-child(n)

admin發表於2018-11-26

E:nth-last-child(n)是偽類選擇器,可以匹配指定型別與位置的元素。

被匹配元素具有如下特點:

(1).首先,是E型別元素。

(2).其次,必須是父元素的倒數第n個子元素。

特別說明:E並不僅表示元素選擇器,也可以是其他CSS選擇器。

語法結構:

[CSS] 純文字檢視 複製程式碼
E:nth-last-child(n){ Rules }

引數解析:

(1).E:CSS選擇器。

(2).Rules:CSS具體規則宣告。

此選擇器具有三種型別引數:

(1).數字。

(2).關鍵字。

(3).表示式。

後面會通過程式碼例項詳細演示各種型別引數的使用方式。

瀏覽器支援:

(1).IE9+瀏覽器支援此選擇器。

(2).edge瀏覽器支援此選擇器。

(3).谷歌瀏覽器支援此選擇器。

(4).火狐瀏覽器支援此選擇器。

(5).opera瀏覽器支援此選擇器。

(6).safria瀏覽器支援此選擇器。

例項程式碼:

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

程式碼執行效果截圖如下:

a:3:{s:3:\"pic\";s:43:\"portal/201811/26/102851ixhwx4h9cvno5hoq.png\";s:5:\"thumb\";s:0:\"\";s:6:\"remote\";N;}

程式碼分析如下:

(1).E是元素選擇器li,匹配到ul下所有li元素。

(2).然後在li元素集合中查詢倒數第二個li元素,然後將其字型顏色設定為藍色。

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

程式碼執行效果截圖如下:

a:3:{s:3:\"pic\";s:43:\"portal/201811/26/102923jlc9hzi622r6i2hl.png\";s:5:\"thumb\";s:0:\"\";s:6:\"remote\";N;}

沒有任何文字被設定為藍色,可見匹配失敗,分析如下:

(1).首先,被匹配元素必須是li元素。

(2).其次,被匹配元素必須是父元素下倒數第二個子元素,然而倒數第二個是p元素,匹配失敗。

[HTML] 純文字檢視 複製程式碼執行程式碼
<!DOCTYPE html>
<html>
<head>
<meta charset=" utf-8">
<meta name="author" content="http://www.softwhy.com/" />
<title>螞蟻部落</title>
<style type="text/css">
span{display:block}
span:nth-last-child(2){color:blue;}
</style>
</head>
<body>
  <div id="box">
    <span>螞蟻部落一</span>
    <span>螞蟻部落二</span>
    <div id="ant">
      <span>螞蟻部落三</span>
      <div id="inner">
        <span>螞蟻部落四</span>
      </div>
    </div>
  </div>
</body>
</html>

程式碼執行效果截圖如下:

a:3:{s:3:\"pic\";s:43:\"portal/201811/26/102956swat16bzk9w8nbwk.png\";s:5:\"thumb\";s:0:\"\";s:6:\"remote\";N;}

上述程式碼可以將第二個和第三個span元素字型顏色設定為藍色。

程式碼分析如下:

(1).對於box元素,它具有三個子元素,分別是前兩個span元素和ant元素,第二個span元素恰好是box元素的倒數第二個元素,所以匹配成功,將其字型顏色設定為藍色。

(2).對於ant元素,它具有兩個子元素,分別是span元素和inner元素,這個span元素恰好是ant元素的倒數第二個元素,所以匹配成功,於是其字型顏色也會被設定為藍色。

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

程式碼執行效果截圖如下:

a:3:{s:3:\"pic\";s:43:\"portal/201811/26/103029gf70iwppm2pif0w0.png\";s:5:\"thumb\";s:0:\"\";s:6:\"remote\";N;}

選擇器的引數還可以是關鍵字:

(1).odd匹配奇數行指定型別兄弟元素。

(2).even匹配偶數行指定型別兄弟元素。

需要注意的是,必須是倒數計算奇偶順序,否則將得到完全相反的結果。

並且CSS與其他程式語言不同,位置是從1開始計數的,而不是0。

[HTML] 純文字檢視 複製程式碼執行程式碼
<!DOCTYPE html>
<html>
<head>
<meta charset=" utf-8">
<meta name="author" content="http://www.softwhy.com/" />
<title>螞蟻部落</title>
<style type="text/css">
li:nth-last-child(2n + 1){
  color:blue;
}
</style>
</head>
<body>
  <ul>
    <li>螞蟻部落一</li>
    <li>螞蟻部落二</li>
    <li>螞蟻部落三</li>
    <li>螞蟻部落四</li>
    <li>螞蟻部落五</li>
    <li>螞蟻部落六</li>
    <li>螞蟻部落七</li>
    <li>螞蟻部落八</li>
 </ul>
</body>
</html>

上述程式碼中,選擇器引數是一個表示式,下面介紹一下規則。

語法結構描述如下:

[CSS] 純文字檢視 複製程式碼
E:nth-last-child(an+b)

解析如下:

(1).a表示每次計數跨越兄弟元素的基礎個數。

(2).n表示跨越的次數,從開始計數進行自增。

(3).b表示跨域的偏移量。

下面分析一下li:nth-last-child(2n + 1)選擇器是如何運作的:

規定每次跨越兄弟元素基礎個數是2,偏移量為1:

(1).2*0+1=1

(2).2*1+1=3

(3).2*2+1=5

以此類推,於是倒數第一、倒數第三、倒數第五和倒數第七的li元素字型顏色設定為藍色。