8

因为background-image您可以添加任意数量radial-gradient和/或linear-gradient您想要的。但border-image似乎你只能添加一个。如果觉得很奇怪,因为渐变的显示原理,边框和背景应该是一样的吧?

有没有办法在 中添加多个渐变border-image?我只对纯 CSS 解决方案感兴趣。

这不起作用,因为它包含超过 1 个渐变:

div {
  height: 30px;
  width: 40px; 
  border: 50px solid black;
  border-image: 
  radial-gradient(circle at 20px 30px, green 20px, rgba(0,0,255, .5) 20px),
  radial-gradient(30deg, blue 22px, red 22px);

}

https://jsfiddle.net/thadeuszlay/p6r2p78g/

这有效,但仅包含一个渐变:

div {
  height: 30px;
  width: 40px;
  border: 50px solid black;
  border-image: radial-gradient(circle at 20px 30px, green 20px, rgba(0, 0, 255, .5) 20px);
}

https://jsfiddle.net/thadeuszlay/p6r2p78g/1/

4

1 回答 1

11

border-image不,您不能为速记或速记border-image-source属性设置多个图像。

根据规范border-image-source,我们可以看到只有一个图像层被指定为值。

名称:边框图像源

值:无 | <图像>

而对于background-image,我们可以看到指定了多个层。

名称:背景图像

值:<bg-image> [ , <bg-image> ]*

以下是规范的摘录,介绍了背景图像的分层:(强调我的)

在 CSS3 中,盒子的背景可以有多个图层。层数由“背景图像”属性中逗号分隔值的数量决定。

于 2016-06-23T08:57:00.053 回答