【发布时间】:2018-12-17 16:06:11
【问题描述】:
我目前正在尝试模糊包含内容的 div 后面的背景图像。问题是,这应该是为了响应式设计,所以我需要在大盒子的背景图像上使用封面属性。我似乎无法将里面盒子里的图片和后面的图片匹配起来。我尝试将较大的框设为相对,但随后 overflow:hidden 在较小的框上不再起作用。
<div class="container">
<div class="block">
<div class="blur">
</div>
<div class="content">
<h3>
A bunch of stuff
</h3>
<p>
This is supposed to be content.
</p>
<p>
That the box will wrap around
</p>
</div>
</div>
</div>
.container{
background: url('https://i.imgur.com/Q13QJrB.jpg') no-repeat center center;
background-size: cover;
width: 100%;
height: 100%;
overflow: auto;
}
.block{
width: 50%;
margin: 30px auto 30px auto;
box-shadow: 0px 0px 5px 0px rgba(0,0,0,0.40);
position: relative;
}
.blur{
background: url('https://i.imgur.com/Q13QJrB.jpg') no-repeat center center;
background-size: cover;
overflow: hidden;
z-index: 50;
position: absolute;
top: 0;
bottom: 0;
left: 0;
right: 0;
filter: blur(10px);
}
.content{
width: 100%;
height: 100%;
z-index: 100;
position: relative;
}
https://jsfiddle.net/hy0mvpec/30/
我在网上看到的大多数示例要么使用一些 JS 库,在这种情况下我不想使用它,要么使用绝对容器的固定高度,要么使用现代浏览器中根本没有实现的 CSS 属性。
编辑:因为人们似乎对我想要什么感到过度困惑;
我想让小盒子的背景模糊。大多数解决方案似乎将背景图像重新应用到较小的框并尝试使其与较大的框匹配,因此它看起来像一个无缝的图像。
我认为这个问题应该更多地涉及使背景图像无缝化,而不管显示器的大小。
【问题讨论】:
-
所以你想让背景完全模糊?
-
我真的没有得到你想要的最终结果
-
不行,我想让block元素的背景虚化,还要匹配容器元素中的图片。问题是,我使用 background-position:cover 属性,因为我不希望在某些设备上使用的图像出现奇怪的尺寸问题,我需要使用它,因为它需要响应。但正因为如此,我不知道如何匹配较小容器中的图像。
-
所以你想让图像完全模糊?
-
没有。我希望里面有内容的小盒子的背景模糊,但背景看起来像是一个无缝的图像。