2012-05-25 10 views
7

次のコードでは、ヘッダーバー、フッターバー、およびイメージを表示する必要がありますが、何らかの理由で.div1 { -webkit-transform-style: preserve-3d; }を追加するとすぐにヘッダーバーが表示されます。不必要なdivやスタイルが適用されているように見えますが、デバッグを簡単にするために取り除いたエフェクトが必要です。マイページのコードは次のとおりです。なぜ "-webkit-transform-style:preserve-3d;"ですか?いくつかのdivが消えてしまいますか?

<html> 
    <head> 
     <title></title> 
     <style> 
      body { 
       margin: 0px; 
      } 
      .div1 { 
       -webkit-transform-style: preserve-3d; 
      } 
      .div2 { 
       position: absolute; 
       width: 100%; 
       height: 100%; 
      } 
      img { 
       max-width: 50%; 
       max-height: 50%; 
       display: block; 
      }    
      .footer { 
       position: fixed; 
       bottom : 0px; 
      } 
     </style> 
    </head> 
    <body> 
     <div class="div1"> 
      <div class="div2"> 
       <div class="header"> 
        Header 
       </div> 
       <div class="imgdiv"> 
        <img src="http://static.guim.co.uk/sys-images/Guardian/Pix/pictures/2012/5/18/1337331092888/Cwm-Idwal-Snowdonia.-Mich-007.jpg"> 
       </div> 
       <div class="footer"> 
        Footer 
       </div> 
      </div> 
     </div> 
    </body> 
</html> 

答えて

11

私はここでの問題は、定義された高さ/幅を持っていないposition: absolute/fixedのdivのは、多くの場合、消えることができ、よく知られている動作に似ていると思います。あなたのケースでは、3dキャンバスは、<div class="div1">に幅が定義されていることを探しています。そうでなければ、3Dキャンバスを使用するプロパティを与えて、間接的な方法で子divを含むように展開します。いずれの場合においても

、あなたはJSのフィドルでpreserve-3d修正問題を持つ要素にheightwidthを定義することがわかります。http://jsfiddle.net/nY9v6/

+0

どのように混乱。ありがとう – Grezzo

+0

確かに!これらのものの仕様はまだ最終的なものではないことを覚えておくことが重要です。 CSS3のアニメーション(3Dキャンバスよりも成熟した仕様)でさえ、バグが見つかっています(仕様のためではなく、ブラウザの実装によるものではありません)。 – Brian

+0

これは面白いことですが、仕様のバグについて議論している記事は知っていますか? – Grezzo

関連する問題