首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从悬停中排除伪元素

从悬停中排除伪元素
EN

Stack Overflow用户
提问于 2015-02-23 14:14:15
回答 1查看 1.1K关注 0票数 3

如何排除诸如:before:after这样的伪元素被选择器更改,例如::hover

也许有某种我不知道的“主伪元素”?

我尝试过使用CSS3 :not()语句,但这不起作用。

使用:.facebook:hover:before {color: black;}运行良好,但我确信有更好的解决方案。

示例:我希望Facebook标识保持黑色,并更改文本颜色。

代码语言:javascript
复制
body {
  background: #F7F7F7;
  margin: 0px;
}
.share-button {
  background: #FFFFFF;
  border: 1px solid #D8D8D8;
  display: inline-block;
  font-family: 'Open Sans';
  font-weight: 600;
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: 2px;
  margin: 0px;
  padding: 12px 24px 12px 12px;
  transition: color 1s;
}
.facebook:before {
  display: inline-block;
  height: auto;
  font-family: 'FontAwesome';
  font-size: 12px;
  padding-right: 12px;
  width: auto;
  content: '\f09a';
}
.share-button:hover {
  color: #374D8D;
}
代码语言:javascript
复制
<button class="share-button facebook">
  Share on facebook
</button>

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-02-23 14:19:02

这里的问题不是伪元素本身是由:hover选择器“匹配”的,而是它从元素上相应的CSS规则继承了color属性。

这就是为什么需要在:before伪元素上显式设置它的原因--您不能使用选择器阻止继承,也不能在父元素或原始元素上使用样式。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28675755

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档