CSS:在 div 结束之前,在指定数量的像素处结束背景线性渐变



我一直在尝试从上到下的linear-gradient来制作我正在制作的页面的背景。 唯一的问题是页面上有一个页脚,我想在div 结束之前结束渐变。

这是否仅在 CSS 中可行,或者是否应该更改 HTML 以创建一个在页脚开始之前结束的div? 还是应该 jQuery 计算页脚开始的百分比?

页面的长度都不同,因此以百分比结尾不适用于所有页面。 线性渐变可以结束吗,比如在div 结束之前 500px?

我的代码在这里,包装器div 延伸到页面的整个宽度。

div#wrapper {
background: #ffdf96; /* Old browsers */
background: -moz-linear-gradient(top, #ffdf96 0%, #a67f25 50%, #000 60%); /* FF3.6+ */
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#ffdf96), color-stop(50%,#a67f25), color-stop(60%,#000)); /* Chrome,Safari4+ */
background: -webkit-linear-gradient(top, #ffdf96 0%,#a67f25 50%,#000 60%); /* Chrome10+,Safari5.1+ */
background: -o-linear-gradient(top, #ffdf96 0%,#a67f25 50%,#000 60%); /* Opera 11.10+ */
background: -ms-linear-gradient(top, #ffdf96 0%,#a67f25 50%,#000 60%); /* IE10+ */
background: linear-gradient(to bottom, #ffdf96 0%,#a67f25 50%,#000 60%); /* W3C */
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#ffdf96', endColorstr='#a67f25',GradientType=0 ); /* IE6-9 */
}

上下文中的页面如下:http://bit.ly/1ar6KuR

非常感谢您可以提供的任何帮助:-)

为什么不反转渐变色标,从顶部-->底部到底部-->顶部反转方向,并在所需的像素值处设置第一个色标。

代码笔示例

还是我想多了?

也许最好的方法是在伪类之前添加 :并对其应用渐变,例如:

#wrapper:before {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 60%;
    content: "";
    ... and background here ...
 }

或 DIV 作为具有相同 CSS 设置的第一个子级 #wrapper。

最新更新