如何在不影响前景项目的情况下调整 <div> 中背景图像的亮度?
How to adjust the brightness of a background image in a <div> without it affecting the foreground items?
先声明一下,我是 HTML 和 CSS 的菜鸟。话虽如此,我的网站的一部分有这个 JS Fiddle:https://jsfiddle.net/rharrison2641/sb3rzm9t/2/
代码。)
HTML:
<section class="FutureGoals">
<div class="BlizzBox">
<div class="Blizzard1">
<img alt="BlizzPop" src="https://s8.postimg.cc/5avnnvurp/Blizz_Pop.png" class="BlizzPop">
</div>
</div>
</section>
CSS:
.FutureGoals {
height: 100vh;
overflow: hidden;
}
.BlizzBox {
height: 100vh;
overflow: hidden;
}
.Blizzard1 {
background: url(https://s8.postimg.cc/g96x696k3/Blizzard.jpg);
background-repeat: no-repeat;
background-position: 75%;
background-attachment: fixed;
height: 100%;
width: 100%;
transition: all .5s ease;
-moz-transition: all .5s ease;
-ms-transition: all .5s ease;
-webkit-transition: all .5s ease;
-o-transition: all .5s ease;
webkit-background-size: cover;
-moz-background-size: cover;
-o-background-size: cover;
background-size: cover;
}
.Blizzard1:hover {
-webkit-filter: brightness(50%);
-moz-transform: scale(1.1);
-webkit-transform: scale(1.1);
-o-transform: scale(1.1);
-ms-transform: scale(1.1);
transform: scale(1.1);
-ms-filter: "progid:DXImageTransform.Microsoft.Matrix(M11=1.5, M12=0, M21=0, M22=1.5, SizingMethod='auto expand')";
filter: progid:DXImageTransform.Microsoft.Matrix(M11=1.5, M12=0, M21=0, M22=1.5, SizingMethod='auto expand');
}
.BlizzPop {
position: relative;
height: auto;
width: 30%;
left: 25%;
top: 9%;
z-index: 1;
transition: all .7s ease;
-moz-transition: all .7s ease;
-ms-transition: all .7s ease;
-webkit-transition: all .7s ease;
-o-transition: all .7s ease;
}
.Blizzard1:hover .BlizzPop {
z-index: 1;
-moz-transform: scale(1.5);
-webkit-transform: scale(1.5);
-o-transform: scale(1.5);
-ms-transform: scale(1.5);
transform: scale(1.5);
-ms-filter: "progid:DXImageTransform.Microsoft.Matrix(M11=1.5, M12=0, M21=0, M22=1.5, SizingMethod='auto expand')";
filter: progid:DXImageTransform.Microsoft.Matrix(M11=1.5, M12=0, M21=0, M22=1.5, SizingMethod='auto expand');
}
基本上我想做的是使背景图像变暗,Blizzard.jpg,但使 Blizzard.png 徽标不变暗并保留其白色。就目前而言,一切正常,但徽标变暗为浅灰色。我试过将图像放在背景图像 div 之外,但这只会导致 window 调整大小变得非常糟糕。有人可以为此提出解决方法吗?我已经尝试了好几天了,所以任何解决方案或帮助都将不胜感激。
您可以将 rgba()
渐变悬停在 background-image
上使其变暗。
background:
linear-gradient(0deg, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0.5)),/* the gradient on top, adjust color and opacity to your taste */
url(https://s8.postimg.cc/g96x696k3/Blizzard.jpg);
下面的演示
.FutureGoals {
height: 100vh;
overflow: hidden;
}
.BlizzBox {
height: 100vh;
overflow: hidden;
}
.Blizzard1 {
background: url(https://s8.postimg.cc/g96x696k3/Blizzard.jpg);
background-repeat: no-repeat;
background-position: 75%;
background-attachment: fixed;
height: 100%;
width: 100%;
transition: all .5s ease;
-moz-transition: all .5s ease;
-ms-transition: all .5s ease;
-webkit-transition: all .5s ease;
-o-transition: all .5s ease;
webkit-background-size: cover;
-moz-background-size: cover;
-o-background-size: cover;
background-size: cover;
}
.Blizzard1:hover {
background: linear-gradient(0deg, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0.5)), url(https://s8.postimg.cc/g96x696k3/Blizzard.jpg);
background-repeat: no-repeat;
background-position: 75%;
background-attachment: fixed;
webkit-background-size: cover;
-moz-background-size: cover;
-o-background-size: cover;
background-size: cover;
-moz-transform: scale(1.1);
-webkit-transform: scale(1.1);
-o-transform: scale(1.1);
-ms-transform: scale(1.1);
transform: scale(1.1);
-ms-filter: "progid:DXImageTransform.Microsoft.Matrix(M11=1.5, M12=0, M21=0, M22=1.5, SizingMethod='auto expand')";
filter: progid:DXImageTransform.Microsoft.Matrix(M11=1.5, M12=0, M21=0, M22=1.5, SizingMethod='auto expand');
}
.BlizzPop {
position: relative;
height: auto;
width: 30%;
left: 25%;
top: 9%;
z-index: 1;
transition: all .7s ease;
-moz-transition: all .7s ease;
-ms-transition: all .7s ease;
-webkit-transition: all .7s ease;
-o-transition: all .7s ease;
}
.Blizzard1:hover .BlizzPop {
z-index: 1;
-moz-transform: scale(1.5);
-webkit-transform: scale(1.5);
-o-transform: scale(1.5);
-ms-transform: scale(1.5);
transform: scale(1.5);
-ms-filter: "progid:DXImageTransform.Microsoft.Matrix(M11=1.5, M12=0, M21=0, M22=1.5, SizingMethod='auto expand')";
filter: progid:DXImageTransform.Microsoft.Matrix(M11=1.5, M12=0, M21=0, M22=1.5, SizingMethod='auto expand');
}
<section class="FutureGoals">
<div class="BlizzBox">
<div class="Blizzard1">
<img alt="BlizzPop" src="https://s8.postimg.cc/5avnnvurp/Blizz_Pop.png" class="BlizzPop">
</div>
</div>
</section>
https://jsfiddle.net/sb3rzm9t/8/
或设置 inset
box-shadow
也使用 rgba()
颜色 (转换在 box-shadow 上也很有效)
box-shadow:inset 0 0 0 150vw rgba(0,0,0,0.5);/* hudge without blur to cover the whole container */
下面的演示
.FutureGoals {
height: 100vh;
overflow: hidden;
}
.BlizzBox {
height: 100vh;
overflow: hidden;
}
.Blizzard1 {
background: url(https://s8.postimg.cc/g96x696k3/Blizzard.jpg);
background-repeat: no-repeat;
background-position: 75%;
background-attachment: fixed;
height: 100%;
width: 100%;
transition: all .5s ease;
-moz-transition: all .5s ease;
-ms-transition: all .5s ease;
-webkit-transition: all .5s ease;
-o-transition: all .5s ease;
webkit-background-size: cover;
-moz-background-size: cover;
-o-background-size: cover;
background-size: cover;
}
.Blizzard1:hover {
box-shadow:inset 0 0 0 150vw rgba(0,0,0,0.5);
-moz-transform: scale(1.1);
-webkit-transform: scale(1.1);
-o-transform: scale(1.1);
-ms-transform: scale(1.1);
transform: scale(1.1);
-ms-filter: "progid:DXImageTransform.Microsoft.Matrix(M11=1.5, M12=0, M21=0, M22=1.5, SizingMethod='auto expand')";
filter: progid:DXImageTransform.Microsoft.Matrix(M11=1.5, M12=0, M21=0, M22=1.5, SizingMethod='auto expand');
}
.BlizzPop {
position: relative;
height: auto;
width: 30%;
left: 25%;
top: 9%;
z-index: 1;
transition: all .7s ease;
-moz-transition: all .7s ease;
-ms-transition: all .7s ease;
-webkit-transition: all .7s ease;
-o-transition: all .7s ease;
}
.Blizzard1:hover .BlizzPop {
z-index: 1;
-moz-transform: scale(1.5);
-webkit-transform: scale(1.5);
-o-transform: scale(1.5);
-ms-transform: scale(1.5);
transform: scale(1.5);
-ms-filter: "progid:DXImageTransform.Microsoft.Matrix(M11=1.5, M12=0, M21=0, M22=1.5, SizingMethod='auto expand')";
filter: progid:DXImageTransform.Microsoft.Matrix(M11=1.5, M12=0, M21=0, M22=1.5, SizingMethod='auto expand');
}
<section class="FutureGoals">
<div class="BlizzBox">
<div class="Blizzard1">
<img alt="BlizzPop" src="https://s8.postimg.cc/5avnnvurp/Blizz_Pop.png" class="BlizzPop">
</div>
</div>
</section>
先声明一下,我是 HTML 和 CSS 的菜鸟。话虽如此,我的网站的一部分有这个 JS Fiddle:https://jsfiddle.net/rharrison2641/sb3rzm9t/2/
代码。)
HTML:
<section class="FutureGoals">
<div class="BlizzBox">
<div class="Blizzard1">
<img alt="BlizzPop" src="https://s8.postimg.cc/5avnnvurp/Blizz_Pop.png" class="BlizzPop">
</div>
</div>
</section>
CSS:
.FutureGoals {
height: 100vh;
overflow: hidden;
}
.BlizzBox {
height: 100vh;
overflow: hidden;
}
.Blizzard1 {
background: url(https://s8.postimg.cc/g96x696k3/Blizzard.jpg);
background-repeat: no-repeat;
background-position: 75%;
background-attachment: fixed;
height: 100%;
width: 100%;
transition: all .5s ease;
-moz-transition: all .5s ease;
-ms-transition: all .5s ease;
-webkit-transition: all .5s ease;
-o-transition: all .5s ease;
webkit-background-size: cover;
-moz-background-size: cover;
-o-background-size: cover;
background-size: cover;
}
.Blizzard1:hover {
-webkit-filter: brightness(50%);
-moz-transform: scale(1.1);
-webkit-transform: scale(1.1);
-o-transform: scale(1.1);
-ms-transform: scale(1.1);
transform: scale(1.1);
-ms-filter: "progid:DXImageTransform.Microsoft.Matrix(M11=1.5, M12=0, M21=0, M22=1.5, SizingMethod='auto expand')";
filter: progid:DXImageTransform.Microsoft.Matrix(M11=1.5, M12=0, M21=0, M22=1.5, SizingMethod='auto expand');
}
.BlizzPop {
position: relative;
height: auto;
width: 30%;
left: 25%;
top: 9%;
z-index: 1;
transition: all .7s ease;
-moz-transition: all .7s ease;
-ms-transition: all .7s ease;
-webkit-transition: all .7s ease;
-o-transition: all .7s ease;
}
.Blizzard1:hover .BlizzPop {
z-index: 1;
-moz-transform: scale(1.5);
-webkit-transform: scale(1.5);
-o-transform: scale(1.5);
-ms-transform: scale(1.5);
transform: scale(1.5);
-ms-filter: "progid:DXImageTransform.Microsoft.Matrix(M11=1.5, M12=0, M21=0, M22=1.5, SizingMethod='auto expand')";
filter: progid:DXImageTransform.Microsoft.Matrix(M11=1.5, M12=0, M21=0, M22=1.5, SizingMethod='auto expand');
}
基本上我想做的是使背景图像变暗,Blizzard.jpg,但使 Blizzard.png 徽标不变暗并保留其白色。就目前而言,一切正常,但徽标变暗为浅灰色。我试过将图像放在背景图像 div 之外,但这只会导致 window 调整大小变得非常糟糕。有人可以为此提出解决方法吗?我已经尝试了好几天了,所以任何解决方案或帮助都将不胜感激。
您可以将 rgba()
渐变悬停在 background-image
上使其变暗。
background:
linear-gradient(0deg, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0.5)),/* the gradient on top, adjust color and opacity to your taste */
url(https://s8.postimg.cc/g96x696k3/Blizzard.jpg);
下面的演示
.FutureGoals {
height: 100vh;
overflow: hidden;
}
.BlizzBox {
height: 100vh;
overflow: hidden;
}
.Blizzard1 {
background: url(https://s8.postimg.cc/g96x696k3/Blizzard.jpg);
background-repeat: no-repeat;
background-position: 75%;
background-attachment: fixed;
height: 100%;
width: 100%;
transition: all .5s ease;
-moz-transition: all .5s ease;
-ms-transition: all .5s ease;
-webkit-transition: all .5s ease;
-o-transition: all .5s ease;
webkit-background-size: cover;
-moz-background-size: cover;
-o-background-size: cover;
background-size: cover;
}
.Blizzard1:hover {
background: linear-gradient(0deg, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0.5)), url(https://s8.postimg.cc/g96x696k3/Blizzard.jpg);
background-repeat: no-repeat;
background-position: 75%;
background-attachment: fixed;
webkit-background-size: cover;
-moz-background-size: cover;
-o-background-size: cover;
background-size: cover;
-moz-transform: scale(1.1);
-webkit-transform: scale(1.1);
-o-transform: scale(1.1);
-ms-transform: scale(1.1);
transform: scale(1.1);
-ms-filter: "progid:DXImageTransform.Microsoft.Matrix(M11=1.5, M12=0, M21=0, M22=1.5, SizingMethod='auto expand')";
filter: progid:DXImageTransform.Microsoft.Matrix(M11=1.5, M12=0, M21=0, M22=1.5, SizingMethod='auto expand');
}
.BlizzPop {
position: relative;
height: auto;
width: 30%;
left: 25%;
top: 9%;
z-index: 1;
transition: all .7s ease;
-moz-transition: all .7s ease;
-ms-transition: all .7s ease;
-webkit-transition: all .7s ease;
-o-transition: all .7s ease;
}
.Blizzard1:hover .BlizzPop {
z-index: 1;
-moz-transform: scale(1.5);
-webkit-transform: scale(1.5);
-o-transform: scale(1.5);
-ms-transform: scale(1.5);
transform: scale(1.5);
-ms-filter: "progid:DXImageTransform.Microsoft.Matrix(M11=1.5, M12=0, M21=0, M22=1.5, SizingMethod='auto expand')";
filter: progid:DXImageTransform.Microsoft.Matrix(M11=1.5, M12=0, M21=0, M22=1.5, SizingMethod='auto expand');
}
<section class="FutureGoals">
<div class="BlizzBox">
<div class="Blizzard1">
<img alt="BlizzPop" src="https://s8.postimg.cc/5avnnvurp/Blizz_Pop.png" class="BlizzPop">
</div>
</div>
</section>
https://jsfiddle.net/sb3rzm9t/8/
或设置 inset
box-shadow
也使用 rgba()
颜色 (转换在 box-shadow 上也很有效)
box-shadow:inset 0 0 0 150vw rgba(0,0,0,0.5);/* hudge without blur to cover the whole container */
下面的演示
.FutureGoals {
height: 100vh;
overflow: hidden;
}
.BlizzBox {
height: 100vh;
overflow: hidden;
}
.Blizzard1 {
background: url(https://s8.postimg.cc/g96x696k3/Blizzard.jpg);
background-repeat: no-repeat;
background-position: 75%;
background-attachment: fixed;
height: 100%;
width: 100%;
transition: all .5s ease;
-moz-transition: all .5s ease;
-ms-transition: all .5s ease;
-webkit-transition: all .5s ease;
-o-transition: all .5s ease;
webkit-background-size: cover;
-moz-background-size: cover;
-o-background-size: cover;
background-size: cover;
}
.Blizzard1:hover {
box-shadow:inset 0 0 0 150vw rgba(0,0,0,0.5);
-moz-transform: scale(1.1);
-webkit-transform: scale(1.1);
-o-transform: scale(1.1);
-ms-transform: scale(1.1);
transform: scale(1.1);
-ms-filter: "progid:DXImageTransform.Microsoft.Matrix(M11=1.5, M12=0, M21=0, M22=1.5, SizingMethod='auto expand')";
filter: progid:DXImageTransform.Microsoft.Matrix(M11=1.5, M12=0, M21=0, M22=1.5, SizingMethod='auto expand');
}
.BlizzPop {
position: relative;
height: auto;
width: 30%;
left: 25%;
top: 9%;
z-index: 1;
transition: all .7s ease;
-moz-transition: all .7s ease;
-ms-transition: all .7s ease;
-webkit-transition: all .7s ease;
-o-transition: all .7s ease;
}
.Blizzard1:hover .BlizzPop {
z-index: 1;
-moz-transform: scale(1.5);
-webkit-transform: scale(1.5);
-o-transform: scale(1.5);
-ms-transform: scale(1.5);
transform: scale(1.5);
-ms-filter: "progid:DXImageTransform.Microsoft.Matrix(M11=1.5, M12=0, M21=0, M22=1.5, SizingMethod='auto expand')";
filter: progid:DXImageTransform.Microsoft.Matrix(M11=1.5, M12=0, M21=0, M22=1.5, SizingMethod='auto expand');
}
<section class="FutureGoals">
<div class="BlizzBox">
<div class="Blizzard1">
<img alt="BlizzPop" src="https://s8.postimg.cc/5avnnvurp/Blizz_Pop.png" class="BlizzPop">
</div>
</div>
</section>