如何使用 CSS 将'linear-gradient'用于固定背景图像



我正在使用linear-gradient作为我的background-image。这一直运作良好,直到我background-attachment设置为fixed

我怎样才能用background-attachment: fixed;做同样的效果

.photo {
  background-image: 
    linear-gradient(
      to bottom, 
      rgba(255,255,255,0) 80%, 
      rgba(255,255,255,1) 100%
    ),
    url(https://s30.postimg.org/v67rh5bdd/image.jpg);
  background-attachment: unset; /* 'fixed' does not work */
  background-position: center top;
  background-repeat: no-repeat;
  width: 100%;
  height: 55vh;
  position: absolute;
}
.panel {
  margin-top:30vh;
}
.panel-body {
  height: 100vh;
}
<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width">
  <title>JS Bin</title>
</head>
<body>
  <div class="container">
    <div clasas="row">
      <div class="photo"></div>
      <div class="col-xs-10 col-xs-offset-1">
        <div class="panel panel-primary">
          <div class="panel-heading">
            <h3 class="panel-title">Panel title</h3>
          </div>
          <div class="panel-body">
            Panel content
          </div>
        </div>
      </div>
    </div>
  </div>
<script src="https://code.jquery.com/jquery.min.js"></script>
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" rel="stylesheet" type="text/css" />
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script>
</body>
</html>

或JSBin:http://jsbin.com/miqizetoqu/edit?css,output

为什么不在.photodiv上使用伪元素来保持渐变。这可以绝对放置在图像的顶部。

.photo {
  background-image: url(https://s30.postimg.org/v67rh5bdd/image.jpg);
  background-attachment: fixed;
  background-position: center top;
  background-repeat: no-repeat;
  background-size: cover;
  width: 100%;
  height: 55vh;
  position: absolute;
}
.photo::before {
  content: '';
  display: block;
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  background: 
    linear-gradient(
      to bottom, 
      rgba(255,255,255,0) 80%, 
      rgba(255,255,255,0.1) 82%, 
      rgba(255,255,255,0.2) 84%, 
      rgba(255,255,255,0.3) 86%,
      rgba(255,255,255,0.4) 88%, 
      rgba(255,255,255,0.5) 90%, 
      rgba(255,255,255,0.6) 92%,
      rgba(255,255,255,0.7) 94%, 
      rgba(255,255,255,0.8) 96%, 
      rgba(255,255,255,0.9) 98%,
      rgba(255,255,255,1) 100%
    );
}

请参阅此垃圾箱:

http://jsbin.com/tepalahipe/edit?css,output

最新更新