SСSS嵌套:如何将类添加到上一个父元素

时间:2019-10-31 01:35:37

标签: css sass

让我们看一下这个例子:

.box {
    padding: 1rem;
    .item {
        paddding: 1rem;
        border: 1px solid #ccc;
        a {
           color: #000;
        }
    }
}

我想在这里添加带有伪类的新规则。 如何使用SCSS来获得此输出?

.box .item:first-child a:first-child {display: none;}
.box .item:last-child a:last-child {display: none;}

我知道我可以使用&父选择器,并且它可以与<a/>一起设置伪类:

a {
    color: #000;
    &:first-child {
        display: none;
    }
}

但是我该怎么做才能将伪类设置为上一个父级.item


更新

有什么办法做到不复制选择器?像这样: a { color: #000; $parent(has:first-child) {display: none;} }

1 个答案:

答案 0 :(得分:2)

您必须为其创建特定的嵌套规则:

.box {
    padding: 1rem;
    .item {
        paddding: 1rem;
        border: 1px solid #ccc;
        a {
            color: #000;
        }
        &:first-child,
        &:last-child {
            a {
                &:first-child,
                &:last-child {
                    display: none;
                }
            }  
        }
    }
}

我相信没有重构的方法。