如何将多个css径向渐变应用于单个元素

时间:2012-05-20 21:36:26

标签: html css styling radial-gradients gradients

我将以下样式应用于我的div元素:

background-image: -moz-radial-gradient(50% -10%, ellipse closest-corner, rgba(5, 5, 5, 0.7), rgba(0, 0, 0, 0) 100%);

这具有所需的效果(仅在div顶部的内部投影)。我想在div的底部应用相同的效果。以下一行做得很好,但似乎覆盖了第一行,所以我只能得到一个或另一个。

background-image: -moz-radial-gradient(50% 110%, ellipse closest-corner, rgba(5, 5, 5, 0.7), rgba(0, 0, 0, 0) 100%);

有人能告诉我每个元素有多个径向渐变背景吗?我注意到webkit可以很容易地做到这一点,但我正在寻找跨浏览器实现/替代方案。

由于

4 个答案:

答案 0 :(得分:5)

你只需要一个接一个地列出它们 - 就像这样:

background: radial-gradient(top left, 
            rgb(205, 230, 235) 34%, 
            transparent 34%), 
        radial-gradient(center, 
            rgb(205, 230, 235) 34%, 
            transparent 34%);

您可以在http://dabblet.com/gist/2759668

看到它正常工作

答案 1 :(得分:4)

用逗号分隔每一个。

这样的事情:

background-image: url(),url(), url();

当然不是网址,你可以放置渐变。

所有现代浏览器都支持此功能(意味着IE不支持)。

为了使其在IE中可用,您可以使用pie.htc

答案 2 :(得分:1)

您必须将径向渐变的值设置为透明,以便让其他背景通过:

   background-image: radial-gradient(closest-corner at 40% 70%,#FFFFFF 0%, rgb(171,171,171),50%,transparent),
                     radial-gradient(closest-corner circle at 80% 20%, #FFFFFF 0%, rgb(171,171,171),20%,transparent),
                     radial-gradient(closest-corner circle at 10% 10%, #FFFFFF 0%,rgb(171,171,171) 25%);

答案 3 :(得分:1)

最好的方法是在background属性中列出它们。但是请记住,属性的顺序非常重要。

background:
    radial-gradient(circle at top left, transparent 15px, #58a 0) top left,
    radial-gradient(circle at top right, transparent 15px, #58a 0) top right,
    radial-gradient(circle at bottom right, transparent 15px, #58a 0) bottom right,
    radial-gradient(circle at bottom left, transparent 15px, #58a 0) bottom left;
background-size: 50% 50%;
background-repeat: no-repeat;

背景,然后-size和-repeat,否则它将不起作用。我花了大约30分钟才能得到它。希望对某人有帮助。