嵌套在 &:hover 中的父选择器
Parent Selector nested inside &:hover
我正在使用 Less parent 选择器来缩短我的选择器:
.module-name {
// styles go here
&__sub-module-1 {
//styles go here
}
}
现在我的问题是如何继续使用父选择器在嵌套的 :hover 语句中添加模块名称。例如。在 sub-module-1 悬停时,我想更改 sub-module-2 中的某些内容。在 &:hover 语句中,父选择器指的是什么?
.module-name {
&__sub-module1 {
&:hover {
&__sub-module2 {
// on hover of .module-name__sub-module1 change something in .module-name__sub-module2
}
}
}
}
如果我这样写它可以工作,但是它违背了使用父选择器自动填写模块名称的目的:
.module-name {
&__sub-module1 {
&:hover {
.module-name__sub-module2 {
// on hover of .module-name__sub-module1 change something in .module-name__sub-module2
}
}
}
}
我希望我能充分表达我的问题;感谢您的帮助。
父级选择器 (&
) 将始终根据您所在的级别引用完整的父级。例如,在第一层嵌套中,&
指的是 .module-name
。第二层指的是.module-name__sub-module1
,第三层指的是.module-name__sub-module1:hover
.
Extract from Less Website: Note that &
represents all parent selectors (not just the nearest ancestor or the overall root ancestor)
以上声明中强调的部分是我根据上下文包含的
对于这种特殊情况,您可以将 module-name
分配给一个变量并使用如下所示的选择器插值来形成选择器。
与父选择器 (&
) 不同,变量值永远不会改变,无论您有多少层嵌套以及您在哪个嵌套层级使用它。
@module-name: mod-name;
.@{module-name} {
&__sub-module1 {
&:hover {
& .@{module-name}__sub-module2 {
// on hover of .module-name__sub-module1 change something in .module-name__sub-module2
color: blue;
}
}
}
}
我正在使用 Less parent 选择器来缩短我的选择器:
.module-name {
// styles go here
&__sub-module-1 {
//styles go here
}
}
现在我的问题是如何继续使用父选择器在嵌套的 :hover 语句中添加模块名称。例如。在 sub-module-1 悬停时,我想更改 sub-module-2 中的某些内容。在 &:hover 语句中,父选择器指的是什么?
.module-name {
&__sub-module1 {
&:hover {
&__sub-module2 {
// on hover of .module-name__sub-module1 change something in .module-name__sub-module2
}
}
}
}
如果我这样写它可以工作,但是它违背了使用父选择器自动填写模块名称的目的:
.module-name {
&__sub-module1 {
&:hover {
.module-name__sub-module2 {
// on hover of .module-name__sub-module1 change something in .module-name__sub-module2
}
}
}
}
我希望我能充分表达我的问题;感谢您的帮助。
父级选择器 (&
) 将始终根据您所在的级别引用完整的父级。例如,在第一层嵌套中,&
指的是 .module-name
。第二层指的是.module-name__sub-module1
,第三层指的是.module-name__sub-module1:hover
.
Extract from Less Website: Note that
&
represents all parent selectors (not just the nearest ancestor or the overall root ancestor)
以上声明中强调的部分是我根据上下文包含的
对于这种特殊情况,您可以将 module-name
分配给一个变量并使用如下所示的选择器插值来形成选择器。
与父选择器 (&
) 不同,变量值永远不会改变,无论您有多少层嵌套以及您在哪个嵌套层级使用它。
@module-name: mod-name;
.@{module-name} {
&__sub-module1 {
&:hover {
& .@{module-name}__sub-module2 {
// on hover of .module-name__sub-module1 change something in .module-name__sub-module2
color: blue;
}
}
}
}