这是我的style.less
代码:
.transition {
-ms-transition: all 0.3s ease-in-out;
-moz-transition: all 0.3s ease-in-out;
-o-transition: all 0.3s ease-in-out;
-webkit-transition: all 0.3s ease-in-out;
transition: all 0.3s ease-in-out;
}
.shadow {
padding: 10px 10px 10px 10px;
margin: 10px 10px 10px 10px;
-moz-box-shadow: 0px 0px 10px #808080;
-o-box-shadow: 0px 0px 10px #808080;
-webkit-box-shadow: 0px 0px 10px #808080;
box-shadow: 0px 0px 10px #808080;
}
.shadow:hover {
-moz-box-shadow: 0px 0px 10px #a5a5a5;
-o-box-shadow: 0px 0px 10px #a5a5a5;
-webkit-box-shadow: 0px 0px 10px #a5a5a5;
box-shadow: 0px 0px 10px #a5a5a5;
}
.radius {
-moz-border-radius: 5px;
-webkit-border-radius: 5px;
border-radius: 5px;
}
#t1 {
.shadow;
.transition;
.radius;
}
但是当我悬停#t1
时,阴影不会改变。我想知道为什么它不起作用并期望添加#t1:hover
并继承风格还有其他方式吗?
答案 0 :(得分:6)
您需要更改.hover
类以包含:hover
状态作为类定义的一部分:
.hover {
...styles...
&:hover {
...hover state styles...
}
}
.someOtherClass {
.hover;
}
答案 1 :(得分:2)
为了正确生成:hover
个样式,您需要通过.shadow
运算符连接.shadow:hover
和&
,以便它们属于一起:
.shadow {
/*normal styles*/
&:hover{
/* hover styles */
}
}
其余的可以保持不变,因为
#t1{
.shadow;
}
现在将自动生成正常规则和悬停规则。
您可以在此处试用:Online-Less-Converter
您通过.shadow
运算符添加到&
的其他每个块也会自动应用于#t1
,因此如果您添加另一个:
.shadow{
&:hover{}
&.foo{
/* another set of rules*/
}
}
#t1{
.shadow; /* this will now generate 3 ruleblocks for #t1*/
}
还会为.foo
生成#t1
ruleblock:
#t1{...}
#t1:hover{...}
#t1.foo{/* another set of rules*/}