如何在CSS中做等距3D

时间:2011-02-27 17:43:34

标签: 3d css3 isometric

我正在尝试在CSS中进行等距3D,这就是我现在所拥有的: http://jsfiddle.net/AagGZ/1/(仅用于测试的webkit)

我基本上使用盒子阴影,1px x 1xx来创建3D效果,这对我来说似乎非常讨厌。动画时,我正在尝试添加1px的新图层,因此动画失败(不是很好)。

有没有更好的方法来实现它?我在css内容之前和之后想到了CSS Matrix并添加了div。

这应该是我的项目的一个很好的添加,而不是基本的功能,所以我没关系它不能在IE9下工作。

感谢您的帮助。

编辑:我重新打开了这个问题,因为你需要有一个纯色背景的事实是一个问题,在过滤器创建大的“invisibile”白色箭头之前和之后,当你有不同的时候它会变得非常快网站的不同部分上的背景,或者当您想要在另一个元素的悬停时更改背景时。 我现在要回到我的版本并禁用动画。 欢迎任何想法!

2 个答案:

答案 0 :(得分:5)

我不确定我的版本是否比你的版本少。不过,这是一个有趣的问题,我试了一下。

http://jsfiddle.net/duopixel/5fdcj/

我的版本添加了简单的边框,并创建了斜角,我使用了边框形状http://www.howtocreate.co.uk/tutorials/css/slopes。如果您的背景不是纯色,则无法使用。

在我看来,最干净的解决方案是使用边框图像:http://www.css3.info/preview/border-image/

答案 1 :(得分:2)

好吧,这就是我所拥有的,基于Duopixel使用前后滤镜,但边框实际上存在于前后块中,因此我没有透明度问题。

http://jsfiddle.net/BXUdP/65/

为什么我喜欢它:透明度没问题,适用于IE8。 这个动画现在仅适用于Firefox 4,但Chrome中存在一个无法在过滤器之前和之后动画的错误。但是计划在下一个里程碑进行修复,因此现在它已经足够优雅地降级了。