⭐ Trasform(변형)
- 특정 요소의 크기나 형태 등 스타일이 바뀌는 것
✔️2차원 변형
x축과 y축을 사용하여 요소를 변형: 수평이나 수직으로 웹 요소 변형
- 크기나 각도만 지정
2차원 좌표 사용
종류 | 설명 |
translate(tx, ty) | 지정한 크기 만큼 x축, y축으로 이동합니다. |
translateX(tx) | 지정한 크기만큼 x축으로 이동합니다. |
traslateY(ty) | 지정한 크기 맡큼 y축으로 이동합니다. |
scale(sx, sy) | 지정한 크기만큼 x축, y축으로 확대/축속합니다. |
scaleX(sx) | 지정한 크기만큼 x축으로 확대/축속합니다. |
scaleY(sy) | 지정한 크기만큼 y축으로 확대/축속합니다. |
rorate(각도) | 지정한 각도만큼 회전합니다. |
skew(ax, ay) | 지정한 각도만큼 x축/y축으로 왜곡합니다. |
skewX(ax) | 지정한 각도만큼 x축으로 왜곡합니다. |
skewY(ay) | 지정한 각도만큼 y축으로 왜곡합니다. |
✔️3차원 변형
x축, y축에 원근감 추가
- z축은 앞뒤로 이동
- 사용자 방향으로 이동할 수록 값이 더 커짐
종류 | 설명 |
translate3d(tx, ty, tz) | 지정한 크기 만큼 x축, y축, z축으로 이동합니다. |
translateZ(tz) | 지정한 크기만큼 z축으로 이동합니다. |
scale3d(sx, sy, sz) | 지정한 크기만큼 x축, y축,z축으로 확대/축속합니다. |
scaleZ(sx) | 지정한 크기만큼 Z축으로 확대/축속합니다. |
rorate(rx, ry, 각도) | 지정한 각도만큼 회전합니다. |
rorate3d(rx, ry, 각도) | 지정한 각도만큼 회전합니다. |
rotateX(각도) | 지정한 각도만큼 x축으로 회전합니다. |
rotateY(각도) | 지정한 각도만큼 y축으로 회전합니다. . |
rotateZ(각도) | 지정한 각도만큼 y축으로 회전합니다. . |
perspective(길이) | 입체적으로 보일 수 있도록 깉잇값을 지정합니다. |
✔️Translate 함수
2D Translate
- 구문:`translate(X, Y)`
- 설명: 요소를 x축과 y축을 따라 이동
- 기본형태: transform: translate(50px, 100px);
>>요소를 오른쪽으로 50px, 아래로 100px 이동
3D Translate
- 구문: `translate3d(X, Y, Z)`
- 설명: 요소를 x축, y축, z축을 따라 이동
- 기본형태 :transform: translate3d(50px, 100px, 200px);
>>요소를 오른쪽으로 50px, 아래로 100px, 그리고 화면에서 바깥으로 200px 이동
✔️ Scale 함수
2D Scale
- 구문: `scale(X, Y)`
- 설명: 요소의 크기를 x축과 y축을 따라 조정
- 기본형태 : transform: scale(2, 3);
>> 요소의 너비를 2배, 높이를 3배로 확대
3D Scale
- 구문: `scale3d(X, Y, Z)`
- 설명: 요소의 크기를 x축, y축, z축을 따라 조정
- 기본형태 : transform: scale3d(2, 2, 2);
>> 요소를 모든 축에서 2배로 확대
✔️ Rotate 함수
2D Rotate
- 구문: `rotate(Angle)`
- 설명: 요소를 주어진 각도만큼 회전합니다.
- 기본형태 : transform: rotate(45deg);
>> 요소를 45도 회전
3D Rotate
- 구문: rotateX(Angle), rotateY(Angle), rotateZ(Angle)
- 설명: 각각의 함수는 요소를 X, Y, Z 축을 중심으로 회전합니다.
- 기본형태 : transform: rotateX(45deg);
>> X축을 중심으로 45도 회전
✔️ Skew 함수
2D Skew
구문: skew(X-Angle, Y-Angle)
설명: 요소를 x축과 y축을 따라 기울입니다.
기본형태 : transform: skew(30deg, 20deg);X
>> X축 방향으로 30도, Y축 방향으로 20도 기울임
⭐ Transition(트랜지션)
웹 요소의 스타일 속성이 조금씩 자연스럽게 바뀌는 것
- EX) 파란색 도형 위로 마우스를 올려놓으면(hover) 도형이 하늘색으로 바뀌고
마우스를 치우면 원래 배경색으로 되돌아가는 현상 - 도형 위로 마우스를 올려 놓으면 사각형의 각이 둥그러지고
마우스를 치우면 원래 스타일로 되돌아가는 현상 - 도형위에 마우스를 올리면 크기가 커지고 치우면 다시 돌아온다
- 도형위에 마우스를 올리면 위치 이동이되고 치우면 다시 돌아온다.
종류 | 설명 |
transition-poperty | 트랜지션의 대상을 지정합니다. |
transiton-durarion | 트랜지션의 실행할 시간을 지정합니다. |
transition-timing-function | 트랜지션 실행 형태를 지정합니다. |
trasition-delay | 트랜지션 지연 시간을지정합니다. |
transiton | transitoin-property, transition-duration, transiton-timig-funtion, transition-delay 속성을 한꺼번에 정합니다. |
✔️ Transition-property
- 트랜지션 효과를 적용할 CSS 속성을 지정
transition-property: <property-name> | all | none;
transition-property: opacity; >> 오직 불투명도(opacity)에만 트랜지션 적용
transition-property: all;
✔️ Transition-duration
- 트랜지션 효과가 완료되는 데 걸리는 시간을 지정
- 초(s)나 밀리초(ms) 단위로 설정
transition-timing-function: <timing-function>
transition-timing-function: ease; >> 천천히 시작해서 점점 빨라지다가 다시 천천히 끝남
transition-timing-function: cubic-bezier(0.1, 0.7, 1.0, 0.1); >>사용자 정의 타이밍 함수
✔️ Transition-delay
- 트랜지션 효과가 시작하기 전에 대기하는 시간을 설정
- 이 시간 동안 요소는 변화 없이 초기 상태를 유지
transition-delay: <time>;
transition-delay: 1s; >> 트랜지션 시작 전 1초간 대기
transition-delay: 100ms; >>트랜지션 시작 전 100밀리초 대기
✔️ Transition (단축 속성)
- 트랜지션 관련 속성들을 한 줄에 명시할 수 있는 단축 속성
- transition-property, transition-duration, transition-timing-function, transition-delay를 순서대로 포함
transition: <property> <duration> <timing-function> <delay>; transition: opacity 2s ease-in-out 1s;
>> 불투명도에 대해 2초 동안 천천히 시작하고 끝나며, 1초 후에 시작
예시
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<link rel="stylesheet" href="style.css">
</head>
<body>
<div class="container">
<div class="changeBox">color</div>
<div class="translate">translate</div>
<div class="rotate">rotate</div>
<div class="scale">scale</div>
<div class="border">border-radius</div>
</div>
</body>
</html>
div {
width: 100px;
height: 100px;
border: 2px solid #666;
background-color: #eee;
margin-right: 10px;
padding: 20px;
box-sizing: border-box;
}
.container {
width: 600px;
height: 150px;
border: none;
background-color: rgba(0, 0, 0, 0);
display: flex;
margin: 50% auto;
}
.changeBox {
background-color: blue;
transition: background-color 2s ease-in-out;
}
.changeBox:hover {
background-color: lightblue;
}
.translate {
transition: transform 1s ease-out;
}
.translate:hover {
transform: translate(7px, -20px);
}
.rotate {
transition: transform 2s ease-out;
}
.rotate:hover {
transform: rotateX(50deg);
}
.scale {
transition: transform 1.5s ease;
}
.scale:hover {
transform: scale3d(2, 2 ,2);
}
.border {
transition: border-radius 0.5s ease-in-out;
}
.border:hover {
border-radius: 10px;
}
'CSS' 카테고리의 다른 글
CSS Animation (0) | 2024.08.29 |
---|---|
CSS Display : Flex (0) | 2024.08.29 |
CSS Background (0) | 2024.08.27 |
CSS Display (0) | 2024.08.25 |
CSS margin & padding (0) | 2024.08.23 |