2013-12-15 56 views
3

当我为我的网页添加背景色渐变时,它直到我体元素中最后一个容器的末尾都能正常工作。之后,渐变停止工作,您会看到容器的末尾和空白页的其余部分之间的明显对比。背景渐变无法正确显示引导程序3

看到自己:

下载的默认网页从layoutit.com和编辑CSS/style.css中有:

body { 
    background: #1e5799; /* Old browsers */ 
    background: -moz-linear-gradient(top, #1e5799 0%, #207cca 30%, #2989d8 50%, #7db9e8 100%); /* FF3.6+ */ 
    background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#1e5799), color-stop(30%,#207cca), color-stop(50%,#2989d8), color-stop(100%,#7db9e8)); /* Chrome,Safari4+ */ 
    background: -webkit-linear-gradient(top, #1e5799 0%,#207cca 30%,#2989d8 50%,#7db9e8 100%); /* Chrome10+,Safari5.1+ */ 
    background: -o-linear-gradient(top, #1e5799 0%,#207cca 30%,#2989d8 50%,#7db9e8 100%); /* Opera 11.10+ */ 
    background: -ms-linear-gradient(top, #1e5799 0%,#207cca 30%,#2989d8 50%,#7db9e8 100%); /* IE10+ */ 
    background: linear-gradient(to bottom, #1e5799 0%,#207cca 30%,#2989d8 50%,#7db9e8 100%); /* W3C */ 
    filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#1e5799', endColorstr='#7db9e8',GradientType=0); /* IE6-9 */ 
} 

http://www.colorzilla.com/gradient-editor/生成CSS,所以我相当它确实有效,因为它似乎是制作渐变的流行选择,它可以在非引导页面上工作。

有关如何让渐变渲染整个页面的任何想法?

编辑 查看在http://theshachar.com/so/

感谢一个例子!

+0

将其设置在'html'元素上,而不是'body'元素。我认为这就是bootstrap的作用。 –

+0

试过了,它效果更糟。渐变在容器中不起作用,但页面底部仍然获得开始的渐变颜色 – mlobl

+0

有趣的 - 你有我们可以看看的例子吗?也许是一个网站或jsFiddle的例子? –

回答

5

根据您的编辑,问题是背景未延伸到窗口高度。

为了解决这个问题,只需添加:

html, body { 
    height:100%; 
} 

另外,您也可以使用viewport-percentage unitsvw

body { 
    height: 100vh; 
} 

您还可以设置min-height

body { 
    min-height: 100vh; 
} 
+0

谢谢,这工作!我曾尝试添加高度:100%;之前为body元素,但它没有工作,但添加它为html元素做了诀窍。为了理解修正,为什么有必要在html元素中指定它而不是body?如果你没有指定页面的高度,这意味着由浏览器决定如何渲染它?谢谢 – mlobl

+0

@ user1549863在这个例子中,'body'元素是包含内容的高度。由于内容没有扩展到页面的底部,所以'100%'无用,因为它已经是内容的100%。通过在'html'上设置'100%',它实质上是扩展它到窗口的高度。 –