如何更改由背景颜色确定的文本颜色?
我正在寻找一种方法,最好使用 jQuery,根据背景颜色的亮度确定正确的文本颜色?
例如白色背景,黑色文本颜色。我相信这可以通过添加十六进制值和猜测来粗略地完成,但有人知道更好的方法或 jQuery 方法来做到这一点吗?
I'm looking for a way, with jQuery ideally, to determine the correct text color, based on the brightness of the background color?
E.g. white background, black text colour. I believe this could be done crudely with adding the HEX value and guesstimating but does anyone know a better way or jQuery way to do this?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
如果您使用 Typescript,您可以使用此功能:
在 HTML 中(如 Angular):
我的结果:
If you use Typescript you can use this function:
In the HTML (Like Angular):
My result:
您可以尝试反转颜色的十六进制值。因此,
#FFFFFF
变为#000000
,#AAAAAA
变为#555555
。当然,当您有#888888
时,此方法就会失败,当反转时,会为您提供#777777
(它们的对比度不那么高)。这篇博客文章描述了另一种方式(他们只使用黑色或白色前景色,取决于背景色)。我把它翻译成Javascript:
You can try inverting the hex value of the color. So
#FFFFFF
becomes#000000
and#AAAAAA
becomes#555555
. Of course, this method falls through when you have#888888
which when inverted, gives you#777777
(they don't contrast as much).This blog post describes another way (they only use black or white for the foreground color, depending on the background color). I've translated it into Javascript: