【发布时间】:2013-04-08 18:51:11
【问题描述】:
我在尝试使用多个背景时遇到了一个奇怪的问题。我想要的基本效果是边缘的渐变背景和中间的透明背景。这是真正的基本代码:
background: transparent, linear-gradient(45deg, #f06, yellow);
background-size:50% 50%, 100% 100%;
background-position: 50% 50%, 0 0;
background-repeat: no-repeat;
我正在使用dabblet 来玩弄它。如果我使用该代码,我将一无所获(我将 transparent 替换为 green 确保我能够看到它):http://dabblet.com/gist/5339331
但是,如果我反转背景 (backgound: linear-gradient(45deg, #f06, yellow), green;),它会按预期完美运行,除了当然是在 reverse:http://dabblet.com/gist/5339291
这里发生了什么?为什么它会以一种方式工作而不是另一种?我还尝试用blue 替换渐变以使其简单,但它不起作用:http://dabblet.com/gist/5339396
仅供参考,我正在 Chrome 27 中进行测试,我收到黄色 ! 警告 Invalid property value.
编辑:这是我想要的效果的better (yet still broken) example。在这个例子中,有四块,每块都有自己的渐变背景。理想情况下,我会拥有一件,因为
它将允许看起来正确的渐变。
这看起来很糟糕,在移动设备上播放效果不佳。
如果可能,最好避免使用额外的固定/绝对 div
【问题讨论】:
-
在你的小提琴中,渐变应该是半透明的吗?或者我应该问:您希望内容显示在渐变上方还是下方,如果在上方,您想让它们保持半透明还是不透明?我有一个解决方案,我打算在昨晚发布,但 dabblet 和 GitHub 太愚蠢了——我想我会在 dabblet 几乎无法使用的编辑器 UI 上忍受 jsFiddle 的持续停机时间。
-
渐变应该是半透明的并且在文本上。想象一个彩色玻璃窗,中间部分被切掉,所以你可以清楚地看到中间的所有东西,而只能看到其余部分。我希望渐变部分都是一体的。这是a better example,因为这些部分不重叠,但我试图让一个渐变覆盖所有四个部分(或者真的有一个中间有一个洞的部分)。
-
这听起来很棘手,但我想我有一个解决方案。我会发布一个带有一些解释的答案。
-
听起来很酷。这是另一个sorta solution。渐变看起来正确,但文本位于渐变顶部而不是下方。
-
我认为这是您想要的效果,因为您首先使用的是背景:) 无论如何,我刚刚发布了我的答案。叠加白色-白色渐变似乎是一种巧妙的技术,但我不知道为什么我之前没有想到它。
标签: google-chrome css background gradient