我试图在较少的css mixin
中使用带有伪类的类a:link{
color:#138CB4;
text-decoration:none;
}
a:visited{
a:link;
color:#84B6CD;
}
但是我得到的就是这个,这是一个无效的CSS
a:link{
color: #138CB4;
text-decoration: none;
}
a:visited{
a: link;
color: #84B6CD;
}
我在这里遗漏了什么或者mixins还不支持伪类。
答案 0 :(得分:11)
起初我也对此感到有些困惑,并发现自己跳过篮球让它发挥作用。虽然你的帖子已经足够大,但它可能会为我所知道的所有功能提供此功能。
无论如何,如果您只是尝试通过伪选择器向现有样式添加其他样式,则可以使用'&'运营商。它有点像'this'关键字,并将嵌套转换为简单组合。所以你应该能够做到:
a {
color: #138CB4;
text-decoration: none;
&:visited {
color: #84B6CD;
}
}
这应该编译成类似的东西:
a {
color: #138CB4;
text-decoration: none;
}
a:visited {
color: #84B6CD;
}
请注意,您也可以使用&组合'子选择器':
.outer {
color: blue;
.error {
//this will select elements that are .error inside-of/descending-from .outer
}
&.error {
//This will select elements that are .outer AND .error
color: red;
}
}
不幸的是,官方定义隐藏在文档的Nesting Rules部分。
答案 1 :(得分:5)
我不相信你在Less中使用mixin的方式。
您已定义链接伪类,然后将其嵌套在已访问的伪类下。这实际上并不意味着什么,这就是为什么你得到的结果。
如果我认为你的目标是重复使用你的链接样式:visit和:link,你实际上会想要这个:
.link {
color: #138CB4;
text-decoration: none;
}
a:link {
.link;
}
a:visited{
.link;
color: #84B6CD;
}
答案 2 :(得分:-1)
不完全确定,您想要实现的目标。但如果你厌倦了:链接,:访问,:活跃(也就是正常链接)与:焦点,:悬停(悬停样式),这有效:
.anchor( @- ) {
a, a:link, a:visited, a:active {
@-();
}
}
.anchorH( @- ) {
a:focus, a:hover {
@-();
}
}
例如:
.anchor({
background: #fff;
});
.anchorH({
background: #ddd; /* darken on hover or focus */
});