SASS / CSS ::第一个子选择器不起作用

SASS/CSS: :first-child selector not working

本问题已经有最佳答案,请猛点这里访问。

我正在尝试使用CSS / SASS在标记中设置某个的样式,而对于为什么不应用规则我一无所知。 这是我的标记:

1
2
3
4
5
6
7
    // something here
   
   
        Title
        <h6>Slogan</h6>
       
            // I want to access this

这是我正在尝试使用的SASS:

1
2
3
4
5
6
7
div.addon-header {
    color: white;
    > div.col-sm-9 > div.col-xs-1:first-child {
        background-color: black;
        padding-left: 0px !important;
    }
}

如果在我的SASS中删除:first-child选择器,它会起作用,但是对于每个来说,不仅是第一个选择器是显而易见的,这不是我想要的。

我也试着玩,做类似的事情

1
2
3
4
5
6
7
8
9
div.addon-header {
    color: white;
    > div.col-sm-9 > div.col-xs-1 {
        &:first-child {
            background-color: black;
            padding-left: 0px !important;
        }
    }
}

要么

1
2
3
4
5
6
7
8
9
div.addon-header {
    color: white;
    > div.col-sm-9 {
        > div.col-xs-1:first-child {
            background-color: black;
            padding-left: 0px !important;
        }
    }
}

或改用:nth-child(1)。 什么都没有。 我一无所知。 在我的SASS的其他地方,我有以下内容:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
.tab-content {
    >.tab-pane:first-child > form > div.row > div {
        // rules here
        > div.picture-container {
            // rules here
        }
    }
    >.tab-pane {
        // rules here
    }
    >.tab-pane:nth-child(4) > form {
        // rules here
    }
}

哪个工作正常。 因此,在第一个示例中,我真的没有弄错。 有人能帮忙吗?


您需要:nth-of-type()(或者您的情况下是:first-of-type选择器)。

在示例中,您提供的.col-sm-9元素的:first-childh2

1
2
3
4
5
6
7
div.addon-header {
    color: white;
    > div.col-sm-9 > div.col-xs-1:first-of-type {
        background-color: black;
        padding-left: 0px !important;
    }
}

但是请注意,与:nth-child()选择器一样,:nth-of-type()选择器仅适用于标签,而不适用于类名。 如果要在第一个.col-xs-1之前插入另一个div,则将不再起作用。


col-xs-1需要包装row,因为此块不是第一个元素。 第一个元素是h2