HTML & CSS

[CSS] transform (+prefix)

카누가 좋아요 2023. 8. 14. 14:59

📌 참고 사이트

transform - CSS: Cascading Style Sheets | MDN (mozilla.org)

 

transform - CSS: Cascading Style Sheets | MDN

CSS transform 속성으로 요소에 회전, 크기 조절, 기울이기, 이동 효과를 부여할 수 있습니다. transform은 CSS 시각적 서식 모델의 좌표 공간을 변경합니다.

developer.mozilla.org

 

<transform-function> - CSS: Cascading Style Sheets | MDN (mozilla.org)

 

<transform-function> - CSS: Cascading Style Sheets | MDN

CSS <transform-function> 자료형은 요소의 외형에 영향을 주는 변형을 나타냅니다. 변형 함수는 2D 또는 3D 공간 내에서 요소를 회전하고, 크기를 바꾸고, 왜곡하고, 이동할 수 있습니다. transform 속성에

developer.mozilla.org

 

벤더 프리픽스(Vendor Prefix)란? (velog.io)

 

벤더 프리픽스(Vendor Prefix)란?

벤더 프리픽스는 브라우저마다 따로 놀던 CSS3의 속성을 각각의 브라우저들이 인식할 수 있게 해주기 위해서 만들어졌습니다.CSS 표준안으로 확정되지 않았거나 특정 브라우저에서만 지원되는 CS

velog.io

 

 

📋 transform

➡️ 요소에 회전, 크기 조절, 기울이기, 이동 효과 등을 부여할 수 있게 해 주는 속성이다.

➡️ 키워드 none 또는 하나 이상의 <transform-function> 값을 사용해 지정할 수 있다.

(none이 아닌 값을 지정하면 새로운 쌓임 맥락을 형성한다. 이 경우 position이 fixed이거나 absolute인 요소의 컨테이닝 블록으로서 작용한다.)

 

 

📍 transform-function

요소에 적용할 하나 이상의 CSS 변형 함수를 말한다.

변형 함수를 사용하면 요소에 변형을 오른쪽부터 왼쪽으로 하나씩 순서대로 적용하게 된다.

 

* 직교좌표계

 

 

CSS에서 원점 (0, 0)은 요소의 왼쪽 위에 있는 꼭짓점을 가리킨다.

양의 x 좌표는 원점의 오른쪽으로, 음의 x 좌표는 원점의 왼쪽으로, 양의 y좌표는 원점의 아래쪽으로, 음의 y좌표는 원점의 위쪽으로 진행하게 된다.

 

 

📍 효과 적용하기

➡️ rotate 함수

입력한 각도만큼 요소가 회전하게 된다.

양수는 물론 음수 또한 입력 가능하다.

단위를 입력할 때에는 deg 단위를 사용해야 한다.

 

➡️ scale 함수

2개의 인자가 들어가며 첫 번째로는 width를 몇 배로 확대할 것인가, 두 번째로는 height를 몇 배로 확대할 것인가에 대한 값이 들어간다.

 

➡️ skew 함수

2개의 인자가 들어가며 x축, y축을 기준으로 입력한 각도만큼 비틀어지게 된다.

입력 순서는 x축을 기준으로 비틀 각도, y축을 기준으로 비틀 각도 순이다.

 

➡️ translate 함수 

2개의 인자가 들어가며, 첫 번째 인자로는 x축으로 얼마만큼 움직일 것인지, 두 번째 인자로는 y축으로 얼마만큼 움직일 것인지에 대한 값이 들어간다.

 

💻 위의 속성들 한번씩 사용해보기

 

See the Pen Untitled by YuBeen So (@kanujoa) on CodePen.

 

💡 위의 함수들 뒤에 축을 붙여 rotateX, rotateY, rotateZ 이런 식으로 사용하게 되면 3차원 상에서의 변형이 가능하다.

 

 

 

📋 prefix 접두사

다른 버전의 브라우저에서 실행을 원할 경우 CSS 속성명 앞에 prefix를 붙여 주면 된다.

브라우저마다 따로 놀던 CSS3의 속성을 각각의 브라우저들이 인식할 수 있게 해주기 위해서 탄생하였다.

따라서 prefix는 CSS 표준안으로 확정되지 않았거나 특정 브라우저에서만 지원되는 CSS 속성을 사용하고 싶을 때 사용하면 그 CSS 기능이 포함되어 있지 않은 브라우저에서도 사용이 가능하다.

 

➡️ -webkit- : 크롬, 사파리에서 호환 가능 

ex) -webkit-transform: translate(100px, 200px);

 

➡️ -moz- : 파이어폭스에서 호환 가능

ex) -moz-transform: translate(100px, 200px);

 

➡️ -o- : 오페라에서 호환 가능

ex) -o-transform: translate(100px, 200px);