好吧,假设我有以下传统的CSS
.social-media { /* ... */ }
.social-media .twitter { /* ... */ }
.social-media .facebook { /* ... */ }
ul.social-media { /* ... */ }
Run Code Online (Sandbox Code Playgroud)
所以,我尝试用SCSS这样做:
.social-media {
/* ... */
.twitter {
/* ... */
}
.facebook {
/* ... */
}
// Here's the problem:
ul& {
/* ... */
}
}
Run Code Online (Sandbox Code Playgroud)
最后一部分不起作用,因为似乎&符号应该只出现在选择器的开头.有解决方法吗?
cim*_*non 24
你唯一能做的就是反转你的嵌套或者根本不用嵌套:.social-media {
/* ... */
.twitter {
/* ... */
}
.facebook {
/* ... */
}
}
ul.social-media {
/* ... */
}
Run Code Online (Sandbox Code Playgroud)
你可以使用插值和@at-root指令来做到这一点:
.social-media {
/* ... */
// Here's the solution:
@at-root ul#{&} {
/* ... */
}
}
Run Code Online (Sandbox Code Playgroud)
但是,如果您的父选择器包含多个选择器,则需要使用selector-append:
.social-media, .doodads {
/* ... */
// Here's the solution:
@at-root #{selector-append(ul, &)} {
/* ... */
}
}
Run Code Online (Sandbox Code Playgroud)
输出:
.social-media, .doodads {
/* ... */
}
ul.social-media, ul.doodads {
/* ... */
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2128 次 |
| 最近记录: |