Css 从悬停中排除伪元素

Css 从悬停中排除伪元素,css,hover,pseudo-element,Css,Hover,Pseudo Element,如何排除像:before和:after这样的伪元素被选择器更改,例如::hover 也许有某种我不知道的“主要伪元素” 我尝试过使用CSS3:not()语句,但这不起作用 使用:.facebook:hover:before{color:black;}可以很好地工作,但我确信有更好的解决方案 示例: 我希望Facebook徽标保持黑色,并更改文本颜色 正文{ 背景:#F7F7F7; 边际:0px; } .共享按钮{ 背景:#FFFFFF; 边框:1px实心#d8d8; 显示:内联块; 字体系列

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

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

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

使用:
.facebook:hover:before{color:black;}
可以很好地工作,但我确信有更好的解决方案


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

正文{
背景:#F7F7F7;
边际:0px;
}
.共享按钮{
背景:#FFFFFF;
边框:1px实心#d8d8;
显示:内联块;
字体系列:“开放式SAN”;
字号:600;
字体大小:12px;
文本转换:大写;
字母间距:2px;
边际:0px;
填充:12px 24px 12px 12px;
过渡:颜色1s;
}
.脸书:以前{
显示:内联块;
高度:自动;
字体系列:“FontAwesome”;
字体大小:12px;
右侧填充:12px;
宽度:自动;
内容:'\f09a';
}
.共享按钮:悬停{
颜色:#374D8D;
}

在facebook上分享

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


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

中设置颜色。facebook:before
工作正常@Maarten1909:事实上-我刚刚注意到在
:hover
规则上只有
颜色
声明。