在嵌套结构中使用 SASS/SCSS 更改 .js class
Using SASS/SCSS to alter a .js class, within a nested structure
一个快速的(希望如此)。
我有类似的东西:
.front-cards-content {
.front-card-content {
&:nth-of-type(2n+1) {
.card-content-icon {
strong {
&:hover {
// Do something...
}
}
}
}
}
}
如您所见,// Do something
大量嵌套在相关父项中。
如果我想确保只有在启用 JavaScript 时才会发生某些事情,我可以使用附加到我的 <html>
标签的 .js
class。
但是,无论 .js
开关是否存在,此层次结构中的所有其他内容都应该可用。
我知道我可以简单地复制和粘贴整个内容,然后将 .js
添加到嵌套 class 的开头,但这似乎非常违反直觉。
有没有办法解决这个问题?以某种方式将 .js
添加到我正在工作的层次结构的根目录,而不需要全部复制和粘贴(这可能会导致维护问题)?
您可以使用 SASS 符号父选择器。
它会查找 .js class 作为顶级选择器 (.front-cards-content) 的任何父级,例如,如果您有 <html class="js">
.
.front-cards-content {
.front-card-content {
&:nth-of-type(2n+1) {
.card-content-icon {
strong {
&:hover {
// Do something...
.js & {
// Do something different if JS is a parent of top selector (e.g. in html or body tag
}
}
}
}
}
}
}
一个快速的(希望如此)。
我有类似的东西:
.front-cards-content {
.front-card-content {
&:nth-of-type(2n+1) {
.card-content-icon {
strong {
&:hover {
// Do something...
}
}
}
}
}
}
如您所见,// Do something
大量嵌套在相关父项中。
如果我想确保只有在启用 JavaScript 时才会发生某些事情,我可以使用附加到我的 <html>
标签的 .js
class。
但是,无论 .js
开关是否存在,此层次结构中的所有其他内容都应该可用。
我知道我可以简单地复制和粘贴整个内容,然后将 .js
添加到嵌套 class 的开头,但这似乎非常违反直觉。
有没有办法解决这个问题?以某种方式将 .js
添加到我正在工作的层次结构的根目录,而不需要全部复制和粘贴(这可能会导致维护问题)?
您可以使用 SASS 符号父选择器。
它会查找 .js class 作为顶级选择器 (.front-cards-content) 的任何父级,例如,如果您有 <html class="js">
.
.front-cards-content {
.front-card-content {
&:nth-of-type(2n+1) {
.card-content-icon {
strong {
&:hover {
// Do something...
.js & {
// Do something different if JS is a parent of top selector (e.g. in html or body tag
}
}
}
}
}
}
}