CSS - โ ๊ธฐ๋ณธ
CSS?
CSS๋ HTML๊ณผ ํจ๊ป ์น ํ์ค์ ๊ธฐ๋ณธ ๊ฐ๋ ์ ๋๋ค.
HTML์ด ํ ์คํธ, ์ด๋ฏธ์ง, ํ ๊ฐ์ ์์๋ฅผ ์น ๋ฌธ์์ ๋ฃ์ด ๋ผ๋๋ฅผ ๋ง๋๋ ์ญํ ์ ํ๋ค๋ฉด..
CSS๋ ํ ์คํธ, ์ด๋ฏธ์ง, ๋ฐฐ๊ฒฝ์ ํฌ๊ธฐ๋ ๋ฐฐ์น ๋ฐฉ๋ฒ ๋ฑ์ ์์๋ฅผ ์ด์ฉํ์ฌ ๋์์ธ์ ๋ด๋น ํฉ๋๋ค.
์ด์ฐฝ๊ธฐ HTML์ style์ด๋ผ๋ ์์ฑ์ผ๋ก ํ๊ทธ๋ฅผ ๊พธ๋ฐ ์ ์๊ฒ ํ์ต๋๋ค. ํ์ง๋ง ์น์ด ๋ฐ์ ํ๋ฉด์ ํ๋์ ์น ๋ฌธ์ ์์ ๊ตฌ์กฐ๋ฅผ ์ค๊ณํ๋ ํ๊ทธ์ ๋์์ธ์ ๋ด๋นํ๋ ์คํ์ผ์ ๊ฐ์ด ๋ฌถ์ด ๋๋ ๊ฒ์ด ๋ฌธ์ ๊ฐ ๋๊ธฐ ์์ํ์ต๋๋ค. ๊ทธ๋์ W3C๋ ์น ๋ฌธ์์์ ๊ตฌ์กฐ์ ๋์์ธ์ ๋ถ๋ฆฌํ๊ธฐ๋ก ํ๊ณ , ๊ทธ ๋ฐฉ๋ฒ์ ํ๋๋ก CSS๋ผ๋ ์ธ์ด๊ฐ ํ์ํ์ต๋๋ค.
CSS ๊ธฐ๋ณธ ํ์
CSS ๋ฌธ๋ฒ์ ํฌ๊ฒ ์ ํ์์ ์ ์ธ๋ถ๋ก ๊ตฌ๋ถ ํฉ๋๋ค.
- ์ ํ์๋ CSS ์คํ์ผ์ ์ ์ฉํ HTML ํ๊ทธ(์์)๋ฅผ ์ ํํ๋ ์์ญ ์ ๋๋ค.
- ์ ์ธ๋ถ๋ ์ ํ์์์ ์ ํํ ํ๊ทธ์ ์ ์ฉํ ์คํ์ผ์ ์์ฑํ๋ ์์ต์ผ๋ก, ์ค๊ดํธ{}๋ฅผ ๋ฃ์ต๋๋ค.
p {
color: red;
padding: 5px;
}
CSS ์ ์ฉ
์คํ์ผ ์ํธ?
์น ๋ฌธ์ ์์๋ ๋ค์ํ ์คํ์ผ ๊ท์น์ด ์ ์ฉ ๋ฉ๋๋ค.
์ด๋ฐ ์คํ์ผ ๊ท์น์ ํ ๋์ ํ์ธํ๊ณ , ํ์ํ ๋๋ง๋ค ์์ ํ๊ธฐ๊ฐ ์ฝ๋๋ก ํ๊ตฐ๋ฐ ๋ฌถ์ด ๋์ ๊ฒ์ '์คํ์ผ ์ํธ'๋ผ๊ณ ํฉ๋๋ค.
์คํ์ผ ์ํธ๋ ํฌ๊ฒ ์น ๋ธ๋ผ์ฐ์ ์ ๊ธฐ๋ณธ์ผ๋ก ๋ง๋ค์ด์ ธ ์๋ ๋ธ๋ผ์ฐ์ ๊ธฐ๋ณธ ์คํ์ผ๊ณผ ์ฌ์ฉ์ ์คํ์ผ ์ํธ๋ก ๋๋ ์ ์์ต๋๋ค.
๐ก ๋ธ๋ผ์ฐ์ ๊ธฐ๋ณธ ์คํ์ผ์.. margin์ ์์คฌ๋๋ฐ๋ ๋ถ๊ตฌํ๊ณ h1ํ๊ทธ ์ฌ์ฉ์ ์ฐฝ๊ณผ ์กฐ๊ธ ๋จ์ด์ ธ์ ๋ํ๋๋ ๊ฒ์ ํ์ธํ ์ ์์ต๋๋ค.
์ธ๋ผ์ธ ์คํ์ผ
- HTML ํ๊ทธ์์ ์ฌ์ฉํ ์ ์๋ style ์์ฑ์ CSS ์ฝ๋๋ฅผ ์์ฑํ๋ ๋ฐฉ๋ฒ ์ ๋๋ค.
- ํ๊ทธ์ ์ง์ CSS ์ฝ๋๋ฅผ ์์ฑํ๋ ๋ฐฉ์์ด๋ผ์ CSS ์ ๊ธฐ๋ณธ ๋ฌธ๋ฒ ํ์์์ ์ ํ์ ๋ถ๋ถ์ด ํ์ ์์ต๋๋ค.
<!DOCTYPE html>
<html>
<head>
<title>์ธ๋ผ์ธ ์คํ์ผ</title>
</head>
<body>
<h1 style="color: #333;">์ธ๋ผ์ธ ์คํ์ผ ์์ </h1>
<p style="font-family: Arial, sans-serif;">์ธ๋ผ์ธ ์คํ์ผ์ HTML ํ๊ทธ์
style ์์ฑ์ ์ฌ์ฉํ์ฌ ์คํ์ผ์ ์ง์ ํฉ๋๋ค.</p>
</body>
</html>
๋ด๋ถ ์คํ์ผ ์ํธ
- HTML ํ์ผ ๋ด๋ถ์ CSS ์ฝ๋๋ฅผ ์์ฑํ๋ ๋ฐฉ๋ฒ ์ ๋๋ค.
- style ํ๊ทธ๋ฅผ ์ฌ์ฉํ๋ ์์น๋ ์ ํด์ง ๊ธฐ์ค์ด ์์ง๋ง, ๋ณดํต head ํ๊ทธ์์ ์ฌ์ฉ ํฉ๋๋ค.
- head ํ๊ทธ์ CSS๋ฅผ ์์ฑํ๋ฉด body ํ๊ทธ์ ์์ฑ๋ ๋ด์ฉ์ด ์ฌ์ฉ์์๊ฒ ๋ ธ์ถ๋๊ธฐ ์ ์ CSS๋ฅผ ๋ถ๋ฌ์ ๋น ๋ฅด๊ฒ ๋์์ธ์ ์ ์ฉํ ์ ์๋ ์ฅ์ ์ด ์์ต๋๋ค.
- ๊ทธ๋ฌ๋ ์น ๋ธ๋ผ์ฐ์ ์์ HTML ๋ฌธ์๋ฅผ ํด์ค ํ ๋ ๋ง๋ค CSS ์ฝ๋๋ฅผ ๋งค๋ฒ ๋ค์ ์ฝ๊ธฐ ๋๋ฌธ์ ์ฑ๋ฅ์์ผ๋ก๋ ์ข์ง ๋ชปํ๋ค๋ ๋จ์ ์ด ์กด์ฌ ํฉ๋๋ค.
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<title>์ํ ์๊ฐ ํ์ด์ง</title>
<style>
h1 {
padding:10px;
background-color:#222;
color:#fff;
}
</style>
</head>
<body>
<h1>๋ ๋ํฅ</h1>
<p>๊ป์ง์ ๋ถ์ ๋น์ด ๋์ ๋ ๋ํฅ์ด๋ผ ๋ถ๋ฆฐ๋ค.</p>
<p>๋ ๋ํฅ์ ํ๋ผ๋ด๊ณผ ๊ทค์ ๊ต๋ฐฐํ ๊ฒ์ผ๋ก ์ผ๋ฐ ๊ทค๋ณด๋ค 2~3๋ฐฐ ํฌ๊ณ , ๊ณผ์ก์ด ๋ถ๊ณ ํตํตํ๋ค.</p>
<p>๋นํ๋ฏผ C์ ๋นํ๋ฏผ P๊ฐ ํ๋ถํด ํ์ก์ํ, ๊ฐ๊ธฐ์๋ฐฉ ๋ฑ์ ์ข์ ๊ฒ์ผ๋ก ์๋ ค์ ธ ์๋ค.</p>
</body>
</html>
์ธ๋ถ ์คํ์ผ ์ํธ
- CSS ์ฝ๋๋ฅผ ์์ฑํ๋ ๋ณ๋ ํ์ผ์ ๋ง๋ค์ด HTML ๋ฌธ์์ CSS๋ฅผ ์ฐ๊ฒฐํ๋ ๋ฐฉ๋ฒ ์ ๋๋ค.
- ํ์ผ์ ํ์ฅ์๋ CSS ์ฌ์ผ ํฉ๋๋ค.
- ๋ณ๋๋ก ์์ฑํ CSS ํ์ผ์ HTML ๋ฌธ์์์ ์ฐ๊ฒฐํ ๋๋ link ํ๊ทธ๋ฅผ ์ฌ์ฉ ํฉ๋๋ค.
h1 {
padding:10px;
background-color:#222;
color:#fff;
}
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<title>์ํ ์๊ฐ ํ์ด์ง</title>
<link rel="stylesheet" href="css/style.css">
</head>
<body>
<h1>๋ ๋ํฅ</h1>
<p>๊ป์ง์ ๋ถ์ ๋น์ด ๋์ ๋ ๋ํฅ์ด๋ผ ๋ถ๋ฆฐ๋ค.</p>
<p>๋ ๋ํฅ์ ํ๋ผ๋ด๊ณผ ๊ทค์ ๊ต๋ฐฐํ ๊ฒ์ผ๋ก ์ผ๋ฐ ๊ทค๋ณด๋ค 2~3๋ฐฐ ํฌ๊ณ , ๊ณผ์ก์ด ๋ถ๊ณ ํตํตํ๋ค.</p>
<p>๋นํ๋ฏผ C์ ๋นํ๋ฏผ P๊ฐ ํ๋ถํด ํ์ก์ํ, ๊ฐ๊ธฐ์๋ฐฉ ๋ฑ์ ์ข์ ๊ฒ์ผ๋ก ์๋ ค์ ธ ์๋ค.</p>
</body>
</html>
CSS ์ฃผ์ ๋ฌธ๋ฒ ์์ฝ
CSS ์ฃผ์ ์์ฑ
1. ์์(color)
- font-color: ํ ์คํธ ์์ ์ง์
- background-color: ๋ฐฐ๊ฒฝ ์์ ์ง์
2. ํฐํธ(font)
- font-size: ๊ธ์ ํฌ๊ธฐ ์กฐ์
- font-family: ํฐํธ ์ง์
- font-weight: ํฐํธ ๊ตต๊ธฐ ์กฐ์
- font-style: ๊ธ์ ๊ธฐ์ธ๊ธฐ ์กฐ์
3. ๋ ์ด์์(layout)
- width: ์์์ ๊ฐ๋ก ํฌ๊ธฐ ์กฐ์
- height: ์์์ ์ธ๋ก ํฌ๊ธฐ ์กฐ์
- margin: ์์์ ๋ฐ๊นฅ์ชฝ ์ฌ๋ฐฑ ์กฐ์
- padding: ์์์ ์์ชฝ ์ฌ๋ฐฑ ์กฐ์
- border: ์์์ ํ ๋๋ฆฌ ์คํ์ผ ์กฐ์
- box-shadow: ์์์ ๊ทธ๋ฆผ์ ํจ๊ณผ ์ถ๊ฐ
4. ๋ฐฐ๊ฒฝ(background)
- background-color: ๋ฐฐ๊ฒฝ ์์ ์ง์
- background-image: ๋ฐฐ๊ฒฝ ์ด๋ฏธ์ง ์ง์
- background-size: ๋ฐฐ๊ฒฝ ์ด๋ฏธ์ง ํฌ๊ธฐ ์กฐ์
- background-position: ๋ฐฐ๊ฒฝ ์ด๋ฏธ์ง ์์น ์กฐ์
5. ์ ๋๋ฉ์ด์ (animation)๊ณผ ์ ํ(transition)
- animation: ์์์ ์ ๋๋ฉ์ด์ ํจ๊ณผ ์ถ๊ฐ
- transition: ์์์ ์ํ ๋ณํ์ ๋ฐ๋ฅธ ์ ํ ํจ๊ณผ ์ถ๊ฐ
6. ๋ฐ์ํ ๋์์ธ(responsive design)
- media query: ๋ฏธ๋์ด ์ฟผ๋ฆฌ๋ฅผ ์ฌ์ฉํ์ฌ ํ๋ฉด ํฌ๊ธฐ์ ๋ฐ๋ฅธ ์คํ์ผ ์กฐ์
- flexbox: ์์์ ๋ฐฐ์น๋ฅผ ์ ์ฐํ๊ฒ ์กฐ์ ํ๋ ๋ ์ด์์ ๋ฐฉ์
- grid: ๊ทธ๋ฆฌ๋ ๋ ์ด์์์ ์ฌ์ฉํ์ฌ ์์์ ์์น๋ฅผ ์กฐ์
๋๋น
CSS์์ ์์์ ๋๋น๋ ๋ค์ํ ๋ฐฉ๋ฒ์ผ๋ก ์ง์ ํ ์ ์์ต๋๋ค.
1. ๊ณ ์ ๋๋น(fixed width)
๊ณ ์ ๋๋น๋ ํฝ์ (px) ๋จ์๋ก ๊ฐ์ ์ง์ ํ์ฌ ์์์ ๋๋น๋ฅผ ๊ณ ์ ํฉ๋๋ค. ์ด ๊ฒฝ์ฐ ์์์ ๋๋น๋ ํญ์ ๋์ผํ๊ฒ ์ ์ง๋ฉ๋๋ค.
2. ํผ์ผํธ ๋๋น(percent width)
ํผ์ผํธ ๋๋น๋ ์์์ ๋ถ๋ชจ ์์์ ๋ํ ์๋์ ์ธ ๋น์จ๋ก ๊ฐ์ ์ง์ ํฉ๋๋ค. ์ด ๊ฒฝ์ฐ ์์์ ๋๋น๋ ๋ถ๋ชจ ์์์ ํฌ๊ธฐ์ ๋ฐ๋ผ ์๋์ผ๋ก ์กฐ์ ๋ฉ๋๋ค. ์๋ฅผ ๋ค์ด, ๋ถ๋ชจ ์์์ ๋๋น๊ฐ 800px์ด๊ณ , ์์ ์์์ ๋๋น๋ฅผ 50%๋ก ์ง์ ํ ๊ฒฝ์ฐ ์์ ์์์ ๋๋น๋ 400px๊ฐ ๋ฉ๋๋ค.
3. ์๋ ๋๋น(auto width)
์๋ ๋๋น๋ ๋ด์ฉ(content) ์์ญ์ ๋ง๊ฒ ์์์ ๋๋น๋ฅผ ์๋์ผ๋ก ์กฐ์ ํฉ๋๋ค. ์ด ๊ฒฝ์ฐ ์์์ ๋๋น๋ ๋ด์ฉ(content) ์์ญ์ ํฌ๊ธฐ์ ๋ฐ๋ผ ์๋์ผ๋ก ์กฐ์ ๋ฉ๋๋ค.
4. ์ต๋/์ต์ ๋๋น(max/min width)
์ต๋/์ต์ ๋๋น๋ ์์์ ์ต๋/์ต์ ๋๋น ๊ฐ์ ์ง์ ํฉ๋๋ค. ์ด ๊ฒฝ์ฐ ์์์ ๋๋น๋ ์ง์ ๋ ๊ฐ๋ณด๋ค ํฌ๊ฑฐ๋ ์์์ง์ง ์์ต๋๋ค.
๋จ์
- px : ํ๋์ ์ ์ ์๋ฏธ (๊ฐ์ฅ ๋ง์ด ์ฌ์ฉ)
- % : ์๋์ ๋ฐฑ๋ถ์จ (๋ง์ด ์ฌ์ฉ) - ๋ฐ์ํ ์น์ ์ํด์ ์ฌ์ฉํด์ผ ํจ.
- em : ์์์ ๊ธ๊ผด ํฌ๊ธฐ : ๋ฐ์ํ ์น์ ๊ตฌํํ๊ธฐ ์ํด ์์ฃผ ์ฌ์ฉ๋๋ฉฐ, ๋จ์๋ ๋ถ๋ชจ ์์์ ํฐํธ ํฌ๊ธฐ๋ฅผ ๊ธฐ์ค์ผ๋ก ๊ฒฐ์ ๋ฉ๋๋ค. ์ผ๋ฐ์ ์ผ๋ก 1em์ ๋ถ๋ชจ ์์์ ํฐํธ ํฌ๊ธฐ๊ฐ 16px์ ์๋ฏธ ํฉ๋๋ค.
๐ก๋ถ๋ชจ ์์์์ ํฐํธ ํฌ๊ธฐ๋ฅผ ์ง์ ํ์ง ์์์ ๊ฒฝ์ฐ - rem : ๋ฃจํธ ์์์ ๊ธ๊ผด ํฌ๊ธฐ - ๋ฐ์ํ ์น์ ์ํด์ ์ฌ์ฉํด์ผ ํจ
- vw : ๋ทฐํฌํธ์ ๊ฐ๋ก ๋๋น ๋ฐฑ๋ถ์จ (๋ทฐํฌํธ๋ ๋ธ๋ผ์ฐ์ ์ ํ์๋๋ ํ๋ฉด ์ ์ฒด ์์ญ์ ์๋ฏธ)
- vh : ๋ทฐํฌํธ์ ์ธ๋ก ๋๋น ๋ฐฑ๋ถ์จ
๋ง์ง(margin)
- ์์์ ์ธ๋ถ ์ฌ๋ฐฑ์ ์ง์ ํ๋ ์์ฑ์ด๋ฉฐ ์์๊ฐ์ ์ง์ ํ ์ ์์
- auto ์์ฑ์ด ๊ธฐ๋ณธ์ด๋ฉฐ, ๊ฐ์ด๋ฐ ์ ๋ ฌ์ ์๋ฏธ ํจ.
- ๋จ์๋ px, em, vw
- ๊ฐ์ 1๊ฐ ์ ๋ ฅํ๋ฉด ์ ๋ถ ์ ์ฉ
- 2๊ฐ ์ ๋ ฅํ๋ฉด ์/์๋, ์ข/์ฐ
- 3๊ฐ ์ ๋ ฅํ๋ฉด ์, ์ข/์ฐ, ์๋
- 4๊ฐ ์ ๋ ฅํ๋ฉด ์๊ณ๋ฑกํฅ์ผ๋ก ์ ์ฉ
ํจ๋ฉ(padding)
- ๋ด๋ถ์ ์ฌ๋ฐฑ ์ง์
- px, em, % ๋ฑ์ ๋จ์๋ก ์ง์ ๊ฐ๋ฅ
- ๋ง์ง๊ณผ ์ ์ฉ ๋ฐฉ์์ ๋์ผ ํจ.
border
- ๋จ์ถ ์์ฑ(์๋ก ๋ค๋ฅธ ์ฌ๋ฌ ๊ฐ์ง CSS ์์ฑ์ ๊ฐ์ ์ง์ ํ ์ ์์)
- border: border-width border-style border-color
- ํ ๋๋ฆฌ์ ๊ตต๊ธฐ๋ก ๊ธฐ๋ณธ๊ฐ์ medium
- ํ ๋๋ฆฌ์ ์คํ์ผ๋ก ๊ธฐ๋ณธ๊ฐ์ none
- ํ ๋๋ฆฌ์ ์์์ผ๋ก ๊ธฐ๋ณธ๊ฐ์ currentcolor
- ํ ๋๋ฆฌ์ ๋๊ป ๋งํผ ์์๊ฐ ์ปค์ง
- border-style : ๊ธฐ๋ณธ๊ฐ์ none (์ ์ ์ข ๋ฅ๋ฅผ ์๋ฏธ, none, hidden, dotted, dashed, solid......)
- border-radius: ๋ผ์ด๋ ์ฒ๋ฆฌ
- solid๋ ์ค์ , dashed ํ์
- ์ปฌ๋ฌ๋ rgb(255, 255, 255)๋ก ์ ๋ ฅ ๊ฐ๋ฅ, #32a1ce๋ก๋ ์ ๋ ฅ ๊ฐ๋ฅ, ์ง์ ๋ ์ปฌ๋ฌ ์ด๋ฆ์ผ๋ก๋ ์ฌ์ฉ ๊ฐ๋ฅ
/* ์คํ์ผ */
border: solid;
/* ๋๋น | ์คํ์ผ */
border: 2px dotted;
/* ์คํ์ผ | ์ */
border: outset #f33;
/* ๋๋น | ์คํ์ผ | ์ */
border: medium dashed green;
border: 1px solid #000;