2017-02-13 5 views
0

私はCSSの第8章:The Definitive Guide、4th Editionを読んでいます。 、このようなスニペットは、本の中であります。肯定的な引数を指定してperspective()関数を適用すると要素が消えます

div#inner { 
 
    transform: perspective(750px) translateZ(60px) rotateX(45deg); 
 
}
<div id="outer"> 
 
    outer 
 
    <div id="inner">inner</div> 
 
</div>

#inner持つdiv要素が私のChromeブラウザに表示されなくなります。 パースペクティブ関数の引数値を調整して0に設定した後、ページにinnerというテキストが回転効果で表示されます。

あなたはその理由を知っていますか?私はサファリでこのページを試しましたが、まだ問題はあります。

+0

?どのOS?私はインナーがハーフカットされているのを見ますが、私はそれを見ることができます。 – sabithpocker

+0

Chromeのバージョンは56.0.2924.87(64ビット)、macOSはSierra 10.12.3です。 'body'に' margin-left'を加えると 'inner'が見えるのは奇妙です。マージンが増加すると、すなわち。 1200pxの場合、「内側」はほぼ完全に「外側」になります。それは何らかの宇宙意識についてですか? – krave

+0

@sabithpocker私は 'transform-style:preserve-3d'を使わないで' translateZ() 'が引数を増やして要素を左にシフトさせることを発見しました。 – krave

答えて

1

を試してみてください。

ブロック要素であるため、この中心は要素のテキスト部分の右にあります。その結果、左の動きが発生します。これは、一部の解像度ではページの左の枠の後ろに表示されます。

は、素子幅が低い場合、それはどのように変化するかを参照してください:

クロームのバージョン

div#inner { 
 
    background-color: lightblue; 
 
    transform: perspective(750px) translateZ(60px) rotateX(45deg); 
 
}
<div id="outer"> 
 
    outer 
 
    <div id="inner">inner</div> 
 
</div>

div#inner { 
 
    width: 70px; 
 
    background-color: lightgreen; 
 
    transform: perspective(750px) translateZ(60px) rotateX(45deg); 
 
}
<div id="outer"> 
 
    outer 
 
    <div id="inner">inner</div> 
 
</div>

+0

ああ!箱の中心!どうして私はそれについて考えなかったのですか?これは、ボックスの幅を制限するとテキストをページに戻す理由を説明しています。また、マージンを上げると幅が狭くなり、テキストとセンターが近づくため、ボディの余白を上げると「内側」が「外側」の下に戻ってしまう理由も説明しました。ありがとうございました! – krave

0

は斜視起源は、デフォルトでは要素の中心にあるこの

div#inner { 
 
      transform: rotate(30deg) translate(20px) perspective(30px); 
 
\t \t \t width: 100px; 
 
     }
<div id="outer"> 
 
     outer 
 
     <div id="inner">inner</div> 
 
    </div>

+0

変換リストの順序は重要であり、私はいくつかの3D変換をしようとしていました。 2Dではありません。 – krave

+0

@krave try transform:パース(500px)translate3d(10px、20px、20px); – grinmax

関連する問題