CSS背景渐变重复溢出

时间:2015-02-23 05:30:23

标签: html css css3

我使用渐变作为背景,它延伸到页面的末尾但是在滚动/溢出后它开始重复。即使滚动后,如何将渐变拉伸到页面底部?

    html
{
    height:100%;
    width:100%;
}

body
{
    margin:0;
    padding:0;
    width:100%;
    height:100%;
    min-height:100%;
    background-repeat:no-repeat;
    background-attachment: fixed;

background: rgb(242,245,246); /* Old browsers */
background: -moz-linear-gradient(top,  rgba(242,245,246,1) 0%, rgba(227,234,237,1) 37%, rgba(200,215,220,1) 100%); /* FF3.6+ */
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(242,245,246,1)), color-stop(37%,rgba(227,234,237,1)), color-stop(100%,rgba(200,215,220,1))); /* Chrome,Safari4+ */
background: -webkit-linear-gradient(top,  rgba(242,245,246,1) 0%,rgba(227,234,237,1) 37%,rgba(200,215,220,1) 100%); /* Chrome10+,Safari5.1+ */
background: -o-linear-gradient(top,  rgba(242,245,246,1) 0%,rgba(227,234,237,1) 37%,rgba(200,215,220,1) 100%); /* Opera 11.10+ */
background: -ms-linear-gradient(top,  rgba(242,245,246,1) 0%,rgba(227,234,237,1) 37%,rgba(200,215,220,1) 100%); /* IE10+ */
background: linear-gradient(to bottom,  rgba(242,245,246,1) 0%,rgba(227,234,237,1) 37%,rgba(200,215,220,1) 100%); /* W3C */
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#f2f5f6', endColorstr='#c8d7dc',GradientType=0 ); /* IE6-9 */

}

4 个答案:

答案 0 :(得分:5)

您似乎错过了一些CSS属性。看看这一部分。

background-repeat:no-repeat;
background-attachment: fixed;
background: rgb(242,245,246); /* Old browsers */

您已在简写background-repeat属性之前指定了长手属性background-attachmentbackground。当读取background属性时,它将重置所有先前设置的背景属性。

只需将它们移到其他背景属性下面即可。



html
{
    height:100%;
    width:100%;
}

body
{
    margin:0;
    padding:0;
    width:100%;
    height:100%;
    min-height:100%;
    background: rgb(242,245,246); /* Old browsers */
    background: -moz-linear-gradient(top,  rgba(242,245,246,1) 0%, rgba(227,234,237,1) 37%, rgba(200,215,220,1) 100%); /* FF3.6+ */
    background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(242,245,246,1)), color-stop(37%,rgba(227,234,237,1)), color-stop(100%,rgba(200,215,220,1))); /* Chrome,Safari4+ */
    background: -webkit-linear-gradient(top,  rgba(242,245,246,1) 0%,rgba(227,234,237,1) 37%,rgba(200,215,220,1) 100%); /* Chrome10+,Safari5.1+ */
    background: -o-linear-gradient(top,  rgba(242,245,246,1) 0%,rgba(227,234,237,1) 37%,rgba(200,215,220,1) 100%); /* Opera 11.10+ */
    background: -ms-linear-gradient(top,  rgba(242,245,246,1) 0%,rgba(227,234,237,1) 37%,rgba(200,215,220,1) 100%); /* IE10+ */
    background: linear-gradient(to bottom,  rgba(242,245,246,1) 0%,rgba(227,234,237,1) 37%,rgba(200,215,220,1) 100%); /* W3C */
    filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#f2f5f6', endColorstr='#c8d7dc',GradientType=0 ); /* IE6-9 */
    background-repeat:no-repeat;
    background-attachment: fixed;
}

<h1>blah</h1>
<h1>blah</h1>
<h1>blah</h1>
<h1>blah</h1>
<h1>blah</h1>
<h1>blah</h1>
<h1>blah</h1>
<h1>blah</h1>
<h1>blah</h1>
<h1>blah</h1>
<h1>blah</h1>
<h1>blah</h1>
<h1>blah</h1>
<h1>blah</h1>
<h1>blah</h1>
<h1>blah</h1>
<h1>blah</h1>
<h1>blah</h1>
<h1>blah</h1>
<h1>blah</h1>
<h1>blah</h1>
<h1>blah</h1>
<h1>blah</h1>
&#13;
&#13;
&#13;

答案 1 :(得分:1)

您可以从height:100%删除html

&#13;
&#13;
html
{
   
    width:100%;
}

body
{
    margin:0;
    padding:0;
    width:100%;
    height:100%;
    min-height:100%;
    background-repeat:no-repeat;
    background-attachment: fixed;

background: rgb(242,245,246); /* Old browsers */
background: -moz-linear-gradient(top,  rgba(242,245,246,1) 0%, rgba(227,234,237,1) 37%, rgba(200,215,220,1) 100%); /* FF3.6+ */
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(242,245,246,1)), color-stop(37%,rgba(227,234,237,1)), color-stop(100%,rgba(200,215,220,1))); /* Chrome,Safari4+ */
background: -webkit-linear-gradient(top,  rgba(242,245,246,1) 0%,rgba(227,234,237,1) 37%,rgba(200,215,220,1) 100%); /* Chrome10+,Safari5.1+ */
background: -o-linear-gradient(top,  rgba(242,245,246,1) 0%,rgba(227,234,237,1) 37%,rgba(200,215,220,1) 100%); /* Opera 11.10+ */
background: -ms-linear-gradient(top,  rgba(242,245,246,1) 0%,rgba(227,234,237,1) 37%,rgba(200,215,220,1) 100%); /* IE10+ */
background: linear-gradient(to bottom,  rgba(242,245,246,1) 0%,rgba(227,234,237,1) 37%,rgba(200,215,220,1) 100%); /* W3C */
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#f2f5f6', endColorstr='#c8d7dc',GradientType=0 ); /* IE6-9 */

}
&#13;
<div>
  <p>blah</p>
  <p>blah</p>
  <p>blah</p>
  <p>blah</p>
  <p>blah</p>
  <p>blah</p>
  <p>blah</p>
  <p>blah</p>
  <p>blah</p>
  <p>blah</p>
  <p>blah</p>
  <p>blah</p>
  <p>blah</p>
  <p>blah</p>
  <p>blah</p>
  <p>blah</p>
  <p>blah</p>
  <p>blah</p>
  <p>blah</p>
  <p>blah</p>
  <p>blah</p>
  <p>blah</p>
  <p>blah</p>
  </div>
&#13;
&#13;
&#13;

答案 2 :(得分:0)

在实际的body

之后,将其置于单独的body来电中
body {
    background-attachment: fixed
    background-repeat:no-repeat;
}

你的css必须是这样的:

    html
{
    height:100%;
    width:100%;
}

body
{
    margin:0;
    padding:0;
    width:100%;
    height:100%;
    min-height:100%;



background: rgb(242,245,246); /* Old browsers */
background: -moz-linear-gradient(top,  rgba(242,245,246,1) 0%, rgba(227,234,237,1) 37%, rgba(200,215,220,1) 100%); /* FF3.6+ */
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(242,245,246,1)), color-stop(37%,rgba(227,234,237,1)), color-stop(100%,rgba(200,215,220,1))); /* Chrome,Safari4+ */
background: -webkit-linear-gradient(top,  rgba(242,245,246,1) 0%,rgba(227,234,237,1) 37%,rgba(200,215,220,1) 100%); /* Chrome10+,Safari5.1+ */
background: -o-linear-gradient(top,  rgba(242,245,246,1) 0%,rgba(227,234,237,1) 37%,rgba(200,215,220,1) 100%); /* Opera 11.10+ */
background: -ms-linear-gradient(top,  rgba(242,245,246,1) 0%,rgba(227,234,237,1) 37%,rgba(200,215,220,1) 100%); /* IE10+ */
background: linear-gradient(to bottom,  rgba(242,245,246,1) 0%,rgba(227,234,237,1) 37%,rgba(200,215,220,1) 100%); /* W3C */
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#f2f5f6', endColorstr='#c8d7dc',GradientType=0 ); /* IE6-9 */

}

body {
        background-attachment: fixed;
        background-repeat:no-repeat;
    }

因订单原因

LIVE DEMO

答案 3 :(得分:0)

您也可以尝试这种方式,添加空白div并将此CSS附加到其中(http://jsbin.com/jugiyutibu/1/edit

.bg
{
    width:100%;
    height:100%;
  position:fixed;
  z-index:-1;
background: rgb(242,245,246); /* Old browsers */
background: -moz-linear-gradient(top,  rgba(242,245,246,1) 0%, rgba(227,234,237,1) 37%, rgba(200,215,220,1) 100%); /* FF3.6+ */
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(242,245,246,1)), color-stop(37%,rgba(227,234,237,1)), color-stop(100%,rgba(200,215,220,1))); /* Chrome,Safari4+ */
background: -webkit-linear-gradient(top,  rgba(242,245,246,1) 0%,rgba(227,234,237,1) 37%,rgba(200,215,220,1) 100%); /* Chrome10+,Safari5.1+ */
background: -o-linear-gradient(top,  rgba(242,245,246,1) 0%,rgba(227,234,237,1) 37%,rgba(200,215,220,1) 100%); /* Opera 11.10+ */
background: -ms-linear-gradient(top,  rgba(242,245,246,1) 0%,rgba(227,234,237,1) 37%,rgba(200,215,220,1) 100%); /* IE10+ */
background: linear-gradient(to bottom,  rgba(242,245,246,1) 0%,rgba(227,234,237,1) 37%,rgba(200,215,220,1) 100%); /* W3C */
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#f2f5f6', endColorstr='#c8d7dc',GradientType=0 ); /* IE6-9 */

}