-
[CSS] CSS ๊ธฐ์ด๐ FrontEnd/HTML & CSS 2022. 5. 17. 15:46
์์ํ๋ฉด์
CSS ์ ๊ธฐ์ด๋ฅผ ์์ ์ ํจ๊ป ๊ณต๋ถํด ๋ด ์๋ค.
1. CSS (Cascading Style Sheets)
(1) ์ ์คํ์ผ์ ์ฌ์ฉํ ๊น?
- ์น ๋ฌธ์์ ๋ด์ฉ๊ณผ ์๊ด ์์ด ๋์์ธ๋ง ๋ฐ๊ฟ ์ ์์ต๋๋ค.
- HTML๋ก๋ ์น ์ฌ์ดํธ์ ๋ด์ฉ์, CSS๋ก๋ ์น ๋ฌธ์์ ๋์์ธ์ ๊ตฌ์ฑํ๋ค๋ ์์ด๋์ด๊ฐ ๋ฐ๋ก ์น ํ์ค์ ์์์ ๋๋ค.
- ์ ์ง๋ณด์๊ฐ ์ฝ์ต๋๋ค.
- ๋ค์ํ ๊ธฐ๊ธฐ์ ๋ง๊ฒ ํ๋ ฅ์ ์ผ๋ก ๋ฐ๋๋ ๋ฌธ์๋ฅผ ๋ง๋ค ์ ์์ต๋๋ค.
(2) ์คํ์ผ์ ํ์
- ์ ํ์ (selector) ๋ ์คํ์ผ ๊ท์น์ ์ด๋์ ์ ์ฉํ ๊ฒ์ธ์ง๋ฅผ ๋ํ๋ ๋๋ค.
- ๊ธฐ๋ณธํ : ์ ํ์ {
- ์์ฑ: ์์ฑ ๊ฐ;
- }
p { /* ํ ์คํธ ๋จ๋ฝ์ ์ค์์ ์ ๋ ฌํ๋ ์คํ์ผ ๊ท์น */ text-align: center; } h1 { /* ์ ๋ชฉ 1๋จ๊ณ์ ๊ธ์ ํฌ๊ธฐ๋ฅผ 10px๋ก, ๊ธ์ ์์์ ํ๋์์ผ๋ก */ font-size: 10px; color: blue; }
(3) ์คํ์ผ ํ๊ธฐ ๋ฐฉ๋ฒ
- ์คํ์ผ ๊ท์น์ ์ธ๋ฏธ์ฝ๋ก (;) ์ผ๋ก ๊ตฌ๋ถํฉ๋๋ค.
- ๊ตฌ๋ถํ ๊ท์น์ ์ค๊ดํธ({}) ์์ ๋์ดํฉ๋๋ค.
- ํ ์ค๋ก ๊ธธ๊ฒ ๋์ดํด๋ ๋์ง๋ง, ๊ฐ๋ ์ฑ๊ณผ ์ ์ง๋ณด์๋ฅผ ์ํด ์ฌ๋ฌ ์ค์ ๊ฑธ์ณ ์์ฑํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
(4) ์คํ์ผ ์ฃผ์
- /* ์ */ ์ฌ์ด์ ๋ด์ฉ์ ์ ๋ ฅํ๋๋ฐ ์ฃผ์์ ํ ์ค๋ง ์ ๋ ฅํ๊ฑฐ๋ ์ฌ๋ฌ ์ค์ ์ ๋ ฅํ ์ ์์ต๋๋ค.
(5) ์คํ์ผ๊ณผ ์คํ์ผ ์ํธ
- ์คํ์ผ ์ํธ๋?
- ์คํ์ผ ๊ท์น๋ค์ ํ๋์ ํ์ธํ๊ณ ํ์ํ ๋๋ง๋ค ์์ ํ๊ธฐ ์ฝ๋๋ก ํ ๊ตฐ๋ฐ์ ๋ฌถ์ด ๋์ ๊ฒ์ ๋๋ค.
- ๋ด๋ถ ์คํ์ผ ์ํธ
- ๋ฌธ์ ์์์ ์ฌ์ฉํ ์คํ์ผ ๊ท์น๋ค์ ์ ์ํ ๊ฒ์ ๋๋ค.
- <head> </head> ํ๊ทธ ์์์ ์ ์ํ๊ณ , <style> </style> ํ๊ทธ ์ฌ์ด์ ์์ฑํฉ๋๋ค.
- ์ธ๋ถ ์คํ์ผ ์ํธ
- ๋ณ๋์ ์คํ์ผ ํ์ผ์ ๋ง๋ค์ด ์ฐ๊ฒฐํด ์ฌ์ฉํฉ๋๋ค.
- ๊ธฐ๋ณธํ : <link href="์ธ๋ถ ์คํ์ผ ํ์ผ ๊ฒฝ๋ก" rel="stylesheet" type="text/css">
- ์ธ๋ผ์ธ ์คํ์ผ
- ๊ฐ๋จํ ์คํ์ผ์ผ ๊ฒฝ์ฐ, ๋ฐ๋ก ์คํ์ผ ์ํธ๋ฅผ ๋ง๋ค์ง ์๊ณ ์คํ์ผ์ ์ ์ฉํ ๋์์ ์ง์ ํ์ํ๋ ๋ฐฉ๋ฒ์ ๋๋ค.
- ์ฆ, ํด๋น ํ๊ทธ์ style="์์ฑ: ์์ฑ ๊ฐ;" ํํ๋ก ์คํ์ผ์ ๋ฐ๊ฟ ์ ์์ต๋๋ค.
- ์) <p style="color: blue;"> ์ธ๋ผ์ธ ์คํ์ผ </p>
(5) ๋ด๋ถ ์คํ์ผ ์ํธ ์์
<!DOCTYPE html> <html lang="ko"> <head> <meta charset="utf-8"> <title>๋ด๋ถ ์คํ์ผ ์ํธ</title> <style> h1 { color: red; } ol li { color: rosybrown; } img { width: 300px; } </style> </head> <body> <img src="images/์ฝ๋ก.png" alt="์ฝ๊ธฐ๋ก๋ณถ์ด"> <h1>์ฝ๊ธฐ๋ก๋ณถ์ด ๋ง ๋จ๊ณ</h1> <ol> <li>์ฐฉํ๋ง</li> <li>์ฝ๋ก์ด๋ณด๋ง</li> <li>๋๋งค์ด๋ง</li> <li>์ค๋ฆฌ์ง๋</li> <li>๋งค์ด๋ง</li> </ol> </body> </html>
(5) ์ธ๋ถ ์คํ์ผ ์ํธ ์์
CSS
h1 { color: rosybrown; } ol li { color: red; } img { width: 300px; }
HTML
<!DOCTYPE html> <html lang="ko"> <head> <meta charset="utf-8"> <title>๋ด๋ถ ์คํ์ผ ์ํธ</title> <link href="style.css" rel="stylesheet" type="text/css"> </head> <body> <img src="images/์ฝ๋ก.png" alt="์ฝ๊ธฐ๋ก๋ณถ์ด"> <h1>์ฝ๊ธฐ๋ก๋ณถ์ด ๋ง ๋จ๊ณ</h1> <ol> <li>์ฐฉํ๋ง</li> <li>์ฝ๋ก์ด๋ณด๋ง</li> <li>๋๋งค์ด๋ง</li> <li>์ค๋ฆฌ์ง๋</li> <li>๋งค์ด๋ง</li> </ol> </body> </html>
2. ์ ํ์
(1) ์ ์ฒด ์ ํ์ - ๋ชจ๋ ์์์ ์คํ์ผ ์ ์ฉํ๊ธฐ
- ์ ์ฒด ์ ํ์์์๋ *(๋ณํ)๋ฅผ ์ ํ์๋ก ์ฌ์ฉํฉ๋๋ค.
* { margin: 0; padding: 0; }
(2) ํ๊ทธ ์ ํ์ - ํน์ ํ๊ทธ์ ์คํ์ผ ์ ์ฉํ๊ธฐ
- ๊ธฐ๋ณธํ : ํ๊ทธ {
- ์คํ์ผ
- }
(2) ์์
<!DOCTYPE html> <html lang="ko"> <head> <title>ํ ํธ๋ ํ์คํผ FC</title> <style> strong { color:blue; } p{ font-size:30px; margin-left:20px; } </style> </head> <body> <h1>ํ ํธ๋ ํ์คํผ FC</h1> <h2><strong>ํ ํธ๋</strong>์ ๋ํ์ฌ...</h2> <p>์๊ตญ ์๊ธ๋๋ ํ๋ฆฌ๋ฏธ์ด ๋ฆฌ๊ทธ์ ํ๋ก ์ถ๊ตฌ ํด๋ฝ.</p> <p>์ฐ๊ณ ์ง๋ ๋ฐ๋, ํ ๊ตฌ์ฅ์ ํ ํธ๋ ํ์คํผ ์คํ๋์์ด๋ค.</p> </body> </html>
(3) ํด๋์ค ์ ํ์ - ํน์ ๋ถ๋ถ์ ์คํ์ผ ์ ์ฉํ๊ธฐ
- ํน์ ๋ถ๋ถ์๋ง ์คํ์ผ์ ์ ์ฉํ ๋ ์ฌ์ฉํฉ๋๋ค.
- ๋ฌธ์ ์์์ ์ฌ๋ฌ ๋ฒ ๋ฐ๋ณตํด์ ์ ์ฉํ ์ ์์ต๋๋ค.
- ๊ธฐ๋ณธํ : .ํด๋์ค์ด๋ฆ {
- ์์ฑ: ์์ฑ ๊ฐ;
- ์์ฑ: ์์ฑ ๊ฐ;
- ...
- }
(3) ์์
<!DOCTYPE html> <html lang="ko"> <head> <title>ํ ํธ๋ ํ์คํผ FC</title> <style> .bluetext { color:blue; } p{ font-size:30px; margin-left:20px; } </style> </head> <body> <h1>ํ ํธ๋ ํ์คํผ FC</h1> <h2 class="bluetext">ํ ํธ๋์ ๋ํ์ฌ...</h2> <p class="bluetext">์๊ตญ ์๊ธ๋๋ ํ๋ฆฌ๋ฏธ์ด ๋ฆฌ๊ทธ์ ํ๋ก ์ถ๊ตฌ ํด๋ฝ.</p> <p>์ฐ๊ณ ์ง๋ ๋ฐ๋, ํ ๊ตฌ์ฅ์ ํ ํธ๋ ํ์คํผ ์คํ๋์์ด๋ค.</p> </body> </html>
(4) id ์ ํ์ - ํน์ ๋ถ๋ถ์ ์คํ์ผ ์ ์ฉํ๊ธฐ
- ํด๋์ค ์ ํ์์ ๋ฌ๋ฆฌ ๋ฌธ์ ์์์ ํ ๋ฒ๋ง ์ ์ฉํฉ๋๋ค.
- ๊ธฐ๋ณธํ : #id ์ด๋ฆ {
- ์์ฑ: ์์ฑ ๊ฐ;
- ์์ฑ: ์์ฑ ๊ฐ;
- ...
- }
(4) ์์
<!DOCTYPE html> <html lang="ko"> <head> <meta charset="utf-8"> <title>์์ ๋ง๋ค๊ธฐ</title> <style> #container { background: palevioletred; /* ๋ฐฐ๊ฒฝ์ */ width: 200px; /* ๋๋น */ height: 500px; /* ๋์ด */ margin: 0 auto; /* ๊ฐ๋ก๋ก ์ค์์ ๋ฐฐ์น */ } </style> </head> <body> <div id="container"></div> </body> </html>
(5) ๊ทธ๋ฃน ์ ํ์ – ๋ ์ด์ ์์์ ๊ฐ์ ์คํ์ผ ์ ์ฉํ๊ธฐ
- ์ฌ๋ฌ ์ ํ์์ ๊ฐ์ ์์ฑ์ ์ ์ฉํ ์ ์์ต๋๋ค.
- ๊ธฐ๋ณธํ : ์์1, ์์2, ... {
- ์์ฑ: ์์ฑ ๊ฐ;
- }
- ์) a, p {
- color: #ffffff;
- }
3. ์บ์ค์ผ์ด๋ฉ ์คํ์ผ ์ํธ
(1) ์บ์ค์ผ์ด๋ฉ (Cascading) ์ ์๋ฏธ
- CSS (Cascading Style Sheet) ์ ์๋ฏธ๋ฅผ ์ดํด๋ณด๋ฉด '์์์ ์๋๋ก ํ๋ฅด๋ ์คํ์ผ ์ํธ'๋ฅผ ๋ปํฉ๋๋ค.
- ์ฆ, ๋จ๊ณ์ ์ผ๋ก ์คํ์ผ์ด ์ ์ฉ๋๋ค๋ ๊ฒ์ ์๋ ค์ฃผ๊ณ ์์ต๋๋ค.
(2) ์คํ์ผ ์ฐ์ ์์
- ์คํ์ผ ๊ท์น์ ์ค์๋์ ์ ์ฉ ๋ฒ์์ ๋ฐ๋ผ ์ฐ์ ์์๊ฐ ๊ฒฐ์ ๋๊ณ , ๊ทธ ์ฐ์ ์์์ ๋ฐ๋ผ ์์์ ์๋๋ก ์คํ์ผ์ด ์ ์ฉ๋ฉ๋๋ค.
- ์ผ๋ง๋ ์ค์ํ๊ฐ - ์ค์๋ (Importance)
- 1์์) ์ฌ์ฉ์ ์คํ์ผ ์ํธ
- 2์์) ์ค์ ์คํ์ผ !important
- 3์์) ๊ธฐ๋ณธ ๋ธ๋ผ์ฐ์ ์คํ์ผ ์ํธ
- ์ผ๋ง๋ ํ์ ์ ์ธ๊ฐ - ๋ช
์๋ (Specificity) : ์ ์ฉ ๋ฒ์๊ฐ ์ข์์๋ก ์ฐ์ ์์๊ฐ ๋์์ง๋๋ค.
- 1์์) ์ธ๋ผ์ธ ์คํ์ผ : ํ๊ทธ ์์ ์ง์ style ์์ฑ์ ์ฌ์ฉํด ํด๋น ํ๊ทธ์๋ง ์คํ์ผ์ ์ ์ฉํฉ๋๋ค.
- 2์์) id ์คํ์ผ : ์ง์ ํ ๋ถ๋ถ์๋ง ์ ์ฉ๋๋ ์คํ์ผ์ด์ง๋ง ํ ๋ฌธ์ ์์์ ํ ๋ฒ๋ง ์ ์ฉํฉ๋๋ค.
- 3์์) ํด๋์ค ์คํ์ผ : ์ง์ ํ ๋ถ๋ถ์๋ง ์ ์ฉ๋๋ ์คํ์ผ์ด์ง๋ง ํ ๋ฌธ์ ์์์ ์ฌ๋ฌ ๋ฒ ์ ์ฉํฉ๋๋ค.
- 4์์) ํ๊ทธ ์คํ์ผ : ์น ๋ฌธ์์ ์ฌ์ฉ๋ ํน์ ํ๊ทธ์ ๋ชจ๋ ๋๊ฐ์ด ์ ์ฉํฉ๋๋ค.
- ์์ค์์์ ์์ (Source Order)
- ๊ฐ์ ์์์ ์ฌ๋ฌ๊ฐ์ง ์คํ์ผ์ด ๊ฒน์ณ์ง ๋ ๊ฐ์ฅ ๋์ค์ ์ ์๋ ์คํ์ผ์ ์ ์ฉํฉ๋๋ค.
์ต์ข ์ ์ผ๋ก ์คํ์ผ ์ฐ์ ์์๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
1์์. ์์ฑ๊ฐ ๋ค์ !important ๊ฐ ์๋ ๊ฒฝ์ฐ
2์์. ์ง์ ์ธ๋ผ์ธ์ผ๋ก style ์์ฑ์ ์ง์ ํ ๊ฒฝ์ฐ
3์์. ์ ํ์๊ฐ #id ์ธ ๊ฒฝ์ฐ
4์์. ์ ํ์๊ฐ .ํด๋์ค ์ธ ๊ฒฝ์ฐ
5์์. ์ ํ์๊ฐ ํ๊ทธ ์ธ ๊ฒฝ์ฐ(2) ์์
<!DOCTYPE html> <html lang="ko"> <head> <meta charset="utf-8"> <title>์บ์ค์ผ์ด๋ฉ ํ ์คํธ</title> <style> p { font-style: italic; /* ๊ธ์ ์คํ์ผ */ color:blue; /* ๊ธ์์ */ } p { color:red !important; /* ๊ธ์์, ์ฐ์ ์ ์ฉ */ } </style> </head> <body> <h1>YouTube</h1> <img src="images/youtube.svg" alt="์ ํ๋ธ"> <p>์ฌ์ฉ์๊ฐ ๋์์์ ์์ ๋กญ๊ฒ ์ฌ๋ฆฌ๊ฑฐ๋ ๋ณผ ์ ์๋ ๊ตฌ๊ธ์ ์ฝํ ์ธ ํธ์คํ ์น์ฌ์ดํธ์ด์, ์ธ๊ณ ์ต๋ ๊ท๋ชจ์ ๋น๋์ค ํ๋ซํผ์ด๋ค.</p> <p>YouTube๋ผ๋ ๋ช ์นญ์ ์ฌ์ฉ์๋ฅผ ๊ฐ๋ฆฌํค๋ '์ (You, ๋น์ )'์</p> <p>๋ฏธ๊ตญ ์์ด์์ ํ ๋ ๋น์ ์ ๋ณ์นญ์ผ๋ก ์ฌ์ฉ๋๋ 'ํ๋ธ(Tube)'๋ฅผ ๋ํ ๊ฒ์ด๋ค.</p> </body> </html>
์์ฑ ๊ฐ ๋ค์ !important ๋ฅผ ๋ถ์ฌ์ค ์คํ์ผ์ด ์ฐ์ ์ ์ผ๋ก ์ ์ฉ๋ ๊ฒ์ ํ์ธ ํ ์ ์์ต๋๋ค.
(3) ์คํ์ผ ์์
- ์์ ์์์์ ๋ณ๋๋ก ์คํ์ผ์ ์ง์ ํ์ง ์์ผ๋ฉด, ๋ถ๋ชจ ์์์ ์๋ ์คํ์ผ ์์ฑ๋ค์ด ์์ ์์๋ก ์ ๋ฌ๋ฉ๋๋ค.
(3) ์์
<!DOCTYPE html> <html lang="ko"> <head> <meta charset="utf-8"> <title>๋ด์ํ์์ฆ 10๋ ์ํ</title> <style> body { font-family:"๋์"; /* ๊ธ๊ผด */ color:darkgreen; /* ๊ธ์์ */ } </style> </head> <body> <h1>๋ด์ ํ์์ฆ์์ ๋ฐํํ ์ธ๊ณ 10๋ ์ํผํธ๋</h1> <ul> <li>๋ธ๋ฃจ๋ฒ ๋ฆฌ</li> <li>๊ท๋ฆฌ</li> <li>ํ ๋งํ </li> <li>์๊ธ์น</li> <li>์ ํฌ๋์ฃผ</li> <li>๊ฒฌ๊ณผ๋ฅ</li> <li>๋ธ๋ก์ฝ๋ฆฌ</li> <li>์ฐ์ด</li> <li>๋ง๋</li> <li>๋ น์ฐจ</li> </ul> </body> </html>
4. CSS3 ์ CSS ๋ชจ๋
- ์ ๋๋ฉ์ด์ ์ด๋ ์ด๋ฏธ์ง ํธ์ง์ฒ๋ผ ๋ค๋ฅธ ํ๋ก๊ทธ๋จ์ ๋์์ ๋ฐ์์ผ ํ๋ ํจ๊ณผ๋ค์ CSS3 ์์ค์ฝ๋๋ง์ผ๋ก ํด๊ฒฐํ ์ ์์ต๋๋ค.
- ์ด๋ฌํ ์ด์ ๋ก CSS3 ๋ ์น ํ์ค ๊ธฐ์ ์์ ์ค์ํ ์์น๋ฅผ ์ฐจ์งํ๊ณ ์์ต๋๋ค.
(1) CSS3 ๋?
- ๋ชจ๋ ๊ธฐ๋ฐ์ผ๋ก ๊ฐ๋ฐ์ค์ธ CSS ์ ๋๋ค.
- CSS2 ๋ CSS1 ์ ๋นํด ์ ๊ตํ๊ณ ํ๋ คํ ํ๋ฉด์ ๊ตฌ์ฑํ ์ ์๊ณ , ์ ๋๋ฉ์ด์ ๋ ์ง์ํฉ๋๋ค.
(2) CSS3 ์ ๋ธ๋ผ์ฐ์ ์ ๋์ฌ(prefix)
- CSS3 ์์ฑ์ ์ฌ์ฉํ๊ธฐ ์ํด์ ์์ฑ ์ด๋ฆ ์์ ๋ธ๋ผ์ฐ์ ๋ฅผ ์๋ณํ ์ ์๋ ์ ๋์ฌ(prefix)๋ฅผ ๋ถ์ฌ์ ์ฌ์ฉํด์ผ ํฉ๋๋ค.
-webkit- ์นํคํธ(Webkit) ๋ฐฉ์์ ๋ธ๋ผ์ฐ์ ์ฉ (์. ์ฌํ๋ฆฌ, ํฌ๋กฌ ๋ฑ) -moz- ๊ฒ์ฝ(Gecko) ๋ฐฉ์์ ๋ธ๋ผ์ฐ์ ์ฉ (์. ๋ชจ์ง๋ผ, ํ์ด์ดํญ์ค ๋ฑ) -o- ์คํ๋ผ ๋ธ๋ผ์ฐ์ -ms- ๋ง์ดํฌ๋ก์ํํธ ์ธํฐ๋ท ์ต์คํ๋ก๋ฌ (2) ์์
<!DOCTYPE HTML> <html> <head> <meta charset="utf-8"> <title>Transform</title> <style> .box{ position:absolute; left:50px; top:70px; width:100px; height:60px; background:#fff; border:2px solid green; text-align:center; line-height:60px; } .box:hover { -webkit-transform: rotate(15deg); -moz-transform: rotate(15deg); -o-transform: rotate(15deg); -ms-transform: rotate(15deg); transform: rotate(15deg); } </style> </head> <body> <div class="box">Mouse Over</div> </body> </html>
๋ง๋ฌด๋ฆฌํ๋ฉฐ
CSS ์ ๊ธฐ์ด๋ฅผ ์์ ์ ํจ๊ป ์ตํ๋ณด์์ต๋๋ค.
์น ํ์ด์ง๊ฐ ์๋ฆ๋ค์์ง๊ธฐ ์์ํฉ๋๋ค. ์์ง ์์๋จ๊ณ์ง๋ง ๋ฒ์จ ๋๋ง์ ์น ๋ฏธ์ ๊ด์ ์์ํ๊ณ ์์ต๋๋ค.
๋๊ธ๊ณผ ๊ณต๊ฐ์ ํญ์ ํ์์ ๋๋ค!
'๐ FrontEnd > HTML & CSS' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[CSS] ํ ์คํธ ๊ด๋ จ ์คํ์ผ๊ณผ ์์ - 2 (0) 2022.05.20 [CSS] ํ ์คํธ ๊ด๋ จ ์คํ์ผ๊ณผ ์์ - 1 (0) 2022.05.17 [HTML & CSS] ์ฃผ์ ๋ค๋ ๋ฒ (0) 2022.05.16 [HTML] ํผ ๊ด๋ จ ํ๊ทธ์ ์์ - 2 (0) 2022.05.16 [HTML] ํผ ๊ด๋ จ ํ๊ทธ์ ์์ - 1 (0) 2022.05.15 - ์น ๋ฌธ์์ ๋ด์ฉ๊ณผ ์๊ด ์์ด ๋์์ธ๋ง ๋ฐ๊ฟ ์ ์์ต๋๋ค.