我怎样才能写出a:before
的:hover
和:visited
条件呢?
我试了a:before:hover
次,但没用.
我怎样才能写出a:before
的:hover
和:visited
条件呢?
我试了a:before:hover
次,但没用.
这取决于您实际想要做什么.
如果只想在a
元素与伪类匹配时将样式应用于:before
伪元素,则需要编写a:hover:before
或a:visited:before
.请注意,伪元素来自伪类(实际上,位于整个 Select 器的末尾).还要注意,它们是两个不同的东西;一旦你遇到像这样的语法问题,把它们都称为"伪 Select 器"会让你感到困惑.
如果您正在编写CSS3,您可以用双冒号表示伪元素,以使这种区别更加清晰.因此,a:hover::before
和a:visited::before
.但是,如果您是为IE8或更早版本的遗留浏览器进行开发,那么使用单个冒号就可以了.
伪类和伪元素的这种特定顺序在spec:
可以将一个伪元素附加到 Select 器中的最后一个简单 Select 器序列.
sequence of simple selectors是一系列简单的 Select 器,它们之间没有组合符.它总是以类型 Select 器或通用 Select 器开始.序列中不允许使用其他类型 Select 器或通用 Select 器.
simple selector可以是类型 Select 符、通用 Select 符、属性 Select 符、类 Select 符、ID Select 符或伪类.
伪类是一个简单的 Select 器.然而,伪元素不是,尽管它类似于一个简单的 Select 器.
但是,对于用户操作伪类,例如:hover
1,如果当用户与伪元素本身交互而不是与a
元素交互时,需要应用only这种效果,那么除了通过一些模糊的依赖布局的变通方法之外,这是不可能的.正如本文所暗示的,标准CSS伪元素目前不能有伪类.在这种情况下,需要将:hover
应用于实际的子元素,而不是伪元素.
1 Of course, this does not apply to link pseudo-classes such as :visited
as in the question, since pseudo-elements aren't links.