nth-child与nth-of-type使用中对选择器的注意事项

这是一篇在实际使用过程中,对选择器及nth-child与nth-of-type注意事项的备忘。

首先,在css选择器中,有一个细节需要注意,就是选择父元素下的子元素后,父子元素之间是否有空格。

  • 有空格的情况下,代表父元素下的子元素,
  • 没有空格的情况下,代表选择了拥有两个类名的属性。


    举个栗子

以下是html

   <div class="div1 extra">
    <span class="span1 extra">1111</span>
    <span class="span1">22222</span>
    <span class="span1">3333</span>
    <span class="span1">4444</span>
    <span class="span1 extra">555</span>
    <span class="span1">6666</span>
    <span class="span1">77777</span>
    <span class="span1">88888888</span>
  </div>

下面是css

.div1.extra{
  background:yellow;
}

.div1 .extra{
  text-decoration:underline;
}

结果:
第一个选择器选择的是拥有.div1和.extra两个class的元素,即外面包裹div元素,所以设置的黄色背景对所有的span都起作用;

第二个选择器.div1.extra选择的是.div1下的拥有.extra类的子元素,所有只有第1个和第5个匹配了。

image.png

同样的效果也会出现在我们应用nth-child和nth-of-type也是相同的。

  • nth-child代表的是该元素的父元素下的第几个子元素。
    把他们看成一个家族,就是他的亲兄弟姐妹里的第几个。
举个栗子
<ul>
    <li>11111</li>
    <li>22222222</li>
    <li>3333333</li>
    <li>44444444</li>
    <li>5555555</li>
    <li>666666666666</li>
  </ul>
ul :nth-child(2) {
  color: red;
}
/*ul后面有空格,空格后的是其子元素li,匹配的是li的父亲ul下的第2个孩子*/
--------------------------------------
li:nth-child(3){
  color: blue;
}
/*li后面没空格,匹配的是li的父亲ul,下的第3个孩子*/

结果如下:


image.png
  • nth-of-type代表的是该元素的父元素下的第几个同类子元素。
    把他们看成一个家族,就是将亲兄弟姐妹先分组,比如男女分组,然后分别是男孩里的第几个、女孩里的第几个。

注意点还是和nth-child一致。

以上~~!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 其实平时用得多的选择器无非也就是那么几个,时间久了,许多不常用的选择器就慢慢忘记了。为了不让自己忘记这些选择器,今...
    盛夏晚清风阅读 5,817评论 0 5
  • 1.class 和 id 的使用场景? 类选择器允许以一种独立于文档元素的方式来指定样式。该选择器可以单独使用,也...
    草鞋弟阅读 7,130评论 0 1
  • 1.class 和 id 的使用场景? 多个标签可以使用同一个class,一个id只能对应一个标签 2.CSS选择...
    molly的红草帽阅读 2,895评论 0 0
  • 刚开始学习选择器,一开始对伪类选择器确实有点懵。昨天晚上自己动手写了写,终于是慢慢搞懂了。下面对一些容易误解的一些...
    婷楼沐熙阅读 7,194评论 4 7
  • 一、样式篇 第1章 初识jQuery (1)环境搭建 进入官方网站获取最新的版本 http://jquery.co...
    凛0_0阅读 8,799评论 0 44