【发布时间】:2017-10-24 21:26:32
【问题描述】:
我已经应用了我想要的效果,该效果只适用于 div 父级,但它也适用于子级。
这是我的 HTML 代码:
#wrapper {
height: 100%;
background-image: url("../asset/banner.jpg");
background-attachment: fixed;
background-position: top;
background-repeat: no-repeat;
background-size: cover;
filter: grayscale(100%);
}
#top-wrapper {
width: 100%;
height: 10%;
background-color: rgba(39, 35, 30, 0.5);
}
<div id="wrapper">
<header id="top-wrapper" class="inline-content">
<div id="logo" class="inline-content">
<img src="asset/logo.svg" alt="Logo">
<h1>portfolio</h1>
</div>
<nav>
<ul id="menu" class="inline-content">
<li><a href="#">Home</a></li>
<li><a href="#">About</a></li>
<li><a href="#">Project</a></li>
<li><a href="#">Contact</a></li>
</ul>
</nav>
</header>
<section id="banner" class="inline-content">
<h2>Hello World!</h2>
<h2>and I am a Web Developer</h2>
<h3>based in London</h3>
</section>
</div>
徽标是多色徽标,但以灰度显示。
【问题讨论】:
-
它的行为符合预期。为什么不将图像保存为灰度?
-
我可以将页面保存为灰度,但我想学习如何在图像上添加 css 效果
-
CSS
filter适用于整个元素(包括子元素,因此在您的情况下是整个页面)。您可能想尝试background-blend-mode,它似乎更适合您的用例。但如果关键是要使图像灰度化,就这样保存它——它可能会节省相当大一部分的数据大小作为奖励。 -
我明白了。如果我想应用不同的效果,是否有类似的东西,比如:模糊或不透明度?
-
不,但是您可以将图像移动到单独的元素并将其放置在其他元素的后面,如下所示:stackoverflow.com/questions/20411257/…(编辑:或在@stevelacerda7 的答案中类似,这几乎是一回事)