重置内部DIV的透视值

时间:2014-01-15 15:50:11

标签: html css3 3d transform perspective

我有一些css 3D div但我有一些问题.. 我想在透视中旋转外部div,但我不想用它旋转内部div。如何重置这些样式以使内部div再次变平。

HTML:

<section class="container" style="-webkit-perspective: 2000px; -webkit-perspective-origin-x: 0%; -webkit-perspective-origin-y: 0%;">
<div id="cube">
  <div class="bottom plutoring">
        <div class="planet pluto">
              <p> pluto </p>
        </div>
  </div>
</div>

CSS

.container {
  width: 1000px;
  height: 900px;
  position: relative;
  margin: 0 auto 40px;
  -webkit-perspective: 1200px;
     -moz-perspective: 1200px;
       -o-perspective: 1200px;
          perspective: 1200px;
}

#cube {
  width: 100%;
  height: 100%;
  position: absolute;
  -webkit-transform-style: preserve-3d;
     -moz-transform-style: preserve-3d;
       -o-transform-style: preserve-3d;
          transform-style: preserve-3d;
}
.bottom {
     -webkit-transform: rotateX( 82deg ) rotateY( -5deg ) rotateZ( 197deg );
}

有什么建议吗?

2 个答案:

答案 0 :(得分:0)

我的预感是,在你的代码中,行星的环需要一个行星的子元素,或它的兄弟。如果你不想让戒指的css变换影响地球,戒指不应该是地球的父母。

看看这个:

http://neography.com/experiment/circles/solarsystem/

答案 1 :(得分:0)

你需要两件事:

  • 启用行星的母版本preserve3d
  • 以相反的方式改变地球。

CSS

.bottom {
     -webkit-transform: rotateX( 82deg ) rotateY( -5deg ) rotateZ( 197deg );
    background:green;
    -webkit-transform-style: preserve-3d;
}

.planet{
    background:blue;
    display:inline-block;
    font-size: 40px;
     -webkit-transform:  rotateZ( -197deg ) rotateY( 5deg ) rotateX( -82deg ) ;
}

请注意,逆变换是原始的,符号已更改且顺序颠倒

fiddle