๊ต์ก์ ์์ด์๋ ์ฌ๋ฏธ๊ฐ ์ค์ํ๋ค.
ํ์ต์ ์ฌ๋ฏธ๋ฅผ ๋๊ปด๋ผ
ํ๊ต์์ ๋ฐฐ์ฐ๋ ์ฌ๋ฏธ์๋ค๊ณ ์๊ฐํ๋ ๋ง์ ์ง์๋ค์ด,
๋๊ตฐ๊ฐ์๊ฒ ์ฌ๋ฏธ์์๊ธฐ ๋๋ฌธ์ ์ง์์ด ๋ฐ์ ์ด ์์๋ ๊ฒ์ผ ์ ์๋ค.
๊ทธ๋ฌ๊ธฐ ๋๋ฌธ์ ๊ทธ๋ฌํ ์ง์๋ค์ด ํ์ฅ๋์ง ์์์๊น.
HTML์ emmet ๋๊ตฌ: VS CODE๋ฅผ ๋น๋กฏํ ์ฝ๋ ์๋ํฐ ๋ฐ IDE์์ ์ง์ํ๋ ํซ ํค์ด๋ค.
Emmet ๊ธฐ๋ฅ
Emmet
html>head+body + tabํค ๊ฒฐ๊ณผ
<html> <head> </head> <body> </body> </html>
์ด ์ฒ๋ผ ํค์๋๋ก ์๋ ๋ณํ๋๋ค.
Control Pallete ํ์ฉํ๊ธฐ
- word wrap์ ์ฌ์ฉํ๋ฉด ๊ธด ๊ธ์ ์ค๋ฐ๊ฟ์ ํ ์ ์๋ค.
- Emmet: go to next edit point๋ฅผ ์ ๋ ฅ
(๋ค์ edit ์์๋ก ์ปค์๋ฅผ ์ด๋ํ๋ค. ๋จ์ถํค๋ก ์ง์ ๋ ํ ์ ์์)
๋ง๊ฐ์ ๊นํ๋ธ ์ฐ๋ ๋ฐฉ๋ฒ
๊นํ๋ธ์ ์ ์ฅ์์ ์ฃผ์๋ฅผ ๋ณต์ฌ ํ, ๋ฒ์ ๊ด๋ฆฌ ๋ฉ๋ด๋ฅผ ํด๋ฆญ initalize repository -> ํ์ฌ ํด๋๋ฅผ ๊น์ ์ ์ฅ์์ ์ฐ๊ฒฐํ๋ค
control palette ์์ remote repository๋ฅผ ์ค์ ํ๋ฉด ํ์ฌ ํด๋์ ๊น ์๊ฒฉ ์ ์ฅ์๊ฐ ์ฐ๋์ด ๋๋ค.
๋ฒ์ ๊ด๋ฆฌ๊ฐ ๋์ด ์์ง ์๋ค๋ฉด, ์ ์์กฐ์ฌ๋ฅผ ํด์ผํ์ง๋ง, ๋ฒ์ ๊ด๋ฆฌ๋ฅผ ํ๋ค๋ฉด ๋ฒ์ ํ์คํ ๋ฆฌ๋ฅผ ์ฒดํฌํ์ฌ ๋น ๋ฅด๊ฒ ์ฐพ์ ์ ์๋ค.
git graph๋ผ๋ extenstion์ ํตํด git checkout '์ปค๋ฐํ ๋ฉ์์ง' => ๊ทธ ๋น์ ๋ฒ์ ์ผ๋ก ํ๊ท ๊ฐ๋ฅ
1990๋ 12์ 24์ผ ๋น์, ๋จ ํ๋์ ๊ธฐ์ ์ HTML ๋ง ์กด์ฌ ํ์ผ๋
4๋
ํ, HTML์ ๋์์ธ์ ๊พธ๋ฉฐ์ฃผ๋ CSS ๋ฑ์ฅ
๊ทธ๋ก ๋ถํฐ 5๋
ํ, HTML์ด ์ฌ์ฉ์์ ์ํธ์์ฉํ ์ ์๊ฒํ๋ JavaScript ๋ฑ์ฅ.
๊ณ ๋ก HTML์ ํ๋ช
์ ์ธ ๊ธฐ๋ฅ์ด๋ค. ๊ทธ ์์ฒด๋ก๋ ์ด๋ค ๋ถ๋ถ์ด ๋ถ์กฑํ๊ธฐ ๋๋ฌธ์ CSS์ JS (ํ์ ์ ์ธ ๊ธฐ๋ฅ)๊ฐ ๋ฑ์ฅํ ๊ฒ์ด๋ค.
์ด์ฌ์์ ๊ฒฝ์ฐ, ํ์ต์ ์ค์๋๋ ํ๋ช
์ >ํ์ ์ ์ธ ๋ถ๋ถ์ด๋ค.
HTML์ ๋์์ธ์ ๋ํ ๊ณ ๋ฏผ -> ๋๋ฌด HTML์ ๊ธฐ๋ฅ์ด ์ก๋คํ๋ค
HTML2์์ ์๋ ์๋ ๋์์ธ์ ๋ํ ํ๊ทธ๋ค์ ํด์ถ์์ผ๋ฒ๋ฆผ
์ด๋ฌํ ์ด์ ๋ก ๋ฑ์ฅํ ๊ฒ์ด CSS์ด๋ค.
์น์ฌ์ดํธ์ ๋์์ธ์ CSS๊ฐ ๋ฐ๋ก ๋ผ์ด ๋ด๋นํ๊ธฐ ๋๋ฌธ์,
HTML์ ๊ตฌ์กฐ ์ค๊ณ ์ญํ ์ ์ ๋
ํ ์ ์๊ฒ ๋์๋ค.
์ ํ์: ํ๊ทธ์ ์ด๋ฆ์ด๋ ID(#), Class(.) ๋ฑ์ผ๋ก ๋ฌธ์ ์์๋ฅผ ํน์ ํ ์ ์๋ค.
์์ฑ: ํ๊ทธ๋ ์์์ ์ ์ฉํ ๋์์ธ ์์ฑ์ ์ ์ํ๋ค.
์ฃผ์์ : ํ๋์ ์์ฑ์ ์์ฑ์๋ฃํ๋ค๋ฉด ์ธ๋ฏธ์ฝ๋ก ์ผ๋ก ๋ฐ๋์ ๋ง์ณ์ผ ํฉ๋๋ค.
<style>
/* ์ ํ์(Selector)*/
li {
/*์์ฑ(descriptiom, effect)*/
color: powderblue;
text-decoration: underline;
}
</style>
์ ํ์๋ฅผ ์ ํํ๋ ๋ฐฉ๋ฒ์๋ ํ๊ทธ ์ ์ฒด๋ฅผ ์ค์ ํ ์ ๋ ์์ง๋ง, ํน์ ํ ํ๊ทธ๋ฅผ ์ ํํ๊ธฐ ์ํด์๋ class์ id๋ก ์ ํ์๋ฅผ ์ง์ ํ ์ ์๋ค:
class: ๋ณต์์ ํ๊ทธ๋ฅผ ๊ทธ๋ฃน์ผ๋ก ์ค์ ํ๋ค.
id: ๋จ์ผํ ํ๋์ ํ๊ทธ๋ฅผ ์ค์ ํ๋ค.
Block ์์: ํ ์ค์ ๊ณต๊ฐ์ ์ ๋ถ ์ฐจ์งํ๋ฉฐ, ์ค๋ฐ๊ฟ ํ์์ด ์ผ์ด๋๋ค. ( <h1~6> ํน์ div ๋ฑ)
Inline ์์: ์ปจํ
์ธ ๋งํผ์ ๊ณต๊ฐ์ ์ฐจ์งํ๋ฉฐ, ์ค๋ฐ๊ฟ ํ์์ด ์ผ์ด๋์ง ์๋๋ค.
๋ช ์์ ์ผ๋ก ๋ฐ๊พธ์ด ์ค ์๋ ์๋ค.
/*๋ช
์์ ์ผ๋ก ๋ธ๋ก ์์๋ก ์ ํ*/
a {
display: block;
}
/*๋ช
์์ ์ผ๋ก ์ธ๋ผ์ธ ์์๋ก ์ ํ */
h2 {
display: inline;
}
๊ทธ๋ฌ๋ ๊ฐ ํ๊ทธ์ ๋ธ๋ก ๋ฐ ์ธ๋ผ์ธ ์์ฑ์ ๋ํดํธ๋ก ์ค์ ๋ ์ด์ ๊ฐ ๋ค ์๋ค.
์์์ ๋ ์ด์์์ ๋ฐ๊พธ๋ CSS ์์ฑ์๋ ๋ค์์ด ์๋ค.
์๋ ๊ทธ๋ฆผ์ HTML์ ๋ฐ์ค ๋ชจ๋ธ์ด๋ค.
๊ทธ๋ฆผ์ ํ๋์ ๋ถ๋ถ: content
๊ทธ๋ฆผ์ ์ด๋ก์ ๋ถ๋ถ: padding
๊ทธ๋ฆผ์ ๋
ธ๋์ ๋ถ๋ถ: border
๊ทธ๋ฆผ์ ์ฃผํฉ์ ๋ถ๋ถ: margin
๋ฐฐ์ด ๊ธฐ์ ์ ์ค์ํ์์ ์ฐพ์ ํ์ฉํ๊ณ , ์ํ์ ๊ฐ์ ํ๋ ๋ฐฉ๋ฒ์ด ํ์ต์ ์ข๋ค.
css ์์ฑ์ ํ์กดํ๋ ์นํ์ด์ง์์ ์คํํ ์ ์๋ ๋ฐฉ๋ฒ:
google chrome์ stylebot ์ต์คํ
์
์ค์น
๋ธ๋ก ๋ฐ ์ธ๋ผ์ธ ์์๋ฅผ ์ ๋ค๋ฃจ์ด ๋ ์ด์์์ ๊ตฌํํ๊ธฐ
์ํด์๋ ๊ทธ๋ฆฌ๋(grid)์ ๊ฐ๋
์ ์ ์ดํดํ๋ ๊ฒ์ด ์ค์ํ๋ค.
์น์ฌ์ดํธ์ ๋ ์ด์์์ ๋ฐ์ํ์ผ๋ก ์ ์ํ๊ธฐ ์ข์ GRID๋ผ๋ CSS ์์ฑ์ด ์๋ค.
<style>
div {border:10px solid red;}
#container {
display: grid;
grid-template-columns: 1fr 1fr 1fr;
}
</style>
<body>
<div>TOP</div>
<!-- dsiplay grid๋ก ๋ฐ๊พธ์ด์ผ ํ๋ค.-->
<!-- id๋ ์ฝ์์ด๊ธฐ ๋๋ฌธ์ ์๋ฌด ๊ฑฐ๋ ์ฐ๋ฉด ์๋จ -->
<div id="container">
<div>LEFT</div>
<div>CENTER</div>
<div>RIGHT</div>
</div>
<div>BOTTOM</div>
</body>
๊ทธ๋ฆฌ๋ ์์ฑ์ ์ ์ฉํ๋ฉด, ๋ถ๋ชจ ํ๊ทธ ์์ ๊ฐ๊ฐ์ ์์์ ์์ญ์ด ๋น์จ๋งํผ ์กฐ์ ๋๊ธฐ ๋๋ฌธ์ ๋ฐ์ํ ๋ ์ด์์์ ์ฝ๊ฒ ๋ง๋ค ์ ์๋ค.
์ด์ ์ float ์์ฑ์ ํตํด ์๋์ ์ผ๋ก ์กฐ์ ํ๋ ๋ ์ด์์์ ๋ณด๋ค ์ฝ๊ฒ ๊ตฌํํ ์ ์๊ฒ ๋์๋ค.
์ด๋ค ๊ธฐ๋ฅ์ด ์ธ ์ ์๋ ์ง์ ๋ํ ํต๊ณ๋ฅผ ์๊ณ ์ถ๋ค๋ฉด:
์ด๋ ํ ํ์ ๋ฐ ๊ฒฐ๊ณผ๊ฐ ๋ฐ์ํ๋ ๋ฌธ์ ์ ์์ธ์ด 2๊ฐ ์์ ๋
1๊ฐ์ ์์ธ์ ์์ ๋ ์กด์ฌํ ๊ฒฝ์ฐ, ์๋ณต์ํค๊ณ 2๋ฅผ ์ง์๋ด๋ ๋๊ฐ์ด ๋ฐ์ํ๋ ๋ฌธ์ ๋ฅผ ์ด์ฌ์๋ค์ ๋ง์ด ๊ฒฝํํ๋ค.
์ค๊ธ์์ ๊ฒฝ์ฐ, ์ด๋ฌํ ๋ณต์กํ ์ํฉ์ ๋ง๋ค ์ง ์๊ฒ ๊ธฐ๋ณธ ์๋ฆฌ๋ฅผ ์ดํดํ๊ณ ์ค๊ณ๋ฅผ ํ๋ค.
์ด๋ฌํ ๋ฌธ์ ๋ฅผ ๋ฐ์์ํค์ง ์๋ ๋ฐฉ๋ฒ์ ์ฝ๋๋ฅผ ์์ฑํ ๋ ์ค๊ฐ์ค๊ฐ ์คํํ์ฌ ํ์ธํ๋ ๊ฒ์ด๋ค.
HTML ํ
ํ๋ฆฟ ๊ฐ์ ธ์ค๋ ์ฌ์ดํธ!
HTMLํ
ํ๋ฆฟ
๊ธด ์์ค ์ฝ๋๋ฅผ ๋ณผ ๋ ์ค์ํ ๊ฒ์: ๋ฐฉ๋ํ ์ฝ๋์ ์์ ์
๋๋๋ ๊ฒ์ด ์๋๋ผ ์ผ๋จ ์คํ์์ผ ๋ณด๋ผ
์ด์ฐจํผ ์์ฑ๋ ํ์ด์ง์ ์ฝ๋๋ผ๋ ๊ฒ์ ํ๋ฒ์ ์์ฑ๋ ๊ฒ์ด ์๋, ์ค๋ ๊ธฐ๊ฐ์ ์กฐ๊ธ์ฉ ์์ฑ๋ ๊ฒ
- ๋จผ์ ์คํํ๊ณ
- ๊ฐ๋ฐ์ ๋๊ตฌ๋ก ์ํ๋ ์์๋ฅผ ์ ํํ๊ณ
- ํด๋น ์ฝ๋๋ฅผ ๋ณต์ฌํด์ vs code์์ ctrl + f ํค๋ฅผ ๋๋ฌ ์ฐพ์๋ณธ๋ค.
- ๋ณ๊ฒฝํด๋ณธ๋ค.
์ํ๋ ํฐํธ๋ฅผ ๊ฐ์ ธ์๋ณด์!
https://fonts.google.com/
์ด๋ฒ ํ์ต์์ ์ค์ํ ๊ฒ์ ํ๋ก๊ทธ๋๋ฐ์ ๋ค์ดํฐ๋ธ๊ฐ ๋๋ ๊ฒ
์ค๊ธ์์ ๋ค์ดํฐ๋ธ๋ ๊ฐ์ง ์๋ค.
๊ณต๋ถ์ ํจ์ ์ ๋น ์ง์ง ๋ง๊ณ , ๋ฐฐ์ด ์ง์์ ํ์ฉํ๋ผ!
float์ ์ฌ์ค ๋ ์ด์์์ ์ํ ๊ธฐ์ ์ด ์๋์์ง๋ง, ์ด์ grid๋ผ๋ ๋ ์ด์์์ฉ ๊ธฐ์ ์ด ๋ฑ์ฅํ์๋ค.
translate(x,y) ํจ์: ์ด๋ํ๋ค (x,y)
x์ y๋ (0,0)์ผ๋ก ๋ถํฐ์ ์์น๋ฅผ ์๋ฏธํฉ๋๋ค.
scale(x,y) ํจ์: ๋ฐฐ์๋ก ํ๋ํ๋ ํจ์ (x์ถ์ผ๋ก ๋ฐฐ์, y์ถ์ผ๋ก ๋ฐฐ์)
scale์์ ๊ธฐ์ค์ ์, ๊ธฐ์กด ๋ฐ์ค์ ์ ๊ฐ์ด๋ฐ
rotate(N-deg) ํจ์: ํน์ ๊ฐ๋๋ก ํ์ ์ํค๋ ํจ์ (e.g. 0-360๋, ์์๋ ๊ฐ๋ฅ)
skew(x,y) ํจ์: ์์๊ฐ ์ค๋ฅธ์ชฝ ์๋๋ฅผ ๊ธฐ์ค์ผ๋ก ๊ธฐ์ด๋ค. (e.g ์ ์ ํน์ ์์๋ฅผ ๋ฐ๋๋ค)
์ฃผ์์ transition์ ์์ฑ๊ฐ์์ ์์ฑ ์์๊ฐ ์๋ค:
duration ์์ฑ๊ฐ์ด delay ์์ฑ๊ฐ ๋ณด๋ค ์ ํํด์ผ ํ๋ค.
.box:hover {
width: 300px;
background: dodgerblue;
}
transsition-property: width, background;
transition-duration: 1s;
transition ์์ฑ: ์ ๋๋ฉ์ด์ ์ด ๋ ๋ถ๋๋ฝ๊ฒ ๋์!
transition-timing-function: ์ ๋๋ฉ์ด์ ์ ์๋ ๋ณํ๋ฅผ ์ค์
transition ์์ฑ์ ์ฌ์ฉ์์ ์ก์ ์ ๋ฐ๋ผ ๋ณํํ๋ ์์์ ์ ์ฉํ ์ ์๋ค.
animation๊ณผ transition์ ์ฐจ์ด:
- transition์ ๋ฐ๋ณต์ด ์๋จ (์ฌ์ฉ์์ ์ก์ ํ์)
- animation์ ๋ฐ๋ณต ๊ฐ๋ฅ (์ฌ์ฉ์์ ์ก์ ์ด ์์ด๋)
animation-iteration-count์ ๊ฒฝ์ฐ from์์ to๋ก ๊ฐ ๋, ๊ทธ๋ฆฌ๊ณ vice verse๋ 1์ฉ ์นด์ดํธ
animation-duration์ ์์ฑ๊ฐ์ from์์ to๋ก ๊ฐ๋ ์๊ฐ์ ์๋ฏธ
๋ฉํฑ, ๋ฐ์คํฌํฑ, ํ๋ธ๋ฆฟ, ๋ชจ๋ฐ์ผ ๋ฑ ์นํ์ด์ง์ ์ ์ํ ์์๋ ๋๋ฐ์ด์ค์ ์ข ๋ฅ๊ฐ ๋ค์ํ ๋งํผ ๋๋ฐ์ด์ค ํ๊ฒฝ์ ๋ง๊ฒ ์น์ฌ์ดํธ์ ํ๋ฉด์ ๋ฐ๊พธ๋ ๊ธฐ๋ฅ์ด ๋ฏธ๋์ด ์ฟผ๋ฆฌ์ด๋ค.
๋ค๋ฅธ ์ฅ๋น์ ๋ฐ๋ผ ํ๋ฉด์ ๋ฐ๊พธ๋ ค๋ฉด ์๋์ ์ฝ๋๋ฅผ head์ ์์ฑํ๋ค.
<meta name='viewport' content='width=device-width, initial-scale=1'>
viewport๋ ์น์ฌ์ดํธ์ ํ๋ฉด์ ๋ณด์ฌ์ฃผ๋ ๋งค์ฒด๋ฅผ ์๋ฏธํ๊ณ , content ์์ฑ์๋ width๋ฅผ ๋๋ฐ์ด์ค ๋์ด๋ก ๊ฐ์ ์ค๋ค.
๋ฏธ๋์ด ์ฟผ๋ฆฌ๋ฅผ ์ ์ฉํ๊ธฐ ์ ๋จผ์ :
- ํ๋ฉด์ ์คํํด์ ๊ฐ๋ฐ์ ๋๊ตฌ๋ฅผ ๋ณธ๋ค.
- ๋ธ๋ผ์ฐ์ ํญ์ ์ค์์ ๋ ๋ฐ๋๋ ํ๋ฉด์ ๊ตฌ์ํ์ฌ
- ๋ธ๋ผ์ฐ์ ๊ฐ๋ฐ์ ๋๊ตฌ์ ๋ฐ๋ก ๋ณํ๋ฅผ ์ ์ฉํด๋ณธ๋ค.