我试图通过图像填写h1标签中的文本内容。
根据我的理解;-),我在html中执行以下操作:
<div class="image_clip">
<h1>
MY WONDERFULL TEXT
</h1>
</div>
并在css文件中:
.image_clip{
background: url(../images/default.png) repeat;
-moz-background-clip: text;
-moz-text-fill-color: transparent;
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
}
事实是,它不会产生预期的结果......即将图像作为颜色的文本。
图像显示在div的整个背景上,而不仅仅显示在文本后面。
该文本本身仍然是黑色的。
我正在尝试使用Firefox。没有其他浏览器。
我错过了什么吗?
请求帮助。
同时 -webkit-background-clip:text
存在, -moz-background-clip:text
才不是,因此您将无法在Firefox中实现剪辑效果。 (除非有另一种我无法想到的方式。)
也没有 -moz-text-fill-color
,虽然你可以使用 color:transparent
,只要该元素没有任何其他东西(例如边界, -wekbit-text-stroke
)你想要可见。
你的代码 不 在Chrome和Safari中工作:
但是,那 <h1>
的文本确实需要是透明的,所以如果任何其他CSS代码正在设置颜色 <h1>
,你需要覆盖它。
根据标准, background-clip
属性(顺便说一句,在Firefox中没有前缀实现),没有 text
值。您使用的是专有的WebKit功能,而不是标准的CSS属性....
您正在将样式应用于封闭 div
不是 h1
标签。尝试更改您的选择器 .image_clip h1 {your:styles;}
或者你可以保持你的CSS相同,并将类应用于 h1
同 <h1 class="image_clip"></h1>
。
要获得背景剪辑:文本以在Firefox中提供预期的外观,您可以使用此polyfill - https://github.com/TimPietrusky/background-clip-text-polyfill - 用非Webkit浏览器中的SVG版本替换CSS。 [未经测试但见过工作]