Есть ли способ использовать псевдо-классы css как mixins с lesscss-компиляторами?
Я пытался использовать класс с классом psuedo в менее 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 еще не поддерживают псевдо-классы.
Ответы
Ответ 1
Я не верю, что вы используете mixin в Less.
Вы определили псевдо-класс ссылки, а затем вложили его под посещенный псевдокласс. Это на самом деле ничего не значит, и почему вы получаете этот результат.
Если я думаю, на что вы нацелены, нужно повторно использовать свои стили ссылок через: visited и: link, вы действительно захотите этого:
.link {
color: #138CB4;
text-decoration: none;
}
a:link {
.link;
}
a:visited{
.link;
color: #84B6CD;
}
Ответ 2
Вначале я был немного смущен этим и обнаружил, что прыгаю через обручи, чтобы заставить его работать. Хотя ваш пост достаточно стар, чтобы он мог предварительно установить эту функциональность для всего, что я знаю.
В любом случае, если вы просто пытаетесь добавить дополнительные стили к существующему стилю с помощью псевдоселекторов, вы можете использовать '&' оператор. Он работает как ключевое слово '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;
}
}
Официальное определение, к сожалению, скрыто в виде правил вложения в документации.
Ответ 3
Не совсем уверен, чего вы хотите достичь. Но если вам надоело: link,: visted,: active (aka normal link) vs.: focus,: hover (hover styles), это работает:
.anchor( @- ) {
a, a:link, a:visited, a:active {
@-();
}
}
.anchorH( @- ) {
a:focus, a:hover {
@-();
}
}
например:
.anchor({
background: #fff;
});
.anchorH({
background: #ddd; /* darken on hover or focus */
});