对于我目前正在使用的网站,我需要一个背景模糊的标题。我用css ::before
来做到这一点,但我需要保留锋利的边缘。模糊背景上的尖锐边缘
这是我目前得到:
(您可能需要在全屏幕打开它,看看边缘模糊)
的什么我的代码现在的问题是:(View on CodePen)
* {
padding: 0;
margin: 0;
box-sizing: border-box;
}
html,
body {
height: 100%;
}
header {
width: 100%;
min-height: 60%;
padding: 50px 100px;
text-align: center;
color: white;
}
header nav ul {
list-style: none;
}
header nav li {
display: inline-block;
padding: 5px;
}
/* Header background */
.header::before {
position: absolute;
top: 0;
left: 0;
z-index: -100;
content: '';
display: block;
min-height: 60%;
width: 100%;
background: url(https://placeimg.com/1000/662/any) no-repeat fixed top;
-webkit-filter: blur(5px) contrast(125%) brightness(75%);
filter: blur(5px) contrast(125%) brightness(75%);
}
<header class="header">
<nav>
<ul>
<li>Lorem</li>
<li>Lorem</li>
<li>Ipsum</li>
<li>Ipsum</li>
<li>Dolor</li>
</ul>
</nav>
<h1>Title</h1>
<p>Lorem ipsum dolor osit amet, consectetur adipiscing elit.</p>
</header>
虽然我希望它看起来像这样:
我尝试添加一个div容器,设置为overflow: hidden
,这样我就可以使背景稍大,所以这将是被削去,毛刺的边缘将被隐藏起来,但那不起作用。我宁愿不是必须有一个不必要的div,因为这是我使用::before
为背景图像的全部原因。
我想不出任何其他解决方案,并且我可以找到关于如何在模糊滤镜上获得锐利边缘的所有解决方案都适用于图像,并且不适用于背景图像,所以我该如何去解决这样做?
为什么不模糊的图像本身BTW? – Aziz
@Aziz我打算稍后将整个网站转换为CMS的主题,以便用户能够选择背景的内容,并且我希望模糊一致。我想我可以使用PHP来模糊图像,但直到现在,我还没有想到哈哈。感谢你的帮助! –
我明白了。一些用户可能会抱怨“为什么我的背景模糊了?” – Aziz