【问题标题】:Auto-contrast Font Color to Background自动对比字体颜色到背景
【发布时间】:2014-02-12 23:13:40
【问题描述】:

我有一个领域的背景。底部是绿色,顶部是灰色。背景顶部有文字。有没有办法让文本“感知”背景是什么颜色并以某种方式对字体进行着色以使其形成对比?

例如,灰色天空上的文字会变亮,而绿色区域上的文字会变暗,以使其更明显。

我在这方面可能已经走得很远了,但我们很感激任何建议。 (请注意,我不是在寻找手动更改字体颜色的答案。)

【问题讨论】:

标签: css fonts background contrast compare-contrast


【解决方案1】:

更多是作为一个实验而不是其他方式:

设置带有背景的文字继承,获取基础的背景;然后将其剪辑到文本中,然后对其应用一些过滤器:

.test {
    width: 800x;
    height:220px;
    font-size: 200px;
    background-image: url(bosque.jpg); 
    color: white;
    position: relative;
}

.inner {
    position: relative;
    background-image: inherit;
    -webkit-background-clip: text;
    color: transparent;
    -webkit-filter: invert() sepia();
}

fiddle

(仅在 webkit 中工作)

还要检查这些:

animated madness

contrast animation

更新:我们有新的方法来处理这个问题。使用mix-blend-mode: difference查看演示

div {
  font-size: 300px;
  color: gray;
  mix-blend-mode: difference;
}
body {
  background-image: url(http://placekitten.com/900/600);
}
<div>TEST</div>

【讨论】:

  • 2020 年 4 月,除 IE 和 Opera Mini 之外的所有设备现在都支持它(尽管 Safari 和 Safari Mini 有部分支持;不支持 huesaturationcolorluminosity)。
  • 但是如果<div> 本身同时托管随机的background-color 文本color...mix-blend-mode 不起作用怎么办(我希望它到)
  • 以上在 Firefox 88 中不起作用。但在 Chrome 89 中起作用。
猜你喜欢
  • 2013-06-25
  • 1970-01-01
  • 2012-02-03
  • 2020-12-13
  • 1970-01-01
  • 2014-12-18
  • 2010-09-16
  • 1970-01-01
  • 2016-04-03
相关资源
最近更新 更多