在 LESS 中嵌套祖先规则
Nesting ancestor rules in LESS
我有一个 LESS 文件,其中包含了一大堆规则 class:
body.programme {
#VideoWrapper {
border: 1px solid red;
}
etc...
}
但是,如果正文中存在另一个 class,我想更改 #VideoWrapper 的样式。我以为我可以做以下事情...
body.programme {
#VideoWrapper {
border: 1px solid red;
body.inside & {
border: 1px solid yellow;
}
}
etc...
}
基本上我正在尝试输出以下 CSS 规则:
body.programme #VideoWrapper {
border: 1px solid red;
}
body.programme.inside #VideoWrapper {
border: 1px solid yellow;
}
如果不从父 body.programme 包装器中提取规则,这在 LESS 中是否可行?
我认为使用 & 符号选择器应该可以解决问题,像这样:
body.programme {
#VideoWrapper {
// Your styles
}
&.inside {
#VideoWrapper {
// Different styles
}
}
}
另一种方法(唉,这意味着将这些样式移出 body
)可能是:
#VideoWrapper {
// generic styles
body.programme & {
// special styles
}
body.programme.inside & {
// further styles
}
}
但这可能也不能满足你的强迫症。
我有一个 LESS 文件,其中包含了一大堆规则 class:
body.programme {
#VideoWrapper {
border: 1px solid red;
}
etc...
}
但是,如果正文中存在另一个 class,我想更改 #VideoWrapper 的样式。我以为我可以做以下事情...
body.programme {
#VideoWrapper {
border: 1px solid red;
body.inside & {
border: 1px solid yellow;
}
}
etc...
}
基本上我正在尝试输出以下 CSS 规则:
body.programme #VideoWrapper {
border: 1px solid red;
}
body.programme.inside #VideoWrapper {
border: 1px solid yellow;
}
如果不从父 body.programme 包装器中提取规则,这在 LESS 中是否可行?
我认为使用 & 符号选择器应该可以解决问题,像这样:
body.programme {
#VideoWrapper {
// Your styles
}
&.inside {
#VideoWrapper {
// Different styles
}
}
}
另一种方法(唉,这意味着将这些样式移出 body
)可能是:
#VideoWrapper {
// generic styles
body.programme & {
// special styles
}
body.programme.inside & {
// further styles
}
}
但这可能也不能满足你的强迫症。