不考虑背景颜色 rgba 不透明度的标签
A tag not respecting background color rgba opacity
我遇到了一个奇怪的情况:
在下面的代码片段中,当我尝试将 rgba
颜色应用到我的 a 标签时,它就像是 rgb
颜色,而不是 rgba
。所以文本背景是纯色的,但背景的其余部分(来自 span
而不是 a
)具有正确的不透明度。
我知道我可以将 :hover
查询分开,这会解决问题,但我想知道为什么要这样做?我做错了什么?
span {
display: inline-block;
padding: 5px;
border: 2px solid #00bcd4;
border-radius: 5px;
margin: 5px;
background: #ffffff;
cursor: pointer;
}
span a {
text-decoration: none;
color: #00bcd4;
}
span:hover,
span:hover a {
background: rgba(0, 188, 212, 0.5);
color: #ffffff;
}
<span><a href="">Link</a></span>
span:hover,
span:hover a {
background: rgba(0, 188, 212, 0.5);
这意味着您在其内部 "a" 的范围 和 上设置了 50% 的不透明度背景。在 "a" 上,您会看到 50% 的背景,后面是 span 的背景,因此它会显得更暗。
解决方案:
span {
display: inline-block;
padding: 5px;
border: 2px solid #00bcd4;
border-radius: 5px;
margin: 5px;
background: #ffffff;
cursor: pointer;
}
span a {
text-decoration: none;
color: #00bcd4;
}
span:hover {
background: rgba(0, 188, 212, 0.5);
}
span:hover a {
color: #ffffff;
}
<span><a href="">Link</a></span>
尝试添加 opacity:0.5;在
span:hover,
span:hover a {
background: rgba(0, 188, 212, 0.5);
color: #ffffff;
}
仅将背景应用于跨度并将颜色应用于锚点 link。
span:hover {
background: rgba(0, 188, 212, 0.5);
}
span:hover a {
color: #ffffff;
}
我遇到了一个奇怪的情况:
在下面的代码片段中,当我尝试将 rgba
颜色应用到我的 a 标签时,它就像是 rgb
颜色,而不是 rgba
。所以文本背景是纯色的,但背景的其余部分(来自 span
而不是 a
)具有正确的不透明度。
我知道我可以将 :hover
查询分开,这会解决问题,但我想知道为什么要这样做?我做错了什么?
span {
display: inline-block;
padding: 5px;
border: 2px solid #00bcd4;
border-radius: 5px;
margin: 5px;
background: #ffffff;
cursor: pointer;
}
span a {
text-decoration: none;
color: #00bcd4;
}
span:hover,
span:hover a {
background: rgba(0, 188, 212, 0.5);
color: #ffffff;
}
<span><a href="">Link</a></span>
span:hover,
span:hover a {
background: rgba(0, 188, 212, 0.5);
这意味着您在其内部 "a" 的范围 和 上设置了 50% 的不透明度背景。在 "a" 上,您会看到 50% 的背景,后面是 span 的背景,因此它会显得更暗。
解决方案:
span {
display: inline-block;
padding: 5px;
border: 2px solid #00bcd4;
border-radius: 5px;
margin: 5px;
background: #ffffff;
cursor: pointer;
}
span a {
text-decoration: none;
color: #00bcd4;
}
span:hover {
background: rgba(0, 188, 212, 0.5);
}
span:hover a {
color: #ffffff;
}
<span><a href="">Link</a></span>
尝试添加 opacity:0.5;在
span:hover,
span:hover a {
background: rgba(0, 188, 212, 0.5);
color: #ffffff;
}
仅将背景应用于跨度并将颜色应用于锚点 link。
span:hover {
background: rgba(0, 188, 212, 0.5);
}
span:hover a {
color: #ffffff;
}