pan*_*sru 17 css mixins pseudo-class less
我想知道如何用更少的css做以下事情:
.btn {
color : black;
}
.btn:hover {
color : white;
}
.btn-foo {
.btn;
&:hover {
.btn:hover;
}
}
Run Code Online (Sandbox Code Playgroud)
当然这只是一个例子,需要指出的是,如果有任何方法来扩展伪类,以避免:hover在我需要的地方重新键入伪类的属性.我知道我可以为此创建一个mixin,但我想知道我是否可以避免它.
谢谢
bzx*_*bzx 31
更新:如果您无法修改外部文件只需重新定义选择器,并添加缺少状态:
.btn {
// not adding anything here, won't affect existing style
&:hover {
// adding my own hover state for .btn
background: yellow;
...
}
}
// this will make your foo button appear as in external style
// and have the :hover state just as you defined it above
.btn-foo {
.btn;
}
Run Code Online (Sandbox Code Playgroud)
现在好点了?:)
你不需要伪类.它会工作:)
试试这个:
.btn {
background: yellow;
&:hover { // define hover state here
background: green;
}
}
button {
.btn;
}
Run Code Online (Sandbox Code Playgroud)
<button class='btn'>您创建的每个元素都将继承已定义的内容,包括悬停状态.我认为这是LESS的主要特色之一.
希望这可以帮助.
在Less 1.4.0(1.4.1?)中
这个:
.btn {
color : black;
}
.btn:hover {
color : white;
}
.btn-foo:extend(.btn all) {
}
Run Code Online (Sandbox Code Playgroud)
扩展到这个:
.btn,
.btn-foo {
color: black;
}
.btn:hover,
.btn-foo:hover {
color: white;
}
Run Code Online (Sandbox Code Playgroud)
不过要小心,这个:
.btn {
color : black;
}
.btn:hover {
color : white;
}
.abc .btn {
margin: 2px;
}
.btn-foo:extend(.btn all) {
}
Run Code Online (Sandbox Code Playgroud)
输出这个:
.btn {
color : black;
}
.btn:hover {
color : white;
}
.abc .btn {
margin: 2px;
}
.btn-foo:extend(.btn all) {
}
Run Code Online (Sandbox Code Playgroud)
我没有看过SASS超过半小时,但我相信后一种情况是它的默认(或唯一)@extend行为.