-
[CSS] ๋ ์ด์์์ ์ํ ์คํ์ผ๊ณผ ์์ ๐ FrontEnd/HTML & CSS 2022. 5. 23. 18:30
์์ํ๋ฉด์
๋ ์ด์์์ ์ํ ์คํ์ผ์ ์์ ์ ํจ๊ป ๊ณต๋ถํฉ๋๋ค.
1. CSS ์ ๋ฐ์ค ๋ชจ๋ธ
- CSS ์ ๋ฐ์ค ๋ชจ๋ธ (box model) ์ ๊ทธ๋ฆผ์ด๋ ํ ์คํธ์ฒ๋ผ ์ฌ๊ฐ ์์ญ์ ๊ฐ๋ ์์๋ฅผ ํต์นญํฉ๋๋ค.
- ๋ฐ์ค ๋ชจ๋ธ ์คํ์ผ์ ์ด์ฉํ๋ฉด ์ฌ๋ฐฑ์ด๋ ํ ๋๋ฆฌ ๋ฑ์ ์์ธํ ์ค์ ํ ์ ์์ต๋๋ค.
- ์น ๋ฌธ์์์ ๋ค์ํ๊ฒ ํ์ฉํ ์ ์์ต๋๋ค.
(1) ๋ธ๋ก ๋ ๋ฒจ ์์์ ์ธ๋ผ์ธ ๋ ๋ฒจ ์์
- ๋ธ๋ก ๋ ๋ฒจ (block-level) ์์
- ์์๋ฅผ ์ฝ์ ํ์ ๋ ํผ์์ ํ ์ค์ ์ฐจ์งํ๋ ์์์ ๋๋ค.
- ํด๋น ์์์ ์ผ์ชฝ์ด๋ ์ค๋ฅธ์ชฝ์ ๋ค๋ฅธ ์์๊ฐ ์ฌ ์ ์์ต๋๋ค.
- ์) <p>, <h1>~<h6>, <ul>, <ol>, <div>, <blockquote>, <form>, <hr>, <table>, <fieldset>, <address>
- ์ธ๋ผ์ธ ๋ ๋ฒจ (inline-level) ์์
- ์ค์ ์ฐจ์งํ์ง ์๋ ์์์ ๋๋ค.
- ํ๋ฉด์ ํ์๋๋ ์ฝํ ์ธ ๋งํผ๋ง ์์ญ์ ์ฐจ์งํ๊ณ , ๊ทธ ์ธ์ ๊ณต๊ฐ์๋ ๋ค๋ฅธ ์์๊ฐ ์๋ ์๊ด ์์ต๋๋ค.
- ํ ์ค์ ์ฌ๋ฌ ์์๋ฅผ ํ์ํ ์ ์์ต๋๋ค.
- ์) <img>, <object>, <br>, <sup>, <span>, <input>, <textarea>, <label>, <button>
(1) ์์
<!doctype html> <html lang="ko"> <head> <meta charset="utf-8"> <title>๋ธ๋ก ๋ ๋ฒจ๊ณผ ์ธ๋ผ์ธ ๋ ๋ฒจ</title> </head> <body> <h3>๋ธ๋ก ๋ ๋ฒจ</h3> <p>๋ธ๋ก ๋ ๋ฒจ</p> <p>๋ธ๋ก ๋ ๋ฒจ ์ <span>์ธ๋ผ์ธ ๋ ๋ฒจ</span></p> </body> </html>
(2) ๋ฐ์ค ๋ชจ๋ธ(box model) - ๋ฐ์ค ํํ์ ์ฝํ ์ธ
- ์น ๋ฌธ์์ ๋ธ๋ก ๋ ๋ฒจ ์์๋ค์ ๋ชจ๋ ๋ฐ์ค ํํ์ ๋๋ค.
(3) width, height ์์ฑ – ์ฝํ ์ธ ์์ญ์ ํฌ๊ธฐ
- ๋ฐ์ค ๋ชจ๋ธ์ ๋ง์ง์ด๋ ํจ๋ฉ์ ์ด์ฉํด ์ ์ ํ ํฌ๊ธฐ๋ฅผ ๋ง๋ญ๋๋ค.
- ํ์ํ๋ฉด width ์์ฑ / height ์์ฑ์ ์ฌ์ฉํด ํฌ๊ธฐ๋ฅผ ์ ํ ์ ์์ต๋๋ค.
- ์ฌ์ฉํ ์ ์๋ ๊ฐ์ ๊ธธ์ด ๊ฐ์ด๋ ๋ฐฑ๋ถ์จ(%)์ ์ด์ฉํฉ๋๋ค.
- ๋ฐ๋ก ๊ฐ์ ์ง์ ํ์ง ์์ผ๋ฉด auto ๊ฐ ๊ธฐ๋ณธ ๊ฐ์ ๋๋ค. (๋ด์ฉ์ ๋ฐ๋ผ ๋๋น๋ฅผ ์๋์ผ๋ก ๊ณ์ฐํฉ๋๋ค)
/* ๊ธฐ๋ณธํ */ width: ๊ฐ๋ก ๊ฐ; height: ์ธ๋ก ๊ฐ;
(3) ์์
<!doctype html> <html lang="ko"> <head> <meta charset="utf-8"> <title>๋ฐ์ค๋ชจ๋ธ</title> <style> .box1{ width: 200px; /* ๊ณ ์ ๋๋น */ height: 100px; /* ๋์ด */ background: gray; /* ๋ฐฐ๊ฒฝ์ */ } .box2{ width: 50%; /* ๊ฐ๋ณ ๋๋น - ๋ธ๋ผ์ฐ์ ์ฐฝ ๋๋น์ 50% */ height: 100px; /* ๋์ด */ background: black; /* ๋ฐฐ๊ฒฝ์ */ } div { margin: 10px; /* div ๊ฐ์ ์ฌ๋ฐฑ */ } </style> </head> <body> <div class="box1"></div> <div class="box2"></div> </body> </html>
(4) display ์์ฑ – ํ๋ฉด ๋ฐฐ์น ๋ฐฉ๋ฒ ๊ฒฐ์ ํ๊ธฐ
- ํด๋น ์์๊ฐ ํ๋ฉด์ ์ด๋ป๊ฒ ๋ณด์ฌ์ง ๊ฒ์ธ์ง ์ง์ ํฉ๋๋ค.
- block ์์ฑ ๊ฐ : ํด๋น ์์๋ฅผ ๋ธ๋ก ๋ ๋ฒจ๋ก ์ง์ ํฉ๋๋ค. <img> ํ๊ทธ ๊ฐ์ ์ธ๋ผ์ธ ๋ ๋ฒจ ์์๋ ๋ธ๋ก ๋ ๋ฒจ ์์๋ก ๋ฐ๊ฟ ์ ์์ต๋๋ค.
- inline ์์ฑ ๊ฐ : ๋ธ๋ก ๋ ๋ฒจ ์์๋ฅผ ์ธ๋ผ์ธ ๋ ๋ฒจ๋ก ๋ฐ๊ฟ ์ ์์ต๋๋ค.
- inline-block ์์ฑ ๊ฐ : ์์๋ฅผ ์ธ๋ผ์ธ ๋ ๋ฒจ๋ก ๋ฐฐ์นํ๋ฉด์ ๋ด์ฉ์๋ ๋ธ๋ก ๋ ๋ฒจ ์์ฑ์ ์ง์ ํฉ๋๋ค.
- none ์์ฑ ๊ฐ : ํด๋น ์์๋ฅผ ํ๋ฉด์ ์์ ํ์ํ์ง ์์ต๋๋ค.
/* ๊ธฐ๋ณธํ */ display: none | contents | block | inline | inline-block | table | table-cell
/* ์ */ ul li { display: inline; /* ํญ๋ชฉ์ ๊ฐ๋ก๋ก ๋ฐฐ์น */ float: left; /* ์ผ์ชฝ๋ถํฐ ๋ฐฐ์น */ }
(4) ์์ - ๋ธ๋ก ๋ ๋ฒจ
<!doctype html> <html lang="ko"> <head> <meta charset="utf-8"> <title>๋ธ๋ก ๋ ๋ฒจ ์์ </title> <style> div { margin: 20px; border: 1px solid #ccc; border-radius: 5px; } #inline img { width: 70px; margin: 10px; } #block img { width: 70px; display: block; margin: 10px; } </style> </head> <body> <div id="inline"> <img src="images/pic1.jpg"> <img src="images/pic2.jpg"> <img src="images/pic3.jpg"> </div> <div id="block"> <img class="displayed" src="images/pic1.jpg"> <img src="images/pic2.jpg"> <img src="images/pic3.jpg"> </div> </body> </html>
(4) ์์ - ์ธ๋ผ์ธ ๋ ๋ฒจ
<!doctype html> <html lang="ko"> <head> <meta charset="utf-8"> <title>์ด์ํ ์น์ฌ์ดํธ</title> <style> nav { width: 100%; height: 60px; background-color: green; } nav ul { list-style-type: none; } nav ul li { display: inline-block; margin: 20px; } nav ul li a { color: white; text-decoration: none; } </style> </head> <body> <nav> <ul> <li><a href="#">ํํ์ด์ง ์ ๋ณด</a></li> <li><a href="#">๊ฐ์ ํ๊ธฐ</a></li> <li><a href="#">์ด์ผ๊ธฐํ๊ธฐ</a></li> <li><a href="#">๊ณต์ง์ฌํญ</a></li> </ul> <h2>์ด์ํ ์น์ฌ์ดํธ</h2> </nav> </body> </html>
2. ํ ๋๋ฆฌ ๊ด๋ จ ์์ฑ๋ค
(1) border-style ์์ฑ – ํ ๋๋ฆฌ์ ์คํ์ผ ์ง์ ํ๊ธฐ
/* ๊ธฐ๋ณธํ */ border-style: ์์ฑ ๊ฐ;
/* ์ */ border-style: dotted;
(1) ์์
<!doctype html> <html lang="ko"> <head> <meta charset="utf-8"> <title>ํ ๋๋ฆฌ</title> <style> div { width: 200px; height: 100px; display: inline-block; margin: 15px; border-width: 5px; /* ํ ๋๋ฆฌ ๊ตต๊ธฐ */ } .box1 { border-style: solid; /* ์ค์ */ } .box2 { border-style: dotted; /* ์ ์ */ } .box3 { border-style: dashed; /* ์ ์ผ๋ก ๋ ์ ์ */ } </style> </head> <body> <div class="box1"></div> <div class="box2"></div> <div class="box3"></div> </body> </html>
(2) border-width ์์ฑ – ํ ๋๋ฆฌ ๋๊ป ์ง์ ํ๊ธฐ
/* ๊ธฐ๋ณธํ */ border-width: ํค์๋ | ํฌ๊ธฐ ๊ฐ;
/* ์ */ border-width: thin thin thin 5px;
(3) border-color ์์ฑ - ํ ๋๋ฆฌ ์์ ์ง์ ํ๊ธฐ
/* ๊ธฐ๋ณธํ */ border-color: ์์ฑ ๊ฐ;
(2) ~ (3) ์์
<!doctype html> <html lang="ko"> <head> <meta charset="utf-8"> <title>๋ฐ์ค๋ชจ๋ธ</title> <style> div { width: 200px; height: 100px; display: inline-block; margin: 15px; border-style: dashed; /* ํ ๋๋ฆฌ ์คํ์ผ - ์ ์ผ๋ก ๋ ์ ์ */ } .box1 { border-width: 5px; /* ํ ๋๋ฆฌ ๊ตต๊ธฐ - 5px */ border-color: red; /* ์์ - ๋นจ๊ฐ */ } .box2 { border-width: 1px; /* ํ ๋๋ฆฌ ๊ตต๊ธฐ - 1px */ border-color: blue; /* ์์ - ํ๋ */ } </style> </head> <body> <div class="box1"></div> <div class="box2"></div> </body> </html>
(4) border ์์ฑ – ํ ๋๋ฆฌ ์คํ์ผ ๋ฌถ์ด์ ์ง์ ํ๊ธฐ
- ๋ฐฉํฅ์ ๋ฐ๋ผ์ ๋๊ป์ ์์, ์คํ์ผ์ ํ๊บผ๋ฒ์ ๋ฌถ์ด์ ์ง์ ํฉ๋๋ค.
- (border-top, border-right, border-bottom, border-left, border)
- ๋๊ป์ ์์, ์คํ์ผ์ ์์๋ ์๊ด์์ต๋๋ค.
- ํน์ ๋ฐฉํฅ์๋ง ํ ๋๋ฆฌ๋ฅผ ํ์ํ๋ ค๊ณ ํ ๋ ํธ๋ฆฌํฉ๋๋ค.
(5) border-radius ์์ฑ - ๋ฐ์ค ๋ชจ์๋ฆฌ ๋ฅ๊ธ๊ฒ ๋ง๋ค๊ธฐ
/* ๊ธฐ๋ณธํ */ border-radius: ์์ฑ ๊ฐ;
/* ์ */ div { border-radius: 20px; /* ๋ชจ์๋ฆฌ ๋ถ๋ถ ๋ฐ์ง๋ฆ 20px */ border: 3px solid red; /* ํ ๋๋ฆฌ 3px ๋๊ป์ ๋นจ๊ฐ์ ์ค์ */ }
(5) ์์
<!doctype html> <html lang="ko"> <head> <meta charset="utf-8"> <title>๋ฅ๊ธ๊ฒ ๋ฅ๊ธ๊ฒ</title> <style> div { width: 300px; /* ๋๋น */ height: 200px; /* ๋์ด */ margin : 20px; /* ์์ญ๊ฐ ๋ง์ง */ display: inline-block; /* ๊ฐ๋ก๋ก ๋ฐฐ์น */ } .round { border: 2px solid crimson; /* 2px์ง๋ฆฌ ๋นจ๊ฐ ์ค์ */ border-radius: 25px; /* ๋ชจ์๋ฆฌ 25px ๋งํผ ๋ผ์ด๋ฉ */ } #bg { background: url(images/pic1.jpg) no-repeat; /* ๋ฐฐ๊ฒฝ ์ด๋ฏธ์ง */ background-size: cover; /* ์์ญ์ ๋ค ์ฑ์ฐ๊ฒ*/ } </style> </head> <body> <div class="round"></div> <div class="round" id="bg"></div> </body> </html>
(6) box-shadow ์์ฑ – ์ ํํ ์์์ ๊ทธ๋ฆผ์ ํจ๊ณผ ๋ด๊ธฐ
/* ๊ธฐ๋ณธํ */ box-shadow: ์ํ๊ฑฐ๋ฆฌ ๊ฐ | ์์ง๊ฑฐ๋ฆฌ ๊ฐ | blur ๊ฐ | ํ์ฅ๊ฑฐ๋ฆฌ ๊ฐ | ์์ ๊ฐ | inset;
/* ์ */ div { box-shadow: 2px 2px 5px 0 black; }
(6) ์์
<!doctype html> <html lang="ko"> <head> <meta charset="utf-8"> <title>๋ฐ์ค ๊ทธ๋ฆผ์</title> <style> div { width: 200px; height: 200px; display: inline-block; margin: 20px; border: 2px solid; border-radius: 50px; } .box1{ box-shadow: 2px 2px 2px 2px black; } .box2{ box-shadow: 5px -5px 15px 10px gray; } </style> </head> <body> <div class="box1"></div> <div class="box2"></div> </body> </html>
3. ์ฌ๋ฐฑ์ ์กฐ์ ํ๋ ์์ฑ๋ค
(1) margin ์์ฑ – ์์ ์ฃผ๋ณ ์ฌ๋ฐฑ ์ค์ ํ๊ธฐ
- ์์ ์ฃผ๋ณ ์ฌ๋ฐฑ์ ์ค์ ํฉ๋๋ค.
- margin-top, margin-right, margin-bottom, margin-left (์์์ ๋ฐ๊นฅ ์์ชฝ ๋ง์ง, ์ค๋ฅธ์ชฝ ๋ง์ง, ์๋์ชฝ ๋ง์ง, ์ผ์ชฝ ๋ง์ง )
- margin ๊ฐ์ด 4๊ฐ๋ผ๋ฉด ๊ทธ ์์๋ top -> right -> bottom -> left (์๊ณ๋ฐฉํฅ) ์ ๋๋ค.
/* ์ */ p { margin: 30px 50px 30px 50px; /* ์์๋ ๋ง์ง-30px, ์ข์ฐ๋ง์ง-50px */ }
(1) ์์
<!doctype html> <html lang="ko"> <head> <meta charset="utf-8"> <title>๋ง์ง</title> <style> div { width: 200px; /* ๋๋น */ height: 100px; /* ๋์ด */ background: #9fd1f5; /* ๋ฐฐ๊ฒฝ์ */ } /* ๋ง์ง - (์๊ณ๋ฐฉํฅ) ์ ์ค๋ฅธ์ชฝ ์๋ ์ผ์ชฝ */ .box1 { margin: 10px 50px 10px 50px; /* ๋ง์ง - 10px 50px 10px 50px */ } .box2 { margin: 30px 50px; /* ๋ง์ง - 30px 50px 30px 50px */ } .box3 { margin: 50px; /* ๋ง์ง - 50px 50px 50px 50px */ } .box4 { margin: 30px 5px 10px 0px; /* ๋ง์ง - 30px 5px 10px 0px */ } </style> </head> <body> <div class="box1"></div> <div class="box2"></div> <div class="box3"></div> <div class="box4"></div> </body> </html>
(2) padding ์์ฑ - ์ฝํ ์ธ ์์ญ๊ณผ ํ ๋๋ฆฌ ์ฌ์ด ์ฌ๋ฐฑ ์ค์ ํ๊ธฐ
- ์ฝํ ์ธ ์์ญ๊ณผ ํ ๋๋ฆฌ ์ฌ์ด ์ฌ๋ฐฑ
- padding-top, padding-right, padding-bottom, padding-left (๋ฐ์ค์ ์์ชฝ ํจ๋ฉ๊ณผ ์ค๋ฅธ์ชฝ ํจ๋ฉ, ์๋์ชฝ ํจ๋ฉ, ์ผ์ชฝ ํจ๋ฉ)
- padding (๋ค ๋ฐฉํฅ์ ํจ๋ฉ์ ํ๊บผ๋ฒ์ ์ค์ ํฉ๋๋ค)
(2) ์์
<!doctype html> <html lang="ko"> <head> <meta charset="utf-8"> <title>๋ฐ์ค๋ชจ๋ธ</title> <style> div { width: 200px; /* ๋๋น */ height: auto; /* ๋์ด */ background: #0094ff; /* ๋ฐฐ๊ฒฝ์ */ display: inline-block; /* ๊ฐ๋ก๋ก ๋ฐฐ์น */ margin: 15px; /* ๋ง์ง - 15px 15px 15px 15px */ color: white; /* ๊ธ์์ */ } .box1 { padding: 10px 30px 10px 30px; } /* ํจ๋ฉ - 10px 30px 10px 30px */ .box2 { padding: 10px 30px; } /* ํจ๋ฉ - 10px 30px 10px 30px */ .box3 { padding: 10px; } /* ํจ๋ฉ - 10px 10px 10px 10px */ </style> </head> <body> <div class="box1">ํจ๋ฉ(padding)์ด๋ ์ฝํ ์ธ ์์ญ๊ณผ ํ ๋๋ฆฌ ์ฌ์ด์ ์ฌ๋ฐฑ์ ๋งํฉ๋๋ค.</div> <div class="box2">ํจ๋ฉ(padding)์ด๋ ์ฝํ ์ธ ์์ญ๊ณผ ํ ๋๋ฆฌ ์ฌ์ด์ ์ฌ๋ฐฑ์ ๋งํฉ๋๋ค.</div> <div class="box3">ํจ๋ฉ(padding)์ด๋ ์ฝํ ์ธ ์์ญ๊ณผ ํ ๋๋ฆฌ ์ฌ์ด์ ์ฌ๋ฐฑ์ ๋งํฉ๋๋ค.</div> </body> </html>
๋ง๋ฌด๋ฆฌํ๋ฉฐ
๋ ์ด์์์ ์ํ ์คํ์ผ์ ์์ ์ ํจ๊ป ๊ณต๋ถํด ๋ณด์์ต๋๋ค.
๋ ์ด์์์ ์ค์ํฉ๋๋ค. ์ฌ์ฉ์์๊ฒ ์ ๋ณด์ ์๋น์ค๋ฅผ ์ ๊ณตํ ๋ ๋ณด์ฌ์ง๋ ๊ตฌ์กฐ๋ฅผ ๊ตฌ์ฑํ๊ธฐ ๋๋ฌธ์ ๋๋ค.
๋๊ธ๊ณผ ๊ณต๊ฐ์ ํญ์ ํ์์ ๋๋ค!
'๐ FrontEnd > HTML & CSS' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[CSS] ์์/๋ฐฐ๊ฒฝ ๊ด๋ จ ์คํ์ผ๊ณผ ์์ (0) 2022.05.20 [CSS] ํ ์คํธ ๊ด๋ จ ์คํ์ผ๊ณผ ์์ - 2 (0) 2022.05.20 [CSS] ํ ์คํธ ๊ด๋ จ ์คํ์ผ๊ณผ ์์ - 1 (0) 2022.05.17 [CSS] CSS ๊ธฐ์ด (0) 2022.05.17 [HTML & CSS] ์ฃผ์ ๋ค๋ ๋ฒ (0) 2022.05.16