悬停 class 仅当元素是超链接时适用

Hover class apply only if element is an hyperlink

我想知道当我在一个项目上工作时是否可以实现这一点,但假设目前似乎不可能在不改变结构的情况下获得这种行为(我真的很想将悬停保持在它自己的 class 声明),对您来说,最干净的解决方案是什么?

@blue: blue;
@blue-darker: darken(@blue, 20%);

.text-blue {
    color: @blue;

    /* something like that */
    &:hover when (element_reference == hyperlink) {
        color: @blue-darker;
    }
}

CSS

.text-blue {
    color: blue;
}

/* something like that */
a.text-blue:hover {
    color: #000099;
}

HTML

<p class="text-blue">Text in blue with no hover effect</p>
<a class="text-blue" href="#">Link in blue with hover effect</a>

这应该可以满足您的要求:

.text-blue {
    color: @blue;
    a&:hover {
        color: @blue-darker;
    }
}

Fiddle

我会使用 :link CSS 伪类,因为没有 href<a> 不会被视为超链接。参见 https://jsfiddle.net/jsqdom1s/

.text-blue {
  color: @blue;
  a&:link:hover {
    color: @blue-darker;
  }
}