【发布时间】:2015-01-06 02:11:53
【问题描述】:
我想知道是否可以将单个 CSS3 渐变背景应用于多个元素。换句话说,渐变跨越父元素,但只在子元素内可见。
经过搜索,我找到了这个帖子:Applying gradient over multiple views
这正是我的问题,虽然我需要它作为CSS/HTML 代码。
为了形象化问题,我做了两张图:
这是基本设置。需要渐变背景的两个<div>s 位于较大的<div> 元素内。
如您所见,第二张图像中的渐变完美地从元素 A 渐变到元素 B。 这种效果在大多数图像编辑程序中都很容易实现,因此我可以使用适当的图像来获得所需的效果。
但是,由于图像可能不是解决此问题的最佳方法,我希望在这里找到有关如何仅使用 CSS 来解决此问题的答案。我以前使用过渐变,但我自己还没有找到解决这个问题的方法。
感谢任何帮助。
编辑(06/01/15 13:30 GMT+1):
元素 A 和 B 应该能够具有圆角。
跨越梯度原本应该是radial-gradient,但它不是必须的。
可能问题真的没办法解决。
【问题讨论】:
-
您正在考虑的子图形有多复杂?在上面的示例中,您可以通过将两个子形状设为一个并添加中间条来伪造它。
-
另一个想法:这会有点古怪,但您可能可以使用 js 计算必要的渐变并根据每个子元素的位置手动应用它们。特别是如果您正在考虑垂直或水平渐变。
-
如何将渐变设置为背景并使用 CSS 剪贴蒙版创建矩形?