如何使用CSS使背景变暗?

84 html css opacity

我有一个带文字的元素.每当我降低不透明度时,我就会减少整个体的不透明度.有什么方法可以让我background-image更黑暗,而不是其他一切?

background-image:url('http://fc02.deviantart.net/fs71/i/2011/274/6/f/ocean__sky__stars__and_you_by_muddymelly-d4bg1ub.png');
Run Code Online (Sandbox Code Playgroud)

shi*_*hin 168

只需将此代码添加到您的图像css即可

 body{
 background:
        /* top, transparent black, faked with gradient */ 
        linear-gradient(
          rgba(0, 0, 0, 0.7), 
          rgba(0, 0, 0, 0.7)
        ),
        /* bottom, image */
        url(http://fc02.deviantart.net/fs71/i/2011/274/6/f/ocean__sky__stars__and_you_by_muddymelly-d4bg1ub.png);
    }
Run Code Online (Sandbox Code Playgroud)

参考:linear-gradient() - CSS | MDN

更新:并非所有浏览器都支持RGBa,因此您应该拥有"后备颜色".这种颜色很可能是实心的(完全不透明的)ex : background:rgb(96, 96, 96). 有关RGBa浏览器支持,请参阅此博客.

  • 如果我们想分别指定背景图像和这个属性是什么? (9认同)
  • @Petruza似乎我们别无选择,只能使用此语法。阅读[参考](https://developer.mozilla.org/zh-CN/docs/Web/CSS/linear-gradient):_“由于<gradient>属于<image>数据类型,因此它们只能因此,线性渐变()不适用于背景颜色和其他使用<color>数据类型的属性。 (2认同)

Cra*_*tis 18

使用:在psuedo-element之后:

.overlay {
    position: relative;
    transition: all 1s;
}

.overlay:after {
    content: '\A';
    position: absolute;
    width: 100%; 
    height:100%;
    top:0; 
    left:0;
    background:rgba(0,0,0,0.5);
    opacity: 1;
    transition: all 0.5s;
    -webkit-transition: all 0.5s;
    -moz-transition: all 0.5s;
}
.overlay:hover:after {
    opacity: 0;
}
Run Code Online (Sandbox Code Playgroud)

看看我的笔>

http://codepen.io/craigocurtis/pen/KzXYad

  • @JohnMax Firefox现在可以正常工作。只需等待几年。 (2认同)

小智 7

设置background-blend-modedarken实现此目的的最直接和最短的方式,但您必须设置background-color第一个混合模式才能工作.
如果您需要稍后在javascript中操作值,这也是最好的方法.

background: rgba(0, 0, 0, .65) url('http://fc02.deviantart.net/fs71/i/2011/274/6/f/ocean__sky__stars__and_you_by_muddymelly-d4bg1ub.png');
background-blend-mode: darken;
Run Code Online (Sandbox Code Playgroud)

  • 实际上,这是最好的答案,但如果我们不想触及背景图像 url 声明(如 `background` 或 `background-image`),这是完美的: `background-color: #0005; 背景混合模式:变暗;` (6认同)
  • Edge 或 IE11 并不是真正的浏览器 (2认同)

小智 7

当您想要使背景颜色变亮或更暗时,可以使用此 css 代码

.brighter-span {
  filter: brightness(150%);
}

.darker-span {
  filter: brightness(50%);
}
Run Code Online (Sandbox Code Playgroud)

  • 请注意,这将使带有这些类的元素内部的所有内容(包括文本)变亮/变暗。 (6认同)

小智 5

可能可以这样做 box-shadow

但是,我无法将其实际应用于图像。仅在纯色背景上

body {
  background: #131418;
  color: #999;
  text-align: center;
}
.mycooldiv {
  width: 400px;
  height: 300px;
  margin: 2% auto;
  border-radius: 100%;
}
.red {
  background: red
}
.blue {
  background: blue
}
.yellow {
  background: yellow
}
.green {
  background: green
}
#darken {
  box-shadow: inset 0px 0px 400px 110px rgba(0, 0, 0, .7);
  /*darkness level control - change the alpha value for the color for darken/ligheter effect */
}
Run Code Online (Sandbox Code Playgroud)
Red
<div class="mycooldiv red"></div>
Darkened Red
<div class="mycooldiv red" id="darken"></div>
Blue
<div class="mycooldiv blue"></div>
Darkened Blue
<div class="mycooldiv blue" id="darken"></div>
Yellow
<div class="mycooldiv yellow"></div>
Darkened Yellow
<div class="mycooldiv yellow" id="darken"></div>
Green
<div class="mycooldiv green"></div>
Darkened Green
<div class="mycooldiv green" id="darken"></div>
Run Code Online (Sandbox Code Playgroud)