为什么 text-shadow 属性 会改变 hsla 文本颜色?
Why does the text-shadow property change the hsla text color?
我有一个 header,当鼠标悬停在上面时,颜色会变得稍微清晰并具有黑色轮廓(我用 4 text-shadows 制作)。
不过,当我使用 hsla() 定义颜色时,这不起作用。颜色设置为黑色,不透明度为 100%,text-shadows 已关闭。
当我用网络安全颜色(即白色)定义颜色时,一切正常。
我已经发布了一个 jsfiddle 来展示问题并证明我的语法没有任何问题(据我所知):https://jsfiddle.net/TheInternetIO/Lxj12uje/3/
和我的css(对于问题案例):
h2:hover{
text-shadow:
-1px -1px 0 #000,
1px -1px 0 #000,
-1px 1px 0 #000,
1px 1px 0 #000;
color: hsla(0, 0%, 0%, .2);
}
为什么会这样?
所以发生的事情是文本阴影不仅仅是一个轮廓,它是再次打印的字符(你可以通过给你的文本阴影疯狂偏移来看到这一点)。因此,尽管您的文本是半透明的,但文本阴影不是,这就是它看起来是黑色的原因。我已经在此处更新了您的 fiddle:https://jsfiddle.net/Lxj12uje/5/ 以增加文本阴影颜色的透明度,我认为您会得到您正在寻找的效果。作为参考,我所做的更改位于此处:
h2:hover{
text-shadow:
-1px -1px 0 hsla(0, 0%, 0%, .2),
1px -1px 0 hsla(0, 0%, 0%, .2),
-1px 1px 0 hsla(0, 0%, 0%, .2),
1px 1px 0 hsla(0, 0%, 0%, .2);
color: hsla(0, 0%, 0%, .2);
}
我有一个 header,当鼠标悬停在上面时,颜色会变得稍微清晰并具有黑色轮廓(我用 4 text-shadows 制作)。
不过,当我使用 hsla() 定义颜色时,这不起作用。颜色设置为黑色,不透明度为 100%,text-shadows 已关闭。
当我用网络安全颜色(即白色)定义颜色时,一切正常。
我已经发布了一个 jsfiddle 来展示问题并证明我的语法没有任何问题(据我所知):https://jsfiddle.net/TheInternetIO/Lxj12uje/3/ 和我的css(对于问题案例):
h2:hover{
text-shadow:
-1px -1px 0 #000,
1px -1px 0 #000,
-1px 1px 0 #000,
1px 1px 0 #000;
color: hsla(0, 0%, 0%, .2);
}
为什么会这样?
所以发生的事情是文本阴影不仅仅是一个轮廓,它是再次打印的字符(你可以通过给你的文本阴影疯狂偏移来看到这一点)。因此,尽管您的文本是半透明的,但文本阴影不是,这就是它看起来是黑色的原因。我已经在此处更新了您的 fiddle:https://jsfiddle.net/Lxj12uje/5/ 以增加文本阴影颜色的透明度,我认为您会得到您正在寻找的效果。作为参考,我所做的更改位于此处:
h2:hover{
text-shadow:
-1px -1px 0 hsla(0, 0%, 0%, .2),
1px -1px 0 hsla(0, 0%, 0%, .2),
-1px 1px 0 hsla(0, 0%, 0%, .2),
1px 1px 0 hsla(0, 0%, 0%, .2);
color: hsla(0, 0%, 0%, .2);
}