请改用rgba(r, g, b, a)值.
在:hover改变alpha值.
a {
display: block;
width: 100px;
height: 100px;
background: rgba(255, 0, 0, 1);
position: relative;
}
a:before {
position: absolute;
top: 0;
left: 0;
color: white;
content: "?";
background: green;
}
a:hover {
background: rgba(255, 0, 0, 0.5);
}Run Code Online (Sandbox Code Playgroud)
<a href="www.google.com"></a>Run Code Online (Sandbox Code Playgroud)
如果您正在处理图像,则无法在不影响父级的情况下实际更改图像的不透明度.如果您确实想使用伪选择器,可以在元素周围创建一个容器,将:before选择器附加到该元素并hover仅在内部元素上应用状态.
div {
position: relative;
}
a {
display: block;
width: 200px;
height: 200px;
background: url(http://suptg.thisisnotatrueending.com/archive/19343530/images/1338832441002.png);
}
div:before {
position: absolute;
top:0;
left:0;
color:white;
content:"?";
background: green;
z-index: 2;
}
a:hover {
opacity: 0.5;
}Run Code Online (Sandbox Code Playgroud)
<div>
<a href="www.google.com"></a>
</div>Run Code Online (Sandbox Code Playgroud)
这是jsFiddle的一个例子