HTML๋ง์ผ๋ก๋ ์น ํ์ด์ง๊ฐ ๋๋ฌด ๋ฐ๋ฐํ์ฃ .
๊ทธ๋์ ์ฐ๋ฆฌ๋ CSS(Cascading Style Sheets)๋ฅผ ์ฌ์ฉํด ๊ธ๊ผด, ์์, ๋ ์ด์์ ๋ฑ ์น์ ์๊ฐ์ ์ธ ์คํ์ผ์ ์ ํ ์ ์์ด์.
์ด ๊ธ์์๋ CSS์ ๊ธฐ๋ณธ ๊ฐ๋ ๋ถํฐ ๊ผญ ์์์ผ ํ ํต์ฌ ์์ฑ๋ค๊น์ง ์ ๋ฆฌํด๋ณผ๊ฒ์.
1๏ธโฃ CSS ๊ธฐ๋ณธ ๋ฌธ๋ฒ๊ณผ ๊ตฌ์กฐ
CSS๋ HTML์ ๋ค์๊ณผ ๊ฐ์ ๋ฐฉ์์ผ๋ก ์คํ์ผ์ ์ ์ฉํฉ๋๋ค.
์ ํ์ {
์์ฑ: ๊ฐ;
}
์์:
p {
color: blue;
font-size: 16px;
}
- ์ ํ์(Selector)๋ ์ด๋ค ์์์ ์คํ์ผ์ ์ ์ฉํ ์ง๋ฅผ ์ง์
- ์์ฑ(Property)์ ์ ์ฉํ ์คํ์ผ ์ข ๋ฅ
- ๊ฐ(Value)์ ์์ฑ์ ๋ํ ๊ตฌ์ฒด์ ์ธ ์ค์
CSS ์ ์ฉ ๋ฐฉ์
- ์ธ๋ผ์ธ ์คํ์ผ: HTML ์์์ ์ง์ style ์์ฑ ์ฌ์ฉ
- ๋ด๋ถ ์คํ์ผ: <style> ํ๊ทธ๋ฅผ <head> ์์ ์์ฑ
- ์ธ๋ถ ์คํ์ผ์ํธ: .css ํ์ผ๋ก ๋ฐ๋ก ๋ถ๋ฆฌํด์ <link> ํ๊ทธ๋ก ์ฐ๊ฒฐ (์ค๋ฌด์์๋ ๋ณดํต ์ด ๋ฐฉ์ ์ฌ์ฉ)
2๏ธโฃ ์ ํ์(Selector) ์ข ๋ฅ ์ด์ ๋ฆฌ
์คํ์ผ์ ์ ์ฉํ ๋์์ ์ ํ ๋ ์ฌ์ฉํ๋ ์ ํ์๋ค! ์๋๋ ๊ฐ์ฅ ๋ง์ด ์ฐ์ด๋ ๊ฒ๋ค์ ๋๋ค.
์ ํ์ | ์ค๋ช | ์์ |
* | ์ ์ฒด ์ ํ์ | * { margin: 0; } |
ํ๊ทธ ์ ํ์ | ํน์ ํ๊ทธ์ ์ ์ฉ | p { color: red; } |
ํด๋์ค ์ ํ์ | ํด๋์ค๋ช ์ผ๋ก ์ ํ | .title { font-size: 20px; } |
์์ด๋ ์ ํ์ | ๊ณ ์ ID๋ก ์ ํ | #main { background: yellow; } |
์์ ์ ํ์ (>) | ๋ฐ๋ก ์๋ ์์ | ul > li {} |
ํ์ ์ ํ์ (๊ณต๋ฐฑ) | ๋ชจ๋ ์์ | div p {} |
๊ทธ๋ฃน ์ ํ์ | ์ฌ๋ฌ ์์ ๋ฌถ๊ธฐ | h1, h2, h3 {} |
์์ฑ ์ ํ์ | ํน์ ์์ฑ ๊ฐ์ง ์์ ์ ํ | input[type="text"] |
3๏ธโฃ ๋ฐ์ค ๋ชจ๋ธ(Box Model) ์ดํดํ๊ธฐ
๋ชจ๋ HTML ์์๋ ํ๋์ ๋ฐ์ค์ ๋๋ค. ์ด ๋ฐ์ค๋ ์ด 4๊ฐ์ ๋ ์ด์ด๋ก ๊ตฌ์ฑ๋ผ์
์ฉ์ด | ์ค๋ช |
content | ์ค์ ์ฝํ ์ธ ์์ญ (ํ ์คํธ, ์ด๋ฏธ์ง ๋ฑ) |
padding | ์ฝํ ์ธ ์ ํ ๋๋ฆฌ ์ฌ์ด์ ์์ชฝ ์ฌ๋ฐฑ |
border | ์์์ ํ ๋๋ฆฌ |
margin | ์์ ๋ฐ๊นฅ์ชฝ ์ฌ๋ฐฑ (๋ค๋ฅธ ์์์์ ๊ฑฐ๋ฆฌ) |
Tip: box-sizing: border-box;์ ์ฌ์ฉํ๋ฉด padding๊ณผ border๋ width์ ํฌํจ๋์ด ๊ณ์ฐ๋์ด ๋ ์ด์์ ์ก๊ธฐ ๋ ์ฌ์์.
4๏ธโฃ ์์, ํฐํธ, ์ฌ๋ฐฑ ์คํ์ผ๋งํ๊ธฐ
CSS๋ก๋ ํ ์คํธ์ ์์์ ์๊ฐ์ ์ธ ์คํ์ผ์ ๋ค์ํ๊ฒ ์ง์ ํ ์ ์์ด์.
body {
background-color: #f9f9f9;
color: #333;
font-family: 'Pretendard', sans-serif;
padding: 20px;
}
h1 {
font-size: 32px;
margin-bottom: 16px;
}
์์ฃผ ์ฐ๋ ์์ฑ ์ ๋ฆฌ
์์ฑ | ์ค๋ช |
color | ๊ธ์ ์ |
background-color | ๋ฐฐ๊ฒฝ ์ |
font-size, font-family | ๊ธ์ ํฌ๊ธฐ, ๊ธ๊ผด |
margin, padding | ๋ฐ๊นฅ ์ฌ๋ฐฑ, ์์ชฝ ์ฌ๋ฐฑ |
text-align | ํ ์คํธ ์ ๋ ฌ (left, center, right) |
5๏ธโฃ display ์์ฑ ์ด์ ๋ฆฌ
์์๊ฐ ํ๋ฉด์์ ์ด๋ป๊ฒ ๋ฐฐ์น๋ ์ง ๊ฒฐ์ ํ๋ ์ค์ํ ์์ฑ์ ๋๋ค.
๊ฐ | ์ค๋ช |
block | ํ ์ค ์ ์ฒด๋ฅผ ์ฐจ์งํ๋ ๋ธ๋ก ์์ (div, p ๋ฑ) |
inline | ์ฝํ ์ธ ํฌ๊ธฐ๋งํผ ์ฐจ์งํ๋ ์ธ๋ผ์ธ ์์ (span, a ๋ฑ) |
inline-block | ์ธ๋ผ์ธ์ฒ๋ผ ๋ฐฐ์น๋์ง๋ง ํฌ๊ธฐ ์ง์ ๊ฐ๋ฅ |
none | ํ๋ฉด์์ ์ ๋ณด์ด๊ฒ ์จ๊น (์ญ์ ์๋) |
6๏ธโฃ position ์์ฑ ์ ๋ฆฌ
์์์ ์์น๋ฅผ ์ ์ดํ ๋ ์ฌ์ฉํ๋ ์์ฑ์ ๋๋ค. ๊ธฐ๋ณธ์ static์ด์์.
๊ฐ | ์ค๋ช |
static | ๊ธฐ๋ณธ ์์น (ํ๋ฆ ๊ทธ๋๋ก) |
relative | ์๊ธฐ ์์น ๊ธฐ์ค์ผ๋ก ์ด๋ |
absolute | ๊ฐ์ฅ ๊ฐ๊น์ด position: relative ์กฐ์ ๊ธฐ์ค์ผ๋ก ์ด๋ |
fixed | ํ๋ฉด ๊ธฐ์ค ๊ณ ์ (์คํฌ๋กคํด๋ ์์น ๊ณ ์ ๋จ) |
sticky | ํน์ ์์น์ ๋๋ฌํ๋ฉด ๊ณ ์ (์คํฌ๋กค ํจ๊ณผ์ ๊ฒฐํฉ๋จ) |
.box {
position: absolute;
top: 100px;
left: 50px;
}
๋ง๋ฌด๋ฆฌ โจ
CSS๋ ์ฒ์์ ์ด๋ ค์ ๋ณด์ด์ง๋ง, ํ๋์ฉ ์ง์ ํด๋ณด๋ฉด์ ์ตํ๋ค ๋ณด๋ฉด ๋ถ๋ช ๊ฐ์ด ์์.
์ด๋ฒ ๊ธ์์๋ CSS์ ๊ธฐ๋ณธ ๋ฌธ๋ฒ๊ณผ ์ ํ์, ๋ฐ์ค ๋ชจ๋ธ, display/position ๋ฑ ๋ ์ด์์๊ณผ ๊ด๋ จ๋ ํ์ ์์ฑ๋ค์ ๋ค๋ค๋ดค์ด์.
๋ค์ ๊ธ์์๋ Flexbox์ Grid๋ฅผ ํ์ฉํ ์ค์ ๋ ์ด์์ ๊ตฌ์ฑ ๋ฐฉ๋ฒ์ ์ดํด๋ณผ ์์ ์ด์์!
'๐จ Frontend' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๐ ์๋ฐ์คํฌ๋ฆฝํธ(JavaScript) ๊ธฐ๋ณธ ๋ค์ง๊ธฐ - Part 2 (0) | 2025.04.27 |
---|---|
๐ ์๋ฐ์คํฌ๋ฆฝํธ(JavaScript) ๊ธฐ๋ณธ ๋ค์ง๊ธฐ - Part 1 (0) | 2025.04.24 |
์น ํ์ด์ง ๋ ์ด์์ ์ ๋๋ก ์ก๊ธฐ (0) | 2025.04.23 |
HTML ๊ธฐ๋ณธ๊ธฐ ๋ค์ง๊ธฐ (0) | 2025.04.09 |
์น์ ์ด๋ป๊ฒ ์๋ํ ๊น? (0) | 2025.04.08 |