首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >sass冒号vs sass冒号

sass冒号vs sass冒号
EN

Stack Overflow用户
提问于 2021-08-19 15:30:10
回答 2查看 89关注 0票数 1

我使用sass来表示stying元素,并对:&:以及何时使用它们感到困惑。

有什么不同?我们应该在什么时候使用哪一个?

代码语言:javascript
复制
.root{

    :first-child{
        color: green;
    }
    
    &:first-child{
        color: green
    }
}

哪种方法适合选择root容器的第一个子容器

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-08-20 00:09:23

事实证明,没有:&:

相反,有效的是&:

代码语言:javascript
复制
&:first-child{
    color: green
}

下面显示的一个是不带&:是无效的

代码语言:javascript
复制
:first-child{
    color: green;
}

//this one is an invalid code and doesn't work
票数 0
EN

Stack Overflow用户

发布于 2021-08-20 00:16:12

ampersand & is the "parent selector" in Sass,并将其后面的规则附加到包含父作用域。但是,您拥有的这两条规则都不起作用。第一个...

代码语言:javascript
复制
.root{
    :first-child{
        color: green;
    }
}

...would呈现到CSS...

代码语言:javascript
复制
.root :first-child{
    color: green;
}

...which将是无效的CSS,因为:first-child pseudo-class期望附加到实际的CSS选择器。

第二个...

代码语言:javascript
复制
.root{
    &:first-child{
        color: green
    }
}

...would呈现为CSS ...

代码语言:javascript
复制
.root:first-child{
    color: green
}

...but这条规则等同于“.root类的第一个孩子应该是绿色的”,这并不是你想要的。

对于您想要的--“选择根容器的第一个孩子”,您可能需要这个CSS:

代码语言:javascript
复制
.root > *:first-child {
  color: green;
}
代码语言:javascript
复制
<div class="root">
  <p>some content</p>
  <div>
    <ul>
      <li>some</li>
      <li>other</li>
      <li>content</li>
    </ul>
  </div>
</div>

...which等同于“具有.root类的容器中任何类型的第一个直接派生。

代码语言:javascript
复制
.root {
    >* {
        &:first-child {
            color: green;
        }
    }
}

我可能会把它简化为...but。

代码语言:javascript
复制
.root {
    >*:first-child {
        color: green;
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68850640

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档