如何使用css添加垂直渐变?

时间:2010-10-08 18:56:23

标签: html css gradient

我有垂直子菜单,如下:

<div id="dropdown_menu" class="menu">
<ul>
<li> <a>First Link</a></li>
<li> <a>Second Link</a></li>
</ul>
</div>

我在css类'menu'中放置底部背景。在.menu ul中的顶部背景片段。现在,我有一个垂直渐变,从上到下改变颜色(在整个垂直菜单中),因此我不能把它放在.menu ul li中。是否可以添加垂直渐变而不对html进行任何更改?

2 个答案:

答案 0 :(得分:7)

#dropdown_menu {
    filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#FF280C00', endColorstr='#004A1D00'); /* for IE */
    background: -webkit-gradient(linear, left top, left bottom, from(#280C00), to(rgba(75, 30, 0, 0))); /* for webkit browsers */
    background: -moz-linear-gradient(top,  #280C00,  rgba(75, 30, 0, 0)); /* for firefox 3.6+ */
}

请参阅此处的实际实现:http://www.salonbelledesoir.com(边缘周围的渐变是CSS渐变。)

这在Opera中不起作用(虽然可能有-o-gradient属性我不知道。

或者,您可以使用常规背景图像,并相应地重复。

答案 1 :(得分:4)

我个人认为x重复的背景图像是目前最好的解决方案。 过滤器不提供跨浏览器兼容性保证,因此您最好坚持使用旧方法。 以这种方式实现结果的方法是:

.gradient {
  background: #xxx url(pathtoimagedirfromcssfile/background.jpg) center top repeat-x;
}

其中#xxx是背景颜色代码,中心和&amp; top是要重复的图像的起始位置