如何摆脱悬停时锚点内图片元素上出现的 background-color 条带?
How to get rid of a strip of background-color appearing over a picture element inside an anchor on hover?
我使用 picture
元素渲染我网站上几个图标的深色和 light-mode 版本。
这些图片恰好位于锚元素内,因此我可以将它们与文本标题一起设置为可点击 links。
<a href="https://github.com/Antrikshy">
<picture>
<source srcset="/path/to/github-mark-dark.png" media="(prefers-color-scheme: light)">
<source srcset="/path/to/github-mark-light.png" media="(prefers-color-scheme: dark)">
<img src="/path/to/github-mark-dark.png">
</picture>
<br/>
<small>More on GitHub</small>
</a>
当我尝试像这样在我的网站上设置 link 样式时...
a:hover {
background-color: var(--brand-color-2);
color: var(--main-background-color);
}
...当 link 悬停在 上时, 会导致这些 picture
元素在其上呈现小条背景色。
当然,我只希望文本在悬停时接收这些样式。
我似乎绝对无法摆脱那条带子。我确实注意到设置 picture { font-size: 0; }
似乎稍微向上移动了行,但它们保持相同的大小。
要删除不需要的条带,请使用此 CSS(即具体说明您只希望文本在悬停时具有更改的背景颜色)
a:hover small {
background-color: var(--brand-color-2);
color: var(--main-background-color);
}
否则图片的透明部分也会获得背景颜色。
更新,因为这不合适,因为如果想在整个站点设置链接样式,则必须找到另一种防止透明位显示背景色的方法。
最简单的好像是设置
a picture { background-color: white; }
尽管为了在整个网站上更好地通用,使用 CSS 变量而不是固定颜色,或者如果使用不同的颜色背景则更具体。
我使用 picture
元素渲染我网站上几个图标的深色和 light-mode 版本。
这些图片恰好位于锚元素内,因此我可以将它们与文本标题一起设置为可点击 links。
<a href="https://github.com/Antrikshy">
<picture>
<source srcset="/path/to/github-mark-dark.png" media="(prefers-color-scheme: light)">
<source srcset="/path/to/github-mark-light.png" media="(prefers-color-scheme: dark)">
<img src="/path/to/github-mark-dark.png">
</picture>
<br/>
<small>More on GitHub</small>
</a>
当我尝试像这样在我的网站上设置 link 样式时...
a:hover {
background-color: var(--brand-color-2);
color: var(--main-background-color);
}
...当 link 悬停在 上时, 会导致这些 picture
元素在其上呈现小条背景色。
当然,我只希望文本在悬停时接收这些样式。
我似乎绝对无法摆脱那条带子。我确实注意到设置 picture { font-size: 0; }
似乎稍微向上移动了行,但它们保持相同的大小。
要删除不需要的条带,请使用此 CSS(即具体说明您只希望文本在悬停时具有更改的背景颜色)
a:hover small {
background-color: var(--brand-color-2);
color: var(--main-background-color);
}
否则图片的透明部分也会获得背景颜色。
更新,因为这不合适,因为如果想在整个站点设置链接样式,则必须找到另一种防止透明位显示背景色的方法。
最简单的好像是设置
a picture { background-color: white; }
尽管为了在整个网站上更好地通用,使用 CSS 变量而不是固定颜色,或者如果使用不同的颜色背景则更具体。