如何在CSS中模糊文本后面的背景?

bwitn5fc  于 2024-01-09  发布在  其他
关注(0)|答案(3)|浏览(115)

我试图创建一个简单的小前端项目,我需要使一些文本从背景图像可辨别。
我怎样才能使文本后面的背景模糊?这只是模糊容器,我想只模糊实际文本后面。
这段文字的当前代码:

.center h1 {
    font-size: 100px;
    font-style: italic;
    font-family: 'Montserrat', sans-serif;
    background: -webkit-linear-gradient(0deg,rgba(255, 255, 255, 0.75), rgba(255, 255, 255, 0.25));
    background-clip: text;
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    backdrop-filter: blur(10px);
}

/* added by editor for deomnstration purpose */
body {
  background-image: url('https://upload.wikimedia.org/wikipedia/commons/5/5b/St_Mary%27s_Church%2C_Castle_Street_1.jpg');
  background-size: cover;
}
.center {
  position: fixed;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -100%);
    text-align: center;
    width: max-content;
}

个字符
结果就是这样


的数据
有什么方法可以做到这一点吗?我之前用background-clip工作...

wz3gfoph

wz3gfoph1#

只需使用backdrop-filter并根据您的喜好使用blursaturate滤镜。blur明显模糊了背景,而saturate赋予了更多的“颜色深度”。

h1 {
  backdrop-filter: blur(10px) saturate(70%);
}

/* to make the header only as wide as the content and centering it */

h1 {
  width: min-content;
  padding: 20px;
  margin: 0 auto;
}
  

/* added by editor for deomnstration purpose */

body {
  background-image: url('https://upload.wikimedia.org/wikipedia/commons/5/5b/St_Mary%27s_Church%2C_Castle_Street_1.jpg');
  background-size: cover;
}

h1 {
  font-size: 5em;
}

个字符

zzwlnbp8

zzwlnbp82#

您可以通过使用text-shadow属性的[blur]值来实现所需的效果:

some-element {
  text-shadow: [x-offset] [y-offset] [blur] [color];
}

字符串
在我的情况下,我有白色文本超过桑迪背景图像,这是很难阅读,由于缺乏对比度。
所以,通过使用零偏移,以及带有阴影的慷慨模糊值,我能够获得很好的效果:

my-element {
  text-shadow: 0 0 0.15em #000000;
}

gzszwxb4

gzszwxb43#

您还可以使用SVG clipPath来模糊文本后面的图像部分,如下所述:Applying a backdrop-filter: blur(); to an SVG path

body {
  margin 10px;
}

.relative {
  position: relative;
}

.clipped {
  position: absolute;
  top: 10px;
  left: 10px;
  bottom: 10px;
  right: 10px;
  clip-path: url(#svgTextPath);
  background: rgba(255,255,255,0.25);
  backdrop-filter: blur(10px);
}

个字符

相关问题