自动对比字体颜色到背景

时间:2014-01-22 18:10:16

标签: css3 fonts background contrast compare-contrast

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

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

我可能会在这个问题上走得很远,但任何建议都值得赞赏。 (请注意,我不是在寻找手动更改字体颜色的答案。)

1 个答案:

答案 0 :(得分:16)

更多作为实验而非:

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

.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的演示:差异

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