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

idv4meu8  于 2023-05-19  发布在  其他
关注(0)|答案(4)|浏览(201)

我将以下样式应用于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可以很容易地做到这一点,但我正在寻找一个跨浏览器的实现/替代方案。
谢谢

e1xvtsh3

e1xvtsh31#

最好的方法是在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;

背景,然后-大小和-重复,否则它不会工作。我花了大约30分钟才拿到。希望对某人有帮助。

yvgpqqbh

yvgpqqbh2#

每一个都用逗号隔开。
就像这样:

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

当然,你可以用渐变来代替url。
所有现代浏览器都支持此功能(这意味着IE不支持)。
为了使其在IE中可用,可以使用pie.htc

b09cbbtk

b09cbbtk3#

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

html {
  height: 100%;
  background: 
    radial-gradient(closest-corner at 50% -10%, 
            rgba(5, 5, 5, .7), 
            transparent), 
    radial-gradient(closest-corner at 50% 110%, 
            rgba(5, 5, 5, .7), 
            transparent);
}
mlnl4t2r

mlnl4t2r4#

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

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%);

相关问题