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

hof*_*lie 3 html css gradient styling radial-gradients

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

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

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

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

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

谢谢

Ale*_*ink 7

最好的方法是将它们列在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;
Run Code Online (Sandbox Code Playgroud)

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

  • `background` 属性是以下内容的简写:`background-color`、`background-image`、`background-position`、`background-size`、`background-repeat`、`background-origin`、`background-clip`、 `background-attachment` 这就是为什么在您的示例中,您必须将 `background-size` 和 `background-repeat` 放在 `background` 之后,以覆盖简写的 `background`。如果您使用“background-image”而不是“background”,则顺序并不重要。 (3认同)

eri*_*hak 5

只需用逗号分隔每个。

像这样的事情:

background-image: url(),url(), url();
Run Code Online (Sandbox Code Playgroud)

当然,您可以放置​​渐变而不是 url。

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

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


Ana*_*Ana 5

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

background: radial-gradient(top left, 
            rgb(205, 230, 235) 34%, 
            transparent 34%), 
        radial-gradient(center, 
            rgb(205, 230, 235) 34%, 
            transparent 34%);
Run Code Online (Sandbox Code Playgroud)

你可以在http://dabblet.com/gist/2759668上看到它的工作原理