background-attachment:fixed
工作得很好。但是当我在DIV上定义CSS3 rotate并向下滚动时,background-attachment:fixed
停止工作。
请查看这个http://jsfiddle.net/P3jS4/。我现在正在使用chrome18。
当您删除旋转CSS时,
background-attachment:fixed
就能正常工作了。请访问http://jsfiddle.net/P3jS4/2。
background-attachment:fixed
工作得很好。但是当我在DIV上定义CSS3 rotate并向下滚动时,background-attachment:fixed
停止工作。
请查看这个http://jsfiddle.net/P3jS4/。background-attachment:fixed
就能正常工作了。这不是一个bug。
您正在尝试做一些规范尚未定义的事情。评论中写道:
变换中固定的背景会发生什么?它们应该完全忽略变换,因为即使被变换,对象也应该像“窗口”一样运作,通过该窗口可以查看原始形式的固定背景。
问题在于“fixed”是相对于视口(浏览器窗口)而言的,而不是父元素。视口不会旋转,只有一个视口。
由于规范尚未决定正确的方法,因此我们不知道您所说的“不起作用”是什么意思。如果其他浏览器中“起作用”,那是因为它们已经做出了判断,而没有等待规范更新。您应该更新您的问题以反映您想要的行为,而不是它是否“起作用”。
在这个阶段期望浏览器修复是没有意义的,因为您正在规范之外工作。我的建议是通过以下方法之一修改您的代码,以便遵循规范:
img
标签而不是背景如果以上方法都无法使用,也没有其他解决方法,那么你的答案就是不能实现。
更新:我刚刚意识到我链接的规范已经被新版本取代,新版本澄清了预期行为:
固定背景会受到指定给根元素的任何变换的影响,而不受其他变换的影响。
因此,具有固定背景的元素仍然像是一个“窗口”, 可以查看固定在视口上的图像,并且元素上的变换会影响窗口,而不是背景。另一方面,对根元素进行变换仍然会影响页面上的所有内容,而不是除了固定背景之外的所有内容。
假设你所说的“不起作用”是指背景不旋转,那么在符合规范的浏览器中,你所做的事情是行不通的。
repeat-y
。图像应该在视口的y轴上重复,就像Firefox一样,但在Chrome中却没有,所以我认为它仍然应该被称为一个bug。规范上有趣的信息。 - ScottSrepeat-y
,但如果这确实是问题的话,那么解决方案可能是fiddle在background
快捷方式中使用了错误的参数顺序。虽然一些浏览器支持缺少/重新排序的参数,但我发现在实践中这是一个坏主意。我会在安装了Chromium后再确认。 - SpliFF我有一个可行的解决方案,可以同时使用固定和旋转变换。
这个信息考虑到它们不能同时工作,但让我们让它们分别工作。
一旦在图像下面有一些真实内容,那么它将防止该图像的右下角接触浏览器视口的右下角,这是使用fixed
值的最后有效位置。因为在那之后就是虚无之地。
这里是fiddle!
这个更新的fiddle显示了旋转方向相反。
根据我们关于您精确需求的讨论,我现在有您要找的东西。这种方法是完全重写的,使用了蒙版效果和旋转,使内部图像保持不旋转......但那也可以有它自己的旋转!这里是带有许多解释CSS的 NEW Fiddle。最新进展的新答案:2012年7月4日
我有一个正在进行中的 jsFiddle 项目,希望与您分享并尽早发布。
它可以为您提供如何实现这种特定风格的想法。
特别是,它具有视差效果。
请注意,在未完成的演示中,图像可以在
contain
或cover
来为其显示的内容提供不同的视差效果。
由于此对象从未旋转/反向旋转,因此不会导致浏览器CPU负荷,因此它不仅限于图像,任何静态内容都可以使用。
jsFiddle 截图(缩小后捕获):
下面的图像故意显示了掩码,它应该与背景颜色匹配。对于某些浏览器,可以使用CSS3的border-image
属性而不是有色掩码(因为黄色掩码实际上是边框!)。
示例1:
这是一个jsFiddle,其中调整了掩码、不透明度和额外填充(以便部分查看预期内容)。
示例2:
这是一个jsFiddle,与上面相同,使用CSS3 cover
方法显示内容,以说明整个网页的冲孔效果。
我需要很快回到这个项目。在此期间,请随意使用此早期作品。干杯!
我认为你需要做的是删除 background: ...
fixed 0 0;
属性,这样可以使图像在旋转时不丢失,同时也不会在滚动时消失。这个问题的解决方案可以参考 this;或者你可以制作一个矩形图像,里面有一个透明的旋转矩形。这将是你想要实现的 CSS 图像技巧。
.pic{
background:url(http://cssglobe.com/lab/angled/img.jpg) fixed 0 0;
height:300px;
-webkit-transform: rotate(-10deg);
border:1px solid green;
}
到
.pic{
content:url(http://cssglobe.com/lab/angled/img.jpg) fixed 0 0;
height:300px;
-webkit-transform: rotate(-10deg);
border:1px solid green;
}
fixed
属性,而是repeat-y
属性,因为在 y 轴上似乎背景没有被重复。请比较 Chrome 和 Firefox 上的 这个 fiddle。这似乎是 Chrome 的渲染 bug。 - ScottS-webkit-
改为了-moz-
)。也许你应该尝试使用JavaScript来实现这个效果。 - thirtydot