2017-02-13 3 views
0

저는 CSS의 8 장 : The Definitive Guide, 4 판을 읽었습니다. 책에 같은 조각이있다 :요소가 적용된 후 사라집니다. 양수 인수가있는 perspective() 함수

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

#inner과 함께 DIV 내 크롬 브라우저에서 사라는. 퍼스펙티브 함수의 인수 값을 조정하고 0으로 설정 한 후 회전 효과가있는 페이지에서 inner 텍스트를 볼 수 있습니다.

이유를 알고 계십니까? 나는 사파리에서이 페이지를 시도했다. 문제는 여전히있다.

+0

어떤 버전 :

은 요소의 폭이 낮은이 때 변경하는 방법을 참조하십시오? 어느 OS? 내면이 반으로 자르지 만 나는 그것을 볼 수있다. – sabithpocker

+0

Chrome 버전은 56.0.2924.87 (64 비트)이고 macOS는 Sierra 10.12.3입니다. 이상하게도'margin-left'를'body'에 추가하면'inner'를 볼 수 있습니다. 증거금이 증가함에 따라 1200px,'inner'는 거의 완전히'outer' 아래에있을 것입니다. 우주 인식에 관한 것입니까? – 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 변형 : perspective (500px) translate3d (10px, 20px, 20px); – grinmax