好的,假设<body>内的内容的总高为300px。

如果我使用-webkit-gradient或- mz -linear-gradient设置<body>的背景

然后我最大化我的窗口(或者只是让它高于300px),梯度将恰好是300px高(内容的高度),然后重复填充窗口的其余部分。

我假设这不是一个bug,因为它在webkit和gecko中都是一样的。

但是有没有办法让渐变拉伸来填充窗口而不是重复?


当前回答

加一个空格,加上“固定”这个词就足够了。不需要设定高度。

body{
    background: linear-gradient(#e4efe9,#93a5cf) fixed;
}

其他回答

我在这里很难找到答案。 我发现在主体中固定一个全尺寸的div,给它一个负z索引,并附加渐变效果更好。

<style>

  .fixed-background {
    position:fixed;
    margin-left: auto;
    margin-right: auto;
    top: 0;
    width: 100%;
    height: 100%;
    z-index: -1000;
    background-position: top center;
    background-size: cover;
    background-repeat: no-repeat;
  }

  .blue-gradient-bg {
    background: #134659; /* For browsers that do not support gradients */
    background: -webkit-linear-gradient(top, #134659 , #2b7692); /* For Safari 5.1 to 6.0 */
    background: -o-linear-gradient(bottom, #134659, #2b7692); /* For Opera 11.1 to 12.0 */
    background: -moz-linear-gradient(top, #134659, #2b7692); /* For Firefox 3.6 to 15 */
    background: linear-gradient(to bottom, #134659 , #2b7692); /* Standard syntax */
  }

  body{
    margin: 0;
  }

</style>

<body >
 <div class="fixed-background blue-gradient-bg"></div>
</body>

这是完整的样本 https://gist.github.com/morefromalan/8a4f6db5ce43b5240a6ddab611afdc55

下面是我解决这个问题的方法……它将显示内容的整个长度的渐变,然后简单地退回到背景色(通常是渐变中的最后一种颜色)。

html { 背景:# cbccc8; } 身体{ 平铺方式:不再重演; 背景:# cbccc8; 背景:-webkit-gradient(线性,左上,左下,从(#fff),到(#cbccc8)); 背景:-moz-linear-gradient(top, #fff, #cbccc8); filter: progid: DXImageTransform.Microsoft。梯度(startColorstr = # ffffff, endColorstr = ' # cbccc8 '); } <身体> <标题> Hello world !< / h1 > < /身体>

我已经在FireFox 3.6, Safari 4和Chrome中进行了测试,我将背景颜色保留在任何浏览器的主体中,因为某些原因不支持样式化HTML标签。

肮脏的;也许你可以添加一个min-height: 100%;到html,和主体标签?或者至少设置一个默认的背景色,它也是渐变结束的颜色。

应用下面的CSS:

html {
    height: 100%;
}
body {
    height: 100%;
    margin: 0;
    background-repeat: no-repeat;
    background-attachment: fixed;
}

编辑:添加边框:0;到每个注释的body声明(Martin)。

编辑:添加背景附件:固定;到每个注释的体声明(Johe Green)。

加一个空格,加上“固定”这个词就足够了。不需要设定高度。

body{
    background: linear-gradient(#e4efe9,#93a5cf) fixed;
}