基于背景图像反转文本

时间:2013-04-22 11:33:38

标签: javascript html css

甚至可以使用CSS / CSS3或javascript获取此类内容吗?但没有文字图片。

enter image description here

2 个答案:

答案 0 :(得分:4)

在旧浏览器的有限支持下,您可以通过文本剪辑实现此目的:

这个html:

<div class="filter">
<div class="base">SOME TEXT</div>
</div>

用那个CSS:

.filter {
    width: 250px;
    height: 250px;
    background: -webkit-linear-gradient(-45deg, black 0%,black 50%,white 51%,white 100%);
}
.base {
    width: 100%;
    height: 100%;
    font-size: 80px;
    background: -webkit-linear-gradient(-45deg, white 0%,white 50%,black 51%,black 100%);
    -webkit-background-clip: text;
    color: transparent;
}

您将从基础(具有第一个div的反色)获得背景,以仅显示文本。

webkit demo

<强>修改

发现它可以在一个元素中完成。风格是:

.base {
    width: 100%;
    height: 100%;
    font-size: 80px;
    background: -webkit-linear-gradient(-45deg, white 0%,white 50%,black 51%,black 100%), -webkit-linear-gradient(-45deg, black 0%,black 50%,white 51%,white 100%);
    -webkit-background-clip: text, border;
    color: transparent;
}

答案 1 :(得分:2)

要在CSS中实现此目的,您需要使用渐变。一个用于背景,一个用于文本,渐变将是恒定的。看到这个用于生成它们:http://www.colorzilla.com/gradient-editor/来生成它:

    background: #000000; /* Old browsers */
background: -moz-linear-gradient(-45deg,  #000000 0%, #000000 50%, #ffffff 51%, #ffffff 100%); /* FF3.6+ */
background: -webkit-gradient(linear, left top, right bottom, color-stop(0%,#000000), color-stop(50%,#000000), color-stop(51%,#ffffff), color-stop(100%,#ffffff)); /* Chrome,Safari4+ */
background: -webkit-linear-gradient(-45deg,  #000000 0%,#000000 50%,#ffffff 51%,#ffffff 100%); /* Chrome10+,Safari5.1+ */
background: -o-linear-gradient(-45deg,  #000000 0%,#000000 50%,#ffffff 51%,#ffffff 100%); /* Opera 11.10+ */
background: -ms-linear-gradient(-45deg,  #000000 0%,#000000 50%,#ffffff 51%,#ffffff 100%); /* IE10+ */
background: linear-gradient(135deg,  #000000 0%,#000000 50%,#ffffff 51%,#ffffff 100%); /* W3C */
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#000000', endColorstr='#ffffff',GradientType=1 ); /* IE6-9 fallback on horizontal gradient */

你仍然面临的主要问题是无法“检测”背景图像以使文本颜色相反。

如果您想检测背景,可以查看webkit -webkit-background-composite,它具有XOR,加上更暗和更轻的复合效果

希望这有帮助。