TIL 21.09.12 CSS

서재환·2021년 9월 12일
0

TIL

목록 보기
16/37

✍️ CSS transform

✏️ transform (변형) 개요

transform: none; 이 기본값이다.
propery -> transform (transform 하나의 속성만 갖는다)

하나 이상의 CSS 변형 함수에 인자를 전달해서 값을 할당한다. 
변형 함수는 오른쪽부터 적용한다.
.box {
  transform: scale(0.5) translate(-100%, -100%);
}
scale() 함수에 0.5 값을 전달
translate() 함수에 (-100%, -100%)를 전달.

✏️ 크기 조절 - scale

scale(arg);
arg 안에 (0 ~ 1) 사이의 숫자가 들어가고 전체 크기 비율을 조절한다.

scale(arg, arg);
arg (0 ~ 1) 사이의 숫자가 들어가고 각각 가로와 세로 비율을 조절한다.

scaleX(arg);
arg (0 ~ 1) 사이의 숫자가 들어가고 폭의 크기만 조절한다.

scaleY(arg);
arg (0 ~ 1) 사이의 숫자가 들어가고 높이 크기만 조절한다.

단순 크기를 줄이는 것과 차이가 있어 아래 예시를 통해 확인해보자.
width: 400px;

#bolt {
  transform: scale(0.5)
}
위와 같이 이미지 사이즈를 반으로 줄일 경우 크기만 반으로 줄이는 것과 다른 효과를 발생.

scale(0.5)의 경우 img가 담긴 크기를 영역을 보존하고 그 안에 다시 이미지를 반으로 줄여
해당 영역에 넣어주는 효과를 발생.

✏️ 회전 - rotate

rotate(<angle>)

인자로 <angle> 자료형을 받는다.
인자의 단위로 (deg, grad, rad, turn)이 있다.

단위별 크기의 대소비교는 다음과 같다.
90deg = 100grad = 0.25turn ≈ 1.5708rad
-90deg = -100grad = -0.25turn ≈ -1.5708rad

✏️ 이동 - translate

transform: translate(arg);
인자로 하나의 값만 넣을 경우 scale과 다르게 x축 방향으로의 이동만 관장한다.

transform: translate(arg, arg);
x축 방향으로의 이동, y축 방향으로의 이동을 관장한다.

transform: translateX(arg);
x축으로만 이동한다.

transform: translateX(arg);
y축으로만 이동한다.

arg
<length>, <percentage> 모두 사용 가능
<length>     -> px em rem vw vh

<percentage> -> (0 ~ 100)%
퍼센트를 사용 할 경우 width와 height가 기준이 되어 산정된다.
#bolt {
  width: 300px;
  transform: translate();
}

✏️ 기울임 - skew

기울임을 관장한다.
x축으로 기울어 질 경우 지정된 영역의 (0, 1/2*height)를 기점으로 기울임이 발생한다.
y축으로 기울어 질 경우 지정된 영역의 (1/2*width, 0)를 기점으로 기울임이 발생한다.

아래와 같이 사용한다.
skew(ax);
x축으로만 움직인다.

skew(ax, ay);
x축과 y축이 움직인다.

skewX(ax, ay);
x축만 움직인다.

skewY(ax, ay);
y축만 움직인다.

✏️ 기준점 - transform-origin

기준점을 변경할 때 사용하는 속성이다.
transfor-origin 자체가 속성이다.
transform-origin: center; 가 기본값이다. 초기좌표는 (50%, 50%)이다.
ex_1

#bolt {
  width: 300px;
  margin: 100px;
  
  transform: scale(1.3);
  transform-origin: 50px 100px; /*왼쪽상단(0,0)이 기준점이다*/
}
ex_2

transform-origin: center;
transform-origin: top left;
transform-origin: 50px 50px;
transform-origin: bottom right 60px;

✍️ CSS transition

✏️ transition (전환) 개요

⌛ 시간 차를 두고 A상태에서 B상태로 변화를 표현하는 속성에 대해 알아보기로 하자

✏️ transition-property, transition-duration (1부)

transition-property
transition-property: none; 이 기본값이다.
어떤 속성의 상태를 변화시킬 것인지를 관장한다.

transition-duration: <time>;
상태 변화의 시간을 관장한다.
자료형 <time>에는 's''ms'가 있다.

✏️ transition-property, transition-duration (2부)

transition-property: all;
transition-duration: 2s;
위 코드는 바뀌기 전 tag에 적용시켜야 한다.
위의 코드는 'A'에서 'B'상태로 변환할 때 모든 속성에 duration을 주겠다는 의미이다.

위 코드를 적지 않아도 'A'에서 'B'상태로의 변환이 일어난다.
다만 시간 조정을 통제할 수 없다는 점이 특징이다.

✏️ transition-delay, transition-timing-function

transition-delay
해당 속성은 'A'에서 'B'로 변화할 때 언제 변화를 시작할지를 정하는 기능을 관장한다.

transition-timing-function
'A'에서 'B'로 변화할 때 변화 속도에 variation을 주는 기능을 관장한다.
transition-timing-function: ease; /*기본값*/

✏️ transition (shorthand)

단축 속성의 default 값은 아래와 같다.
작성시 주의사항으로 시간의 경우 순서에 영향을 받고 나머지 요소는 그렇지 않다.

그러나 작성시 (property, duration, timing-function, delay) 순으로 방법을
지켜서 작성하는 것을 권장한다.

transition-delay: 0s;
transition-duration: 0s;
transition-property: all;
transition-timing-function: ease;

작성방법
시간이 하나만 적힐 때 -> duration을 의미한다.
시간이 두개가 적힐 때 -> duration, delay를 의미한다.

ex_
아래 한줄과 개행 이후로의 4줄이 서로 같은 효과를 만든다.
transition: all 3s ease-in-out 1s;

transition-property: all;
transition-duration: 3s;
transition-timing-function: ease-in-out;
transition-delay: 1s;

0개의 댓글