回答
这要看情况。
如果您只是希望在a
元素相匹配的伪类将样式应用到:before
伪元素,你需要写a:hover:before
或a:visited:before
来代替。注意伪元素后伪类(并且实际上,在整个选择器的最后)。还要注意它们是两个不同的东西;把它们称为“伪选择器”会让你感到困惑,一旦遇到这样的语法问题。
如果您正在编写CSS3,您可以使用双冒号表示一个伪元素,以使此区别更清晰。因此,a:hover::before
和a:visited::before
。但是,如果您正在开发IE8等旧版浏览器,那么您可以轻松使用单个冒号。
伪类和伪元素的这种特定顺序在spec指出:
一个伪元素可以被附加到简单选择器中的选择器的最后一个序列。
A 简单选择器的序列是不由组合器分隔的简单选择器链。它总是以类型选择器或通用选择器开始。序列中不允许使用其他类型选择器或通用选择器。
A 简单选择器是类型选择器,通用选择器,属性选择器,类别选择器,ID选择器或伪类。
伪类是一个简单的选择器。但是,伪元素不是,即使它类似于简单的选择器。
然而,如:hover
用户动作伪类,如果你需要这个效果适用仅当用户与伪元素本身,而不是a
元素进行交互,那么这是不是除了通过一些模糊的布局相关的解决方法之外可能。正如文中所暗示的那样,标准的CSS伪元素当前不能具有伪类。在这种情况下,您需要将:hover
应用于实际的子元素而不是伪元素。
当然,这并不适用于伪类链接如:visited
如在问题,因为伪元素都没有联系。
写a:hover::before
而不是a::before:hover
:example。
正确的语法将是:hover :: – mikkelbreum 2013-06-05 20:42:48
@mikkelbreum你有参考证明吗? – shea 2014-03-02 02:36:38
@bungeshea:这是CSS3语法。请参阅我的回答下的评论(以及我最近的编辑)。将它称为“正确的语法”有点不准确,因为CSS1/2伪元素允许单冒号和双冒号。我将其称为* recommended *语法,因为今天继续使用传统语法的唯一原因是支持IE8及更早版本。 – BoltClock 2015-01-13 18:07:02
在鼠标悬停上更改菜单链接的文本。(悬停不同语言文本) 这里是
HTML:
<a align="center" href="#"><span>kannada</span></a>
CSS:
span {
font-size:12px;
}
a {
color:green;
}
a:hover span {
display:none;
}
a:hover:before {
color:red;
font-size:24px;
content:"ಕನ್ನಡ";
}
这是一个可爱的答案。 事实上,它激发了我[略微扩展你的小提琴](http://jsfiddle.net/YSgKL/784/),将span文本的字体大小提高到24px以匹配替换文本,并添加了3个非在替换文本之前和之后分隔空间,以便它们占据相同的宽度,并使用'text-decoration:underline'设置'a:hover :: before',这将导致下划线拾取替换文本的红色。 – 2016-08-11 02:43:47
您还可以与一类使用限制你的行动右尖括号(“>”),正如我在此代码中所做的:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<style type="text/css">
span {
font-size:12px;
}
a {
color:green;
}
.test1>a:hover span {
display:none;
}
.test1>a:hover:before {
color:red;
content:"Apple";
}
</style>
</head>
<body>
<div class="test1">
<a href="#"><span>Google</span></a>
</div>
<div class="test2">
<a href="#"><span>Apple</span></a>
</div>
</body>
</html>
注:悬停:交换机只能在.test1类
前BoltClock的答案是正确的。我想追加的唯一的事情是,如果你只想选择伪元素,放入一个跨度。
比如:
<li><span data-icon='u'></span> List Element </li>
代替:
<li> data-icon='u' List Element</li>
这样,你可以简单地说
ul [data-icon]:hover::before {color: #f7f7f7;}
这只会凸显伪元素,而不是整个li元素
尝试使用::
使用.card-listing:hover::after
hover
和after
它西港岛线工作
- 1. 如何更改之前在悬停
- 2. 鼠标悬停.animate停止之前.animate
- 3. (在任何悬停事件生效之前)与悬停事件相同
- 4. 如何更改jQuery上和之后悬停的图像?
- 5. 悬停错误:在Safari上之前
- 6. CSS悬停在元素之前
- 7. 元素的悬停之前,把(translateZ)
- 8. 链接显示元素:悬停之前
- 9. 不适用:悬停时悬停在:元素之前
- 10. 了解:之后和:之前
- 11. :之后和:之前崩溃?
- 12. 之前和之后在mySql
- 13. 在写入文件之前和写入文件之后的差异
- 14. SPListItem在事件之前和之后的值如何?
- 15. SASS:之后:悬停选择器
- 16. 如何在条件满足之前暂停jQuery?
- 17. 在停止程序之前,文件如何写入?
- 18. 如何在::之前:: ::之后写入锚标签
- 19. 如何click事件之后停止鼠标悬停及移出功能
- 20. 如何在悬停之前触发css转换
- 21. lower_bound和upper_bound之后和之前
- 22. 之前停止Scalatest套件
- 23. 如何为::之前
- 24. 如何使用:之前:在IE6,7之后?
- 25. TDD和编写源代码之前或之后的测试?
- 26. 如何启用-webkit-animation/transition-property用于:之前和之后:伪元素之后?
- 27. SAS:如何编写一条IF语句在某个日期之前和之后对数据进行分类
- 28. 多行之前和之后的Mysql
- 29. 在节点之前和之后插入
- 30. 负值之前和之后的PHP值
应当指出的是,它将在悬停父元素 - 这会导致应用装修即使::后pseudoelement不是鼠标下,只要它的父母是。 – SamGoody 2012-06-26 09:23:34
还应该注意的是,由于指定了布局规则的方式,有很多事情*不会*对此做出响应 - 例如, '文本decoration'。 – 2013-04-21 00:16:34
@Chris Krycho:的确 - 我实际上碰巧对这个与伪元素有关的特定问题有解释[这里](http://stackoverflow.com/questions/11474780/hoverbefore-text-decoration-none-has-无效果/ 11481121#11481121)。当然,值得澄清的是,问题本身与伪类/伪元素*选择器*没有关系,但正如您指出的那样,布局问题。 – BoltClock 2013-04-21 03:00:28