css中的first-child nth-child nth-last-child() 和:nth-of-type(n)

时间:2023-01-30 12:29:21

先看定义 

:nth-of-type(n) 选择器匹配属于父元素的特定类型的第 N 个子元素的每个元素.

:nth-child(n) 选择器匹配属于其父元素的第 N 个子元素,不论元素的类型。

看两者的差异就能大致明白了,nth-dhild在执行匹配的时候,不会注重特定的类型,而nth-of-type()则会匹配指定的类型,看下面的两个例子能解释一切

<!DOCTYPE html>
<html>
<head>
<style>
p:nth-child(2)
{
background:#ff0000;
}
</style>
</head>
<body>

<h1>这是标题</h1>
<p>第一个段落。</p>
<p>第二个段落。</p>
<p>第三个段落。</p>
<p>第四个段落。</p>

<p><b>注释:</b>Internet Explorer 不支持 :nth-child() 选择器。</p>

</body>
</html>
对应的页面展示为

ncss中的first-child nth-child  nth-last-child() 和:nth-of-type(n)

p:nth-child(2)  根据定义:选择器匹配属于其父元素的第 N 个子元素,不论元素的类型      则匹配的顺序是,第一个 <h1>这是标题</h1>   第二个:<p>第一个段落。</p>  所以第二个标红了

如果我们用p:nth-of-type,则不会去处理h1标签,只会关注特定类型p 

<!DOCTYPE html>
<html>
<head>
<style>
p:nth-of-type(2)
{
background:#ff0000;
}
</style>
</head>
<body>

<h1>这是标题</h1>
<p>第一个段落。</p>
<p>第二个段落。</p>
<p>第三个段落。</p>
<p>第四个段落。</p>

<p><b>注释:</b>Internet Explorer 不支持 :nth-child() 选择器。</p>

</body>
</html>

展示的效果如下图:

css中的first-child nth-child  nth-last-child() 和:nth-of-type(n)

以上就是这两个的主要区别了