旧浏览器支持
如果旧的浏览器支持是必须的,所以你不能使用多个背景或渐变,你可能会想在一个空闲的div元素上做这样的事情:
#background {
position: fixed;
top: 0;
left: 0;
width: 50%;
height: 100%;
background-color: pink;
}
例如:http://jsfiddle.net/PLfLW/1704/
解决方案使用了一个额外的固定div,它占据了屏幕的一半。由于它是固定的,所以即使用户滚动,它也会保持在原位。稍后您可能需要修改一些z索引,以确保其他元素位于背景div之上,但不应该太复杂。
如果你有问题,只要确保你的其余内容的z指数高于背景元素,你就应该很好了。
现代浏览器
如果你只关心更新的浏览器,你可以使用其他一些方法:
线性梯度:
这绝对是最简单的解决方案。您可以在主体的背景属性中使用线性梯度来获得各种效果。
body {
height: 100%;
background: linear-gradient(90deg, #FFC0CB 50%, #00FFFF 50%);
}
这就导致了每种颜色的50%的硬截断,所以没有名字所暗示的“渐变”。试着尝试“50%”的风格,看看你能达到的不同效果。
例如:http://jsfiddle.net/v14m59pq/2/
使用background-size的多个背景:
您可以将背景颜色应用到html元素,然后将背景图像应用到body元素,并使用background-size属性将其设置为页面宽度的50%。这将产生类似的效果,尽管只有当你碰巧使用一两个图像时,才会真正用于渐变。
html {
height: 100%;
background-color: cyan;
}
body {
height: 100%;
background-image: url('http://i.imgur.com/9HMnxKs.png');
background-repeat: repeat-y;
background-size: 50% auto;
}
例如:http://jsfiddle.net/6vhshyxg/2/
注意:在后面的例子中,html和body元素都被设置为height: 100%。这是为了确保即使你的内容比页面小,背景也至少是用户视口的高度。如果没有明确的高度,背景效果只会和你的页面内容一样低。一般来说,这也是一种很好的练习。