Sass 检查类选择器中的元素类型
在Sass中,我们都会这样做:Sass 检查类选择器中的元素类型,sass,css-selectors,Sass,Css Selectors,在Sass中,我们都会这样做: button { @extend %button; &.previous, &.next { background: blue; } } 今天,我需要的正好相反:检查类选择器中的元素类型。这是我的第一次尝试,我希望能成功: .previous, .next { @extend %button; &span { opacity: .3; } } 不幸的是,这会输出选择器,如.previous
button {
@extend %button;
&.previous,
&.next {
background: blue;
}
}
今天,我需要的正好相反:检查类选择器中的元素类型。这是我的第一次尝试,我希望能成功:
.previous,
.next {
@extend %button;
&span {
opacity: .3;
}
}
不幸的是,这会输出选择器,如.previousspan
和.nextspan
。我试着使用span&
,或者插值,因为我认为它可以解决我的问题,但是我被卡住了
有什么想法吗
注意:很明显,我可以把这个span
选择器放在外面(这就是我让它工作的方法),但这不是我问题的重点。我真的在寻找正确的方法,谢谢
使用最新版本的Sass,您可以这样实现它:
.class {
@at-root {
div#{&} {
opacity: .3;
}
}
}
@在根目录下,将确保使选择器的“作用域”为空,同时仍然允许您访问ampersand变量
不过,通常最好不要以标记名为目标。从字面上说。我尝试过这个,但出于某种原因,它会输出
。previous span.previous
,这是不正确的。我同意你关于定位标记名的观点,我覆盖了一些CMS样式,对HTML结构没有控制权。也不起作用,因为有两个类选择器。它将输出span.previous、.next{}
而不是span.previous、span.next{}
。无论如何,我发现根目录下的@可以用作块包装器!那么你在寻找这个问题:太好了,非常感谢!你有没有办法更改副本,重定向到正确的答案?我想你可以像OP一样自己关闭副本。完成后,谢谢你的帮助。