HTML, CSS ๊ธฐ์ด
by JiwonDevHTML
๋ฌธ์์ ๋ด์ฉ๊ณผ ํด๋น ๋ฌธ์์ ์ ๋ณด, ๊ตฌ์กฐ๋ฅผ ์ ์ฅํ๋ ํ์ผ์
๋๋ค.
1. ํ๊ทธ
HTML (Hypertext Markup Language)๋ ์ด๋ฆ๋ต๊ฒ ํ๊ทธ๋ฅผ ์ด์ฉํด์ ๋ฌธ์์ ์ ๋ณด๋ฅผ ๋ํ๋ ๋๋ค.
<ํ๊ทธ ์์ฑ1="~" ์์ฑ2=" "> ๋ฌธ์๋ด์ฉ </ํ๊ทธ>
2. ๊ธฐ๋ณธ๊ตฌ์กฐ
<html> ~ </html> ํ๊ทธ๋ ์ต์๋จ(= ๋ฃจํธ) ํ๊ทธ๋ฅผ ์๋ฏธํฉ๋๋ค.
๋ฌธ์์ ๋ชจ๋ ๋ด์ฉ์ด html ํ๊ทธ ์์ ๋ค์ด๊ฐ ์์ผ๋ฉฐ ๋ฌธ์์ ๊ธฐ๋ณธ ์ธ์ด ์์ฑ ๊ฐ์ html ํ๊ทธ ์์ ์ ์ต๋๋ค.
<!DOCTYPE html>
<html lang="en-US">
<head>...</head>
<body>...</body>
</html>
3. ๋ฉํ๋ฐ์ดํฐ
์ฐธ๊ณ ๋ก meta-data๋ ํด๋น ๋ฌธ์๋ฅผ ์ค๋ช ํ๋ ์ ๋ณด๋ฅผ ์๋ฏธํฉ๋๋ค.
<head> ์ด ํ๊ทธ ์์ ํ์ํ ๋ฉํ๋ฐ์ดํฐ๋ฅผ ์ ์ต๋๋ค.
<link> ๋ค๋ฅธ ํ์ผ๋ค (์์ด์ฝ, ์คํ์ผ.css๋ฑ)์ ๋งํฌ๋ก ์ฐ๊ฒฐ ํ ๋ ์ฌ์ฉํฉ๋๋ค.
* ์๋ฐ์คํฌ๋ฆฝํธ๋ฅผ ์ฐ๋ํ๋ <script> ํ๊ทธ๋ <head> ์์ ์ ์ง์๊ณ ๋ณดํต body ๋ง์ง๋ง์ ์ ์ต๋๋ค.
* [๋๋ณด๊ธฐ] ์ <script>๋ body ๋ง์ง๋ง์ ์ ๋์?
๋ธ๋ผ์ฐ์ ์ ๋์ ๊ณผ์ ์ ์ดํดํ๋ฉด ์ฝ๊ฒ ์ ์ ์์ต๋๋ค.
- HTML์ ์ฝ๊ธฐ ์์ํ๋ค.
- HTML์ ํ์ฑํ๋ค (parsing: ์ปดํจํฐ๊ฐ ์ฝ์ ์ ์๋ ์ฝ๋๋ก ๋ฐ๊พธ๋ ์์ )
- DOM ํธ๋ฆฌ (๋ฌธ์๋ฅผ ๊ฐ์ฒดํ ์ํจ ๋ชจ๋ธ) ์์ฑ.
- Render ํธ๋ฆฌ (๊ณ์ฐ์ ์๋ฃํ์ฌ ์ค์ ๋ก ํ๋ฉด์ ํ์ํ ์ ๋ณด)๊ฐ ์์ฑ (DOM tree + CSS์ CSSOM ํธ๋ฆฌ ๊ฒฐํฉ)
- Display(๋ธ๋ผ์ฐ์ )์ ํ์๋๋ค.
์ฌ๊ธฐ์์ HTML์ ์ฝ๋ค๊ฐ, script๋ฅผ ๋ง๋๊ฒ ๋๋ฉด ์ง๊ธ ์ฝ๋๊ฑธ ๋ฉ์ถ๊ณ ์๋ฐ์คํฌ๋ฆฝํธ๋ถํฐ ์คํํ๊ฒ ๋ฉ๋๋ค.
์ด ๊ณผ์ ์์ HTML ํ์ฑ์ด ๋๋๊ณ DOM ํธ๋ฆฌ๊ฐ ์๊ธฐ๊ธฐ ์ ์ ์๋ฐ์คํฌ๋ฆฝํธ๊ฐ ์คํ๋์ด ์ค๋ฅ๊ฐ ๋ฐ์ ํ ์ ์๊ณ
์ค๋ฅ๊ฐ ๋์ง ์๋๋ผ๋ ์ค๊ฐ์ ์ ์ผ๋ฉด ๊ทธ๋งํผ ๋ธ๋ผ์ฐ์ ์ ํ์๋๋ ์๋๊ฐ ๋๋ ค์ง๋ฏ๋ก Body ๋ง์ง๋ง์ ์ ์ต๋๋ค.
<style> HTML ์ฝ๋ ์์ ์คํ์ผ(CSS)์ ์ง์ ํ๊ณ ์ถ์ ๋ ์ฌ์ฉํฉ๋๋ค.
<title> ํด๋น ๋ฌธ์์ ์ ๋ชฉ.
<meta> ๊ฐ์ง๊ณ ์๋ HTML ํ๊ทธ๋ก ํํ ํ ์ ์๋ ๋ฉํ ๋ฐ์ดํฐ ์ ๋ณด๋ค์ ์ด ํ๊ทธ๋ฅผ ์ด์ฉํ์ฌ ์ ์ต๋๋ค.
์๋ฅผ ๋ค์ด ๊ฒ์์์ง์ ์ํ ํด๋น๋ฌธ์ ์ค๋ช ์ ๋ฉํ๋ฐ์ดํฐ๋ก ์ ๊ณ ์ถ๋ค๋ฉด,
<meta name = "description" content = "์ฌ์ดํธ ์ค๋ช "> ์ด๋ ๊ฒ ์์ฑํ๋ฉด ์๋์ ๊ฐ์ด ์์ฑํฉ๋๋ค.
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="author" content="Chris Mills">
<meta name="viewport" content="width=device-width">
<link rel="stylesheet" href="my-css-file.css">
<title>My test page</title>
</head>
<body>
...
<script src="my-js-file.js"></script>
<!-- ์คํฌ๋ฆฝํธ ํ๊ทธ๋ head๊ฐ ์๋ body ๋ง์ง๋ง์ ์ ์ต๋๋ค. -->
</body>
</html>
4. body ์์ฑ
์ด๋ ์๋ CSS ์ค๋ช
์ดํ์ ์ค์ตํ๋ฉด์ ์์๋ด
์๋ค.
CSS
Style-Sheet๋ก ๋ฌธ์์ ๊ทธ ๋ฌธ์๋ฅผ ๊พธ๋ฉฐ์ฃผ๋ ์คํ์ผ์ ๋ถ๋ฆฌํ๊ธฐ ์ํด์ ๋ง๋ค์์ต๋๋ค.
HTML์ ํ๊ทธ์ ์คํ์ผ์ ์ ์ฉํ ๋ ์ฐ์ ์์๋๋ก ๋จ๊ณ์ ์ผ๋ก(cascading)์ ์ฉ๋๋ค๋ ์๋ฏธ์์ CSS๋ผ๊ณ ๋ถ๋ฆ
๋๋ค.
1. ๊ธฐ๋ณธ๊ตฌ์กฐ
๊ฐ๋จํฉ๋๋ค. ์ํ๋ HTML ์ ํ์(ํ๊ทธ, class, id)๋ฅผ ์ ์ ํ ์ค๊ดํธ๋ก ๊ฐ์ธ ์ํ๋ ๊ฐ์ ํธ์งํด์ฃผ๋ฉด ๋ฉ๋๋ค.
ํ๋์ ํ๊ทธ์ ์ฌ๋ฌ ๊ฐ์ ๊ฐ์ ์ ๋ ฅํ ๊ฒฝ์ฐ ๋ค์ ๋ถ์ ์ธ๋ฏธ์ฝ๋ก ( ; )์ผ๋ก ๊ตฌ๋ถํฉ๋๋ค.
* css์ ์์(red, white)๋ ๊ฐ(960px)์ ๋ฌธ์์ด์ด ์๋ ํ๋์ ์์ฑ์ด๋ฏ๋ก ๋ฐ์ดํ("")๊ฐ ํ์ ์์ต๋๋ค.
2. HTML ์ ํ์(Class, ID)
HTML์ ์กด์ฌํ๋ ๊ฐ๊ฐ์ ํ๊ทธ๋ฅผ class ๋๋ id๋ก ๋ฌถ์ ์ ์์ต๋๋ค.
์ผ๋ฐ์ ์ผ๋ก id๋ ๋ง ๊ทธ๋๋ก ๊ณ ์ ํ ์๋ณ๊ฐ์, class๋ ๋น์ทํ ๊ฐ์ฒด๋ฅผ ๋ฌถ์ด์ ๊ด๋ฆฌํ ๋ ์ฌ์ฉํฉ๋๋ค.
์ด ์์ฑ ๊ฐ์ ์ด์ฉํด์ ์ฝ๊ฒ CSS๋ฅผ ์ ์ฉํ ์ ์์ต๋๋ค.
/* html์ ์ ํ์ ๋ฃ๊ธฐ */
<section id="roll-section">
<section class="myClass1 myClass2">
/* css ์ฌ์ฉ์ */
section {} /*Element*/
#roll-section {} /*ID*/
.myClass1 {} /*Class*/
* [๋๋ณด๊ธฐ] ID์ Class์ ์ฐจ์ด์ ?
ID
๊ณ ์ ํ ์์ฑ์ผ๋ก ํ HTML ๋ฌธ์์ ํ๋๋ง ์ฌ์ฉ ๊ฐ๋ฅํฉ๋๋ค.
๊ณ ์ ํ ID ๊ฐ์ด ์์ผ๋ฉด ํ๋ํ๋์ ํน๋ณํ ์ ์ด๋ฅผ ํ ์ ์์ผ๋ฉฐ ๊ฒ์์๋ ์ฉ์ดํฉ๋๋ค.
โ
Class
ํ๋์ HTML ๋ฌธ์ ์์ ์ค๋ณตํด์ ์ฌ์ฉ ๊ฐ๋ฅํฉ๋๋ค.
ํ๋์ ํ๊ทธ์ ์ฌ๋ฌ ๊ฐ์ ๋ค๋ฅธ class ์ด๋ฆ์ ๊ณต๋ฐฑ์ ๊ธฐ์ค์ผ๋ก ๋์ดํ ์๊ฐ ์์ต๋๋ค.
ํํ์ด์ง ์ ์ฒด์ ์ธ ์คํ์ผ์ ์ผ๊ด์ฑ ์๊ฒ ์ง์ ํ๊ธฐ ์ํด์๋ class์ ์ฌ์ฉ์ด ํ์์ ์ ๋๋ค.
3. CSS์ ์คํ์ผ ์ค๋ณต์ ์ฉ๊ณผ ์ฐ์ ์์
๊ธฐ๋ณธ์ ์ผ๋ก ์ค๋ณต ์ ์ฉ๋์ด ์๋ค๋ฉด ๋์ค์ ์ ์ธํ ๋ด์ฉ์ผ๋ก ๋ฎ์ด์์์ง๋๋ค.
์ฌ๋ฌ ์คํ์ผ์ ์ค๋ณต์ผ๋ก ์ ์ฉํ๋ค๋ฉด ์ฐ์ ์์๋๋ก ๋จ๊ณ์ ์ผ๋ก(cascading) ์ ์ฉ๋ฉ๋๋ค.
* ์คํ์ผ๊ฐ์ด ์ฌ๋ฌ๊ฐ๋ผ๋ฉด ๋ด๋ถ์ ์ผ๋ก ๊ฐ๊ฐ์ ์์์ ์ ์๋ฅผ ๋งค๊ฒจ (ex ID 100์ , class 10์ ๋ฑ) ์ฐ์ ์์๋ฅผ ๊ฒฐ์ ํฉ๋๋ค.
3-1 ๊ฐ์ ์์ฑ์ ์ค๋ณตํด์ ์ฌ์ฉํ๋ฉด ๋ง์ง๋ง์ ์ฝํ ๋ด์ฉ์ผ๋ก ๋ฎ์ด์๋๋ค.
/* ๋์ค์ ์ ์ Blue ์์์ด ์ ์ฉ๋ฉ๋๋ค. */
span {
color : red;
}
...
span {
color : blue;
}
3-2 ๋ฒ์๋ฅผ ๋๊ฒ ์ ์ ๊ฒ๊ณผ, ๊ตฌ์ฒด์ ์ผ๋ก ์ ์ ๋ด์ฉ์ด ์๋ค๋ฉด ๋ ๊ตฌ์ฒด์ ์ธ ๋ด์ฉ์ ์ ์ฉํฉ๋๋ค.
/* body > span์ Red๊ฐ ์ ์ฉ๋ฉ๋๋ค. ๋ฎ์ด ์์์ง์ง ์์ต๋๋ค. */
/* ๊ทธ ์ธ ๋ชจ๋ span ํ๊ทธ๋ blue๋ก ์ ์ฉ๋ฉ๋๋ค. */
body > span {
color : red
}
span {
color : blue
}
3-3 ID์ Class๋ฅผ ๋์์ ์ ์ฉํ๋ค๋ฉด ID ๊ฐ ๋ถํฐ ์ ์ฉ๋ฉ๋๋ค ( ID > CLASS > ๊ทธ ์ธ ํ๊ทธ๋ค)
์ฐธ๊ณ ๋ก ์คํ์ผ์ ์ ์ ๋ ID๋ [#์ด๋ฆ] , Class๋ [.์ด๋ฆ] ์ผ๋ก ํ์ํฉ๋๋ค.
/* html */
<div id="a", class="b">
/* css */
#a {
color : 1์์ ์ ์ฉ(id);
}
.b {
color : 2์์ ์ ์ฉ(class);
}
div {
color : 3์์ ์ ์ฉ(ํ๊ทธ);
}
4. ๋ง๋ค์ด๋ CSS๋ฅผ HTML์ ์ ์ฉํ๋ ๋ฐฉ๋ฒ
4-1 Inline (html ํ๊ทธ ๋ง๋ค ์ง์ ์์ฑ)
๊ธฐ์กด์ CSS ํ์ผ์ด ์์ ๋ ์ฌ์ฉํ๋ ๋ฐฉ์๊ณผ ๋์ผํฉ๋๋ค.
HTML ์ฝ๋ ์์ฒด์ ์คํ์ผ์ ์ ์ฉํ์ฌ ์ค๋ณต๋๋๋ผ๋ ๋ค๋ฅธ ์คํ์ผ ๋ณด๋ค ์ฐ์ ์ ์ฉ๋ฉ๋๋ค.
์ฌ์ฉ์ ๊ถ์ฅํ์ง ์์ต๋๋ค.
<!DOCTYPE html>
<html>
<head>
...
</head>
<body style="background-color:black;">
<h1 style="color:white;padding:30px;">Hostinger Tutorials</h1>
<p style="color:white;">Something usefull here.</p>
</body>
</html>
4-2 Internal (html ํ์ผ ๋ด๋ถ์ CSS ์์ฑ)
๋ฑํ ์ฌ์ฌ์ฉํ ํ์๊ฐ ์๋ ๊ฒฝ์ฐ, ํน์ ํด๋น ํ์ด์ง๋ง ์ฌ์ฉํ๋ ์คํ์ผ์ธ ๊ฒฝ์ฐ HTML ๋ด๋ถ์ ์์ฑํฉ๋๋ค.
HTML์ ํฌํจ๋์ด ์๊ธฐ ๋๋ฌธ์ ๋ฐ๋ก CSS ํ์ผ์ ๋ถ๋ฌ์ฌ ํ์๊ฐ ์์ต๋๋ค.
์ฐธ๊ณ ๋ก External ๊ณผ Internal์ด ์ค๋ณต๋ ๊ฒฝ์ฐ, ๋ ์ค ๋์ค์ ์์ฑํ ๋ด์ฉ์ผ๋ก ๋ฎ์ด์์๋๋ค.
<!DOCTYPE html>
<html>
<head>
<!-- internal, ์ฆ ๋ด๋ถ์ ์์ฑํ ๋๋ head์์ ์ ์ต๋๋ค.-->
<style type="text/css">
body {background-color: powderblue;}
h1 {color: blue;}
p {color: red;}
</style>
</head>
<body>
<h1>This is a heading</h1>
<p>This is a paragraph.</p>
</body>
</html>
4-3 External (์ธ๋ถ ํ์ผ์ CSS๋ฅผ ๋ฐ๋ก ์์ฑ)
๋๋ถ๋ถ์ ๊ฒฝ์ฐ ์ด ๋ฐฉ์์ ์ฌ์ฉํฉ๋๋ค.
HTML๊ณผ CSS๋ฅผ ํ์ผ๋ก ๋ถ๋ฆฌํจ์ผ๋ก์, ๋ด์ฉ๊ณผ ๋์์ธ์ ๊ฐ์ ํธ์งํ๊ณ ์ฌ์ฌ์ฉ ํ ์ ์๋๋ก ๋ง๋ญ๋๋ค.
HTML ํ์ผ์๋ CSS ์คํ์ผ ์ํธ์ ๋งํฌ๋ฅผ ํ์ํฉ๋๋ค.
<!-- [ HTML ] -->
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" type="text/css" href="style.css" />
<!-- styles.css ํ์ผ์ ๋ด์ฉ์ ๋ถ๋ฌ์ด. -->
</head>
<body>
<h1>This is a heading</h1>
<p>This is a paragraph.</p>
</body>
</html>
/* [ styles.css ] */
body {
background-color: powderblue;
}
h1 {
color: blue;
}
p {
color: red;
}
5. CSS์ ์์ ๊ท์น
์์ ํ๊ทธ์ ์คํ์ผ์ ์ง์ ํ ๊ฒฝ์ฐ, ํ์ ํ๊ทธ์๋ ์๋์ผ๋ก ์ ์ฉ๋ฉ๋๋ค. ์ด๋ ํด๋์ค์ id๋ ๋์ผํ ๊ท์น์ ๋ฐ๋ฆ ๋๋ค. ๋ค๋ง ๋ฐฐ์น๋ ์ฌ๋ฐฑ (border, padding) ๊ฐ์ ๊ฒฝ์ฐ๋ ์์๋์ง ์์ต๋๋ค. ์ด๋ ์ฌ์ฉํด๋ณด๋ฉด ์ฝ๊ฒ ๊ตฌ๋ถ ๊ฐ๋ฅํฉ๋๋ค.
์๋์ html ์์ ์ฝ๋๋ฅผ ์ด์ฉํ์ฌ Js Bin ์ฌ์ดํธ์์ ์ง์ CSS๋ฅผ ์ ์ฉํด๋ด ์๋ค
...
<body>
<header>
<h1>Company Name</h1>
</header>
<div>
<h3>ํ์ ์ ๋ชฉ์
๋๋ค 1</h3>
<div>๋ด์ฉ๋ด์ฉ๋ด์ฉ๋ด์ฉ๋ด์ฉ</div>
<h3>ํ์ ์ ๋ชฉ์
๋๋ค 2</h3>
<div>์ฉ๋ด์ฉ๋ด์ฉ๋ด์ฉ๋ด์ฉ๋ด</div>
</div>
</body>
...
'๐ผFront > HTML&CSS' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
HTML ์ด๋ฒคํธ ์ฐ๊ฒฐ(onclick, addEventListener ์ฐจ์ด) (0) | 2021.03.31 |
---|---|
HTML # 1 ์์ฃผ ์ฐ๋ ํ๊ทธ (0) | 2021.03.28 |
๋ธ๋ก๊ทธ์ ์ ๋ณด
JiwonDev
JiwonDev