甚至可以使用CSS / CSS3或javascript获取此类内容吗?但没有文字图片。
答案 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的反色)获得背景,以仅显示文本。
<强>修改强>
发现它可以在一个元素中完成。风格是:
.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,加上更暗和更轻的复合效果
希望这有帮助。