背景与透明文本被剪掉
P粉439804514
P粉439804514 2024-03-25 16:47:36
0
2
538

有没有办法用 CSS 制作出如下图所示的从背景中切出透明文本效果?

由于图像取代了文本而失去了所有宝贵的 SEO,这将是令人遗憾的。

我首先想到了阴影,但我想不出任何东西......

该图片为网站背景,绝对定位的<img>标签

P粉439804514
P粉439804514

全部回复(2)
P粉200138510

虽然这可以通过 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> 标记之外。以下示例显示了一种使用 < 保留透明文本的方法使用>标签:

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
    
    
      
      
    
  
  
  
P粉351138462

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

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!