CSS3 nth-child 当在div中指定class的时候失效 求解

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title></title>
    <style>
        .aa{background:blue;color:#fff;}
        .aa:nth-child(1){background:red;}
    </style>
</head>
<body>
    <div>1</div>
    <div class="aa">1</div>
    <div class="aa">1</div>
    <div class="aa">1</div>
    <div>1</div>
</body>
</html>

如上所示 我想要的是 第一个.aa变成红色 然而当所有标签都是div的时候 nth-child first-child都失效了
这个怎么破?

阅读 6.8k
4 个回答
类名 === 'aa' && 是body的第一个child

这样显然一个符合的节点都木有呀。

你可以改成这样:

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title></title>
    <style>
        .aa{background:blue;color:#fff;}
        .aa:nth-child(1){background:red;}
    </style>
</head>
<body>
    <div>1</div>
    <div>    
        <div class="aa">1</div>
        <div class="aa">1</div>
        <div class="aa">1</div>
    </div>
    <div>1</div>
</body>
</html>

E:nth-child(n) { sRules }
匹配父元素的第n个子元素E,假设该子元素不是E,则选择符无效。
要使该属性生效,E元素必须是某个元素的子元素,E的父元素最高是body,即E可以是body的子元素

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title></title>
    <style>
        .aa{background:blue;color:#fff;}
        .aa:nth-child(1){background:red;}
    </style>
</head>
<body>
    <div>1</div>
    <div>    
        <div class="aa">1</div>
        <div class="aa">1</div>
        <div class="aa">1</div>
    </div>
    <div>1</div>
</body>
</html>

效果展示:

clipboard.png

预览:https://ityanxi.github.io/seg...

.aa:nth-child(1)的意思是该元素具有aa类,并且是父元素的第一个子元素,按照上面的结构显然这个类并没有用武之地,所以你需要给第一个div也添加class="aa";

新手上路,请多包涵

按照楼主html结构不变动的情况下,可以使用:nth-of-type 或 first-of-type

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题