η‘μ
transform μμ±κ³Ό functions (ν¨μ) λ³Έλ¬Έ
π’ transform
μμμ λͺ¨μ, μμΉ, ν¬κΈ°, νμ , κΈ°μΈκΈ° λ±μ μκ°μ μΌλ‘ λ³κ²½ν λ μ¬μ©νλ μμ±.
βΌ functions
μμ± κ°(ν¬κΈ°, μμ, μμΉ λ±)μ λμ μΌλ‘ κ³μ°νκ±°λ λ³ννλ ν¨μ μν .
1οΈβ£ μνμ κ³μ° ν¨μ
πΉ calc()
μλ‘ λ€λ₯Έ λ€μν λ¨μμ κ°μ μμ΄μ μ¬μΉμ°μ°μΌλ‘ κ³μ°. (px, %, em, rem, deg, s λ±)
/* μ 체 λλΉμμ 100pxμ λΊ λλ¨Έμ§ */
.functions {
width: calc(100% - 100px);
}
- μ£Όμ: μ°μ°μ μλ€μλ λ°λμ 곡백 νμ.
πΉ min() / max()
μ¬λ¬ κ° μ€ κ°μ₯ μκ±°λ κ°μ₯ ν° κ°μ μ ν.
/* 100%μ 700px μ€ λ μμ κ°μ μ ν */
.functions {
width: min(100%, 700px);
}
/* 3vw, 2em μ€ ν° κ° */
.functions {
font-size: max(3vw, 2em);
}
πΉ clamp()
μ΅μ, μ΅μ , μ΅λ κ°μ μ€μ νμ¬ λ°μν ν¬κΈ°λ₯Ό ν μ€λ‘ μ μ.
.container {
/* ν°νΈ ν¬κΈ°λ₯Ό μ΅μ 16px, μ΅λ 32px μ¬μ΄μμ μ λμ μΌλ‘ μ‘°μ */
font-size: clamp(16px, 5vw, 32px);
}
2οΈβ£ μμ λ³ν ν¨μ
πΉ translate(x, y, z)
μμλ₯Ό νμ¬ μμΉμμ μ§μ ν 거리λ§νΌ μ΄λ. (px, %)
.move-box {
width: 100px;
height: 100px;
background-color: #ff6b6b;
transition: transform 0.3s;
}
/* λ§μ°μ€λ₯Ό μ¬λ¦¬λ©΄ μ€λ₯Έμͺ½μΌλ‘ 50px, μμͺ½μΌλ‘ 20px μ΄λ */
.move-box:hover {
transform: translate(50px, -20px);
}
- x: μν μ΄λ 거리. (μ€λ₯Έμͺ½μ +, μΌμͺ½μ -)
- y: μμ§ μ΄λ 거리. (μλλ +, μλ -)
- z: κΉμ΄ λ°©ν₯ μ΄λ 거리. (3D νκ²½μμ μμ +, λ€λ -)
πΉ rotate(x, y,z, κ°λ)
μμλ₯Ό μ§μ ν κ°λλ§νΌ νμ . (deg)
.rotate-box {
width: 100px;
height: 100px;
background-color: #feca57;
transition: transform 0.5s;
}
/* λ§μ°μ€λ₯Ό μ¬λ¦¬λ©΄ μκ³ λ°©ν₯μΌλ‘ 45λ νμ */
.rotate-box:hover {
transform: rotate(45deg);
}
- μκ³ λ°©ν₯(μμ) λλ μκ³ λ°λ λ°©ν₯(μμ)μΌλ‘ λλ¦°λ€.
πΉ scale(x, y, z)
μμλ₯Ό μ§μ ν λ°°μλ§νΌ νλ λλ μΆμ.
.scale-box {
width: 100px;
height: 100px;
background-color: #4ecdc4;
transition: transform 0.3s;
}
/* λ§μ°μ€λ₯Ό μ¬λ¦¬λ©΄ μ 체 ν¬κΈ°κ° 1.2λ°° μ»€μ§ */
.scale-box:hover {
transform: scale(1.2);
}
/* ν: κ°λ‘λ§ ν€μ°κ³ μΆλ€λ©΄ scaleX(1.5), μΈλ‘λ§ ν€μ°κ³ μΆλ€λ©΄ scaleY(1.5) */
- 1μ΄ κΈ°μ€μ΄λ©°, 1.5λ 150%, 0.5λ 50% ν¬κΈ°λ₯Ό μλ―Έ.
πΉ skew(x, y, κ°λ)
μμλ₯Ό μ§μ ν κ°λλ§νΌ λΉνμ΄ μ곑. (deg)
.skew-box {
width: 100px;
height: 100px;
background-color: #a29bfe;
transition: transform 0.3s;
}
/* λ§μ°μ€λ₯Ό μ¬λ¦¬λ©΄ XμΆ λ°©ν₯μΌλ‘ 20λ κΈ°μΈμ΄μ§ */
.skew-box:hover {
transform: skewX(20deg);
}
- λ©΄μ μ‘μλΉκ²¨ ννμ¬λ³ν ννλ‘ μ곑.
π¨ λ³ν λ³΅ν© ν¨κ³Ό
μ¬λ¬ ν¨κ³Όλ₯Ό λμμ μ£Όκ³ μΆμ λ 곡백 ν μΉΈμ λμ°κ³ λμ΄.
.box:hover {
/* μ€λ₯Έμͺ½μΌλ‘ 20px μ΄λνκ³ 45λ νμ νλ©° 1.2λ°° νλ */
transform: translate(20px, 0) rotate(45deg) scale(1.2);
}
π transform ν¨μ μμ½ν π
| ν¨μ | μν | λ¨μ | μμ |
| translate | μμΉ μ΄λ | px, % | translateX(50px) |
| scale | ν¬κΈ° μ‘°μ | λ°°μ(μ«μ) | scale(1.5) |
| rotate | νμ | deg | rotate(180deg) |
| skew | κΈ°μΈκΈ°(λΉνκΈ°) | deg | skewY(20deg) |
3οΈβ£ μμ λ° κ·ΈλλμΈνΈ ν¨μ
.hero {
/* μ€λ₯Έμͺ½ μλ λ°©ν₯μΌλ‘ νλμμμ 보λΌμμΌλ‘ λ³νλ λ°°κ²½ */
background: linear-gradient(to bottom right, blue, purple);
color: rgba(255, 255, 255, 0.8); /* 80% ν¬λͺ
ν ν°μ */
}
πΉ linear-gradient(): μ ν κ·ΈλλμΈνΈ λ°°κ²½μ λ§λ λ€.
πΉ radial-gradient(): μν κ·ΈλλμΈνΈ λ°°κ²½μ λ§λ λ€.
πΉ rgb() / rgba(): μ , λ Ή, μ²μ(r, g, b)κ³Ό ν¬λͺ λ(a)λ‘ μμ λ§λ λ€.
πΉ hsl() / hsla(): μμ, μ±λ, λͺ λλ‘ μμ μ‘°μ νμ¬ μ λ³νμ νλ€.
4οΈβ£ κΈ°ν μ μ©ν ν¨μ
/* λ£¨νΈ μμμ CSS λ³μ(컀μ€ν
νλ‘νΌν°) μ μ */
:root {
--main-color: #3498db; /* λ©μΈ μμμ νλμ κ³μ΄λ‘ μ€μ */
}
/* .button ν΄λμ€ μ€νμΌ */
.button {
background-color: var(--main-color); /* μμμ μ μν λ³μλ₯Ό λΆλ¬μ λ°°κ²½μμΌλ‘ μ¬μ© */
background-image: url('pattern.png'); /* λ°°κ²½ μ΄λ―Έμ§λ‘ pattern.png μ μ© */
}
/* .button μμ λ€μ κ°μ μμ μμ± */
.button::after {
content: attr(data-label); /* HTML μμμ data-label μμ± κ°μ ν
μ€νΈλ‘ νμ */
}
πΉ var(): μ¬μ©μκ° μ μν CSS λ³μ(Custom Properties) κ°μ κ°μ Έμ¨λ€.
πΉ url(): μ΄λ―Έμ§, ν°νΈ λ± μΈλΆ 리μμ€ νμΌμ κ²½λ‘λ₯Ό μ§μ νλ€.
πΉ attr(): HTML μμμ μμ±κ°μ κ°μ Έμ¨λ€. (μ νμ )
πβ POINT πβ
βοΈ transform μ μμμ 물리μ 곡κ°μ μ°¨μ§νμ§ μκ³ μκ°μ μΈ ννλ§ λ°κΎΌλ€. βοΈ
βοΈ calc() λ΄μμ μ°μ°μ(+, -) μλ€μλ λ°λμ κ³΅λ°±μ΄ μμ΄μΌ λΈλΌμ°μ κ° μ¬λ°λ₯΄κ² μΈμνλ€. βοΈ
βοΈ clamp() λ λ―Έλμ΄ μΏΌλ¦¬(@media)λ₯Ό μ€μ¬μ£Όλ ν¨μμ΄λ€. βοΈ
π μ£Όμ CSS ν¨μ μμ½ν π
| μΉ΄ν κ³ λ¦¬ | λν ν¨μ | μ©λ |
| μν | calc(), clamp() | μ μ°ν μμΉ κ³μ° (λ°μν νμ) |
| λ³ν | translate(), rotate() | μμμ μμΉ λ° νν λ³κ²½ |
| μμ | rgba(), linear-gradient() | μμ μ μ λ° ν¨κ³Ό |
| μ°Έμ‘° | var(), url(), attr() | μΈλΆ κ°μ΄λ λ³μ νμ© |
'<style>' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
| transition μμ± (1) | 2026.03.27 |
|---|---|
| Functionsμ filterμμ±κ³Ό ν¨μ (0) | 2026.03.27 |
| Pseudo-elements (μμ¬ μμ) (0) | 2026.03.26 |
| Pseudo-class (μμ¬ ν΄λμ€) (0) | 2026.03.26 |
| Attribute Selectors (0) | 2026.03.25 |