84669 人学习
152542 人学习
20005 人学习
5487 人学习
7821 人学习
359900 人学习
3350 人学习
180660 人学习
48569 人学习
18603 人学习
40936 人学习
1549 人学习
1183 人学习
32909 人学习
有没有办法用 CSS 制作出如下图所示的从背景中切出透明文本效果?
由于图像取代了文本而失去了所有宝贵的 SEO,这将是令人遗憾的。
我首先想到了阴影,但我想不出任何东西......
该图片为网站背景,绝对定位的<img>标签
<img>
虽然这可以通过 CSS 实现,但更好的方法是使用 内联 SVG 与 SVG 遮罩。与 CSS 相比,这种方法有一些优点:
CodePen 演示:SVG 文本掩码
body,html{height:100%;margin:0;padding:0;} body{ background:url('https://farm9.staticflickr.com/8760/17195790401_94fcf60556_c.jpg'); background-size:cover; background-attachment:fixed; } svg{width:100%;}
SVG Text mask
如果您的目标是使文本可选择和可搜索,则需要将其包含在 <defs> 标记之外。以下示例显示了一种使用 < 保留透明文本的方法使用>标签:
<defs>
< 保留透明文本的方法使用>
CSS3 可以实现,但并非所有浏览器都支持
带有背景剪辑:文本;您可以使用文本背景,但必须将其与页面背景对齐
body { background: url(http://www.color-hex.com/palettes/26323.png) repeat; margin:10px; } h1 { background-color:#fff; overflow:hidden; display:inline-block; padding:10px; font-weight:bold; font-family:arial; color:transparent; font-size:200px; } span { background: url(http://www.color-hex.com/palettes/26323.png) -20px -20px repeat; -webkit-text-fill-color: transparent; -webkit-background-clip: text; display:block; }
ABCDEFGHIKJ
虽然这可以通过 CSS 实现,但更好的方法是使用 内联 SVG 与 SVG 遮罩。与 CSS 相比,这种方法有一些优点:
CodePen 演示:SVG 文本掩码
如果您的目标是使文本可选择和可搜索,则需要将其包含在
<defs>
标记之外。以下示例显示了一种使用< 保留透明文本的方法使用>
标签:CSS3 可以实现,但并非所有浏览器都支持
带有背景剪辑:文本;您可以使用文本背景,但必须将其与页面背景对齐