-
[CSS] 3D 효과, transfrom 과 관련된 속성html & css 2021. 1. 28. 17:15
transform 의 3d속성들
기본적으로 transfrom을 사용해 봤을테지만, 거의 2d 위주로 사용해 왔다.
그래서 3d 속성들에 대해 알아보고 기록하고자 한다.
익숙해질때까지 연습하자.
See the Pen 3d transform and transform-origin by builderous (@nyjchoi) on CodePen.
자세한 설명은 위의 코드펜에 주석으로 설명을 달았다.
정리하자면,
transform-origin : x축 y축;
이렇게 써주면 되는데,
기본값은 50% 50%d이다. 즉 대상의 딱 가운데가 중심인 것이다.
x축 left,right, center, %, 단위(px 등)
y축 : top, bottom, center, %, 단위(px 등)
그리고 3d의 원근값을 적용시키려면,
transfrom : perspective(거리);
이것이 먼저 이루어져야 translateZ값이나 rotateX, rotateY, rotateZ가 적용이된다.
거리는 숫자가 클수록 대상과 내가 보는 시점이 멀어지는것이고,
숫자가 작을 수록 가까워진다.
See the Pen 3d transform - transfrom-style, preserve-3d by builderous (@nyjchoi) on CodePen.
위 코드펜을 보면 알 수 있지만,
한번 더 정리 해보자.
transform-style: preserve-3d;
기본값은 transform-style: flat; 이다.
부모요소에도 3d 효과를 주고,
자식요소에도 3d 효과를 주었을 때,
기본 flat은,
부모 자식 모두 transfrom이 적용은 되는데,
자식이 3d 속성을 갖지 못한다는 것이다. 내 육안으로 봤을 때는,
자식이 부모요소 안에서 어느정도 변화가 일어나긴하지만, 그 원근감 즉 3d 효과가 사라지는 것이다.
이를 위해서,
부모요소에 transform-style: preserve-3d; 를 적용하면, 자식에게도 원근감이 생긴다.
위의 코드펜에서 저것을 지웠다 썼다 하며 확인해보면 차이를 알 수 있다.
단, 자식의 자식 즉, 자손의 요소에는 영향이 미치지 않으니, 자손에게 3d를 적용하려면,
그 자손의 부모에게 transform-style: preserve-3d; 를 적용하면 해결된다.
마지막으로,
backface-visibility : visible; (기본값)을 알아보자.
backface-visibility: hidden;
말그대로, 뒷면을 보여주고 숨기고를 결정하는 것이다.
예제를 통해 보는 것이 제일 이해하기 쉽니다.
See the Pen transform 3D -backface-visibility by builderous (@nyjchoi) on CodePen.
위에서 주석처리한 backface-visibility 속성을 풀면 어떤 변화가 있는지 보면 알 수 있을 것이다.
이상 끝.
'html & css' 카테고리의 다른 글
html / css[CSS] 배경색 원형 그라디언트 넣기 (0) 2021.01.25