16_Sep_2021: ๐Ÿฐ์—˜๋ฆฌ์Šค AI ํŠธ๋ž™ TIL: CSS ๊ธฐ์ดˆ ๋ถ€ํ„ฐ ์‹ฌํ™” : ์„ ํƒ์ž ๋ถ€ํ„ฐ ๋ฏธ๋””์–ด ์ฟผ๋ฆฌ ๊นŒ์ง€

์œ ํ™˜์ตยท2021๋…„ 9์›” 16์ผ
1

Alexander Yoo์˜ Web Programming

๋ชฉ๋ก ๋ณด๊ธฐ
3/4

Egoing๋‹˜์˜ ์—ฌ๋Š” ๋ง:

๊ต์œก์— ์žˆ์–ด์„œ๋Š” ์žฌ๋ฏธ๊ฐ€ ์ค‘์š”ํ•˜๋‹ค.
ํ•™์Šต์— ์žฌ๋ฏธ๋ฅผ ๋Š๊ปด๋ผ
ํ•™๊ต์—์„œ ๋ฐฐ์šฐ๋Š” ์žฌ๋ฏธ์—†๋‹ค๊ณ  ์ƒ๊ฐํ•˜๋Š” ๋งŽ์€ ์ง€์‹๋“ค์ด,
๋ˆ„๊ตฐ๊ฐ€์—๊ฒ ์žฌ๋ฏธ์žˆ์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ง€์‹์ด ๋ฐœ์ „์ด ์žˆ์—ˆ๋˜ ๊ฒƒ์ผ ์ˆ˜ ์žˆ๋‹ค.
๊ทธ๋žฌ๊ธฐ ๋•Œ๋ฌธ์— ๊ทธ๋Ÿฌํ•œ ์ง€์‹๋“ค์ด ํ™•์žฅ๋˜์ง€ ์•Š์•˜์„๊นŒ.

๋ณต์Šต

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 '์ปค๋ฐ‹ํ•œ ๋ฉ”์‹œ์ง€' => ๊ทธ ๋‹น์‹œ ๋ฒ„์ „์œผ๋กœ ํšŒ๊ท€ ๊ฐ€๋Šฅ

CSS์˜ ๋“ฑ์žฅ

1990๋…„ 12์›” 24์ผ ๋‹น์‹œ, ๋‹จ ํ•˜๋‚˜์˜ ๊ธฐ์ˆ ์œ HTML ๋งŒ ์กด์žฌ ํ–ˆ์œผ๋‚˜

4๋…„ ํ›„, HTML์˜ ๋””์ž์ธ์„ ๊พธ๋ฉฐ์ฃผ๋Š” CSS ๋“ฑ์žฅ
๊ทธ๋กœ ๋ถ€ํ„ฐ 5๋…„ ํ›„, HTML์ด ์‚ฌ์šฉ์ž์™€ ์ƒํ˜ธ์ž‘์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒํ•˜๋Š” JavaScript ๋“ฑ์žฅ.

๊ณ ๋กœ HTML์€ ํ˜๋ช…์ ์ธ ๊ธฐ๋Šฅ์ด๋‹ค. ๊ทธ ์ž์ฒด๋กœ๋Š” ์–ด๋–ค ๋ถ€๋ถ„์ด ๋ถ€์กฑํ•˜๊ธฐ ๋•Œ๋ฌธ์— CSS์™€ JS (ํ˜์‹ ์ ์ธ ๊ธฐ๋Šฅ)๊ฐ€ ๋“ฑ์žฅํ•œ ๊ฒƒ์ด๋‹ค.
์ดˆ์‹ฌ์ž์˜ ๊ฒฝ์šฐ, ํ•™์Šต์˜ ์ค‘์š”๋„๋Š” ํ˜๋ช…์ >ํ˜์‹ ์ ์ธ ๋ถ€๋ถ„์ด๋‹ค.

HTML์˜ ๋””์ž์ธ์— ๋Œ€ํ•œ ๊ณ ๋ฏผ -> ๋„ˆ๋ฌด HTML์˜ ๊ธฐ๋Šฅ์ด ์žก๋‹คํ•˜๋‹ค

HTML2์—์„œ ์›๋ž˜ ์žˆ๋˜ ๋””์ž์ธ์— ๋Œ€ํ•œ ํƒœ๊ทธ๋“ค์„ ํ‡ด์ถœ์‹œ์ผœ๋ฒ„๋ฆผ
์ด๋Ÿฌํ•œ ์ด์œ ๋กœ ๋“ฑ์žฅํ•œ ๊ฒƒ์ด CSS์ด๋‹ค.

์›น์‚ฌ์ดํŠธ์˜ ๋””์ž์ธ์„ CSS๊ฐ€ ๋”ฐ๋กœ ๋–ผ์–ด ๋‹ด๋‹นํ•˜๊ธฐ ๋•Œ๋ฌธ์—,
HTML์€ ๊ตฌ์กฐ ์„ค๊ณ„ ์—ญํ• ์— ์ „๋…ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋˜์—ˆ๋‹ค.

CSS์˜ ๊ตฌ์กฐ

  • ์„ ํƒ์ž: ํƒœ๊ทธ์˜ ์ด๋ฆ„์ด๋‚˜ ID(#), Class(.) ๋“ฑ์œผ๋กœ ๋ฌธ์„œ ์š”์†Œ๋ฅผ ํŠน์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.

  • ์†์„ฑ: ํƒœ๊ทธ๋‚˜ ์š”์†Œ์— ์ ์šฉํ•  ๋””์ž์ธ ์†์„ฑ์„ ์ •์˜ํ•œ๋‹ค.

์ฃผ์˜์ : ํ•˜๋‚˜์˜ ์†์„ฑ์„ ์ž‘์„ฑ์™„๋ฃŒํ–ˆ๋‹ค๋ฉด ์„ธ๋ฏธ์ฝœ๋ก ์œผ๋กœ ๋ฐ˜๋“œ์‹œ ๋งˆ์ณ์•ผ ํ•ฉ๋‹ˆ๋‹ค.

<style>
        /* ์„ ํƒ์ž(Selector)*/
        li {
            /*์†์„ฑ(descriptiom, effect)*/
            color: powderblue;
            text-decoration: underline;
        }
    </style>

์„ ํƒ์ž๋ฅผ ์„ ํƒํ•˜๋Š” ๋ฐฉ๋ฒ•์—๋Š” ํƒœ๊ทธ ์ „์ฒด๋ฅผ ์„ค์ •ํ•  ์ˆ˜ ๋„ ์žˆ์ง€๋งŒ, ํŠน์ •ํ•œ ํƒœ๊ทธ๋ฅผ ์„ ํƒํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” class์™€ id๋กœ ์„ ํƒ์ž๋ฅผ ์ง€์ •ํ•  ์ˆ˜ ์žˆ๋‹ค:

class: ๋ณต์ˆ˜์˜ ํƒœ๊ทธ๋ฅผ ๊ทธ๋ฃน์œผ๋กœ ์„ค์ •ํ•œ๋‹ค.
id: ๋‹จ์ผํ•œ ํ•˜๋‚˜์˜ ํƒœ๊ทธ๋ฅผ ์„ค์ •ํ•œ๋‹ค.

Block ์š”์†Œ์™€ Inline ์š”์†Œ

Block ์š”์†Œ: ํ•œ ์ค„์˜ ๊ณต๊ฐ„์„ ์ „๋ถ€ ์ฐจ์ง€ํ•˜๋ฉฐ, ์ค„๋ฐ”๊ฟˆ ํ˜„์ƒ์ด ์ผ์–ด๋‚œ๋‹ค. ( <h1~6> ํ˜น์€ div ๋“ฑ)
Inline ์š”์†Œ: ์ปจํ…์ธ  ๋งŒํผ์˜ ๊ณต๊ฐ„์„ ์ฐจ์ง€ํ•˜๋ฉฐ, ์ค„๋ฐ”๊ฟˆ ํ˜„์ƒ์ด ์ผ์–ด๋‚˜์ง€ ์•Š๋Š”๋‹ค.

๋ช…์‹œ์ ์œผ๋กœ ๋ฐ”๊พธ์–ด ์ค„ ์ˆ˜๋„ ์žˆ๋‹ค.

/*๋ช…์‹œ์ ์œผ๋กœ ๋ธ”๋ก ์š”์†Œ๋กœ ์ „ํ™˜*/
        a {
            display: block;
        }

/*๋ช…์‹œ์ ์œผ๋กœ ์ธ๋ผ์ธ ์š”์†Œ๋กœ ์ „ํ™˜ */
        h2 {
            display: inline;
        }

๊ทธ๋Ÿฌ๋‚˜ ๊ฐ ํƒœ๊ทธ์˜ ๋ธ”๋ก ๋ฐ ์ธ๋ผ์ธ ์†์„ฑ์€ ๋””ํดํŠธ๋กœ ์„ค์ •๋œ ์ด์œ ๊ฐ€ ๋‹ค ์žˆ๋‹ค.

  • alt + z : ๊ธด ํ…์ŠคํŠธ๋ฅผ ์ค„๋ฐ”๊ฟˆํ•˜์—ฌ ํฌ๋งทํ•˜๋Š” ํ•ซ ํ‚ค

์š”์†Œ์˜ ๋ ˆ์ด์•„์›ƒ์„ ๋ฐ”๊พธ๋Š” CSS ์†์„ฑ์—๋Š” ๋‹ค์Œ์ด ์žˆ๋‹ค.

  • padding: ์ปจํ…์ธ ์™€ border ์‚ฌ์ด์˜ ๊ณต๊ฐ„์„ ์กฐ์ •ํ•œ๋‹ค.
  • margin: border ๋ฐ”๊นฅ์˜ ๊ณต๊ฐ„์„ ์กฐ์ •ํ•œ๋‹ค.

์•„๋ž˜ ๊ทธ๋ฆผ์€ HTML์˜ ๋ฐ•์Šค ๋ชจ๋ธ์ด๋‹ค.

๊ทธ๋ฆผ์˜ ํŒŒ๋ž€์ƒ‰ ๋ถ€๋ถ„: content
๊ทธ๋ฆผ์˜ ์ดˆ๋ก์ƒ‰ ๋ถ€๋ถ„: padding
๊ทธ๋ฆผ์˜ ๋…ธ๋ž€์ƒ‰ ๋ถ€๋ถ„: border
๊ทธ๋ฆผ์˜ ์ฃผํ™ฉ์ƒ‰ ๋ถ€๋ถ„: margin


๋ฐฐ์šด ๊ธฐ์ˆ ์„ ์‹ค์ƒํ™œ์—์„œ ์ฐพ์•„ ํ™œ์šฉํ•˜๊ณ , ์ƒํ™œ์„ ๊ฐœ์„ ํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ํ•™์Šต์— ์ข‹๋‹ค.

css ์†์„ฑ์„ ํ˜„์กดํ•˜๋Š” ์›นํŽ˜์ด์ง€์—์„œ ์‹คํ—˜ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•:
google chrome์˜ stylebot ์ต์Šคํ…์…˜ ์„ค์น˜


๋ธ”๋ก ๋ฐ ์ธ๋ผ์ธ ์š”์†Œ๋ฅผ ์ž˜ ๋‹ค๋ฃจ์–ด ๋ ˆ์ด์•„์›ƒ์„ ๊ตฌํ˜„ํ•˜๊ธฐ
์œ„ํ•ด์„œ๋Š” ๊ทธ๋ฆฌ๋“œ(grid)์˜ ๊ฐœ๋…์„ ์ž˜ ์ดํ•ดํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•˜๋‹ค.

๊ทธ๋ฆฌ๋“œ(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ํ…œํ”Œ๋ฆฟ

๊ธด ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ๋ณผ ๋•Œ ์ค‘์š”ํ•œ ๊ฒƒ์€: ๋ฐฉ๋Œ€ํ•œ ์ฝ”๋“œ์˜ ์–‘์— ์••
๋„๋˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ์ผ๋‹จ ์‹คํ–‰์‹œ์ผœ ๋ณด๋ผ

์–ด์ฐจํ”ผ ์™„์„ฑ๋œ ํŽ˜์ด์ง€์˜ ์ฝ”๋“œ๋ผ๋Š” ๊ฒƒ์€ ํ•œ๋ฒˆ์— ์™„์„ฑ๋œ ๊ฒƒ์ด ์•„๋‹Œ, ์˜ค๋žœ ๊ธฐ๊ฐ„์— ์กฐ๊ธˆ์”ฉ ์ž‘์„ฑ๋œ ๊ฒƒ

UI ํ…œํ”Œ๋ฆฟ์ด๋‚˜ ๋‹ค๋ฅธ ์‚ฌ๋žŒ์˜ ์ฝ”๋“œ๋ฅผ ์ฐธ๊ณ ํ•  ๋•Œ๋Š”:

  1. ๋จผ์ € ์‹คํ–‰ํ•˜๊ณ 
  2. ๊ฐœ๋ฐœ์ž ๋„๊ตฌ๋กœ ์›ํ•˜๋Š” ์š”์†Œ๋ฅผ ์„ ํƒํ•˜๊ณ 
  3. ํ•ด๋‹น ์ฝ”๋“œ๋ฅผ ๋ณต์‚ฌํ•ด์„œ vs code์—์„œ ctrl + f ํ‚ค๋ฅผ ๋ˆŒ๋Ÿฌ ์ฐพ์•„๋ณธ๋‹ค.
  4. ๋ณ€๊ฒฝํ•ด๋ณธ๋‹ค.

์›ํ•˜๋Š” ํฐํŠธ๋ฅผ ๊ฐ€์ ธ์™€๋ณด์ž!
https://fonts.google.com/

์ด๋ฒˆ ํ•™์Šต์—์„œ ์ค‘์š”ํ•œ ๊ฒƒ์€ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์˜ ๋„ค์ดํ‹ฐ๋ธŒ๊ฐ€ ๋˜๋Š” ๊ฒƒ

์ค‘๊ธ‰์ž์™€ ๋„ค์ดํ‹ฐ๋ธŒ๋Š” ๊ฐ™์ง€ ์•Š๋‹ค.

๊ณต๋ถ€์˜ ํ•จ์ •์— ๋น ์ง€์ง€ ๋ง๊ณ , ๋ฐฐ์šด ์ง€์‹์„ ํ™œ์šฉํ•˜๋ผ!

float์€ ์‚ฌ์‹ค ๋ ˆ์ด์•„์›ƒ์„ ์œ„ํ•œ ๊ธฐ์ˆ ์ด ์•„๋‹ˆ์—ˆ์ง€๋งŒ, ์ด์ œ grid๋ผ๋Š” ๋ ˆ์ด์•„์›ƒ์šฉ ๊ธฐ์ˆ ์ด ๋“ฑ์žฅํ•˜์˜€๋‹ค.


transform()2D ๋ณ€ํ™˜ ํ•จ์ˆ˜์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด์ž!

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 ์ •์ˆ˜ ํ˜น์€ ์Œ์ˆ˜๋ฅผ ๋ฐ›๋Š”๋‹ค)

  • ๊ฐ™์€ ์†์„ฑ์— ๊ฐ’์„ ๋ณ€๊ฒฝํ•˜๋ฉด, ๊ฐ€์žฅ ๋‚˜์ค‘์˜ ๊ฐ’๋งŒ ์ ์šฉ๋œ๋‹ค.
  • rotate, skew, translate์€ ์Œ์ˆ˜๋ฅผ ๋„ฃ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ฃผ์˜์  transition์˜ ์†์„ฑ๊ฐ’์—์„œ ์ž‘์„ฑ ์ˆœ์„œ๊ฐ€ ์žˆ๋‹ค:
duration ์†์„ฑ๊ฐ’์ด delay ์†์„ฑ๊ฐ’ ๋ณด๋‹ค ์„ ํ–‰ํ•ด์•ผ ํ•œ๋‹ค.

.box:hover {
	width: 300px;
    background: dodgerblue;
}
transsition-property: width, background;
transition-duration: 1s;

transition ์†์„ฑ: ์• ๋‹ˆ๋ฉ”์ด์…˜์ด ๋” ๋ถ€๋“œ๋Ÿฝ๊ฒŒ ๋™์ž‘!

transition-timing-function: ์• ๋‹ˆ๋ฉ”์ด์…˜์˜ ์†๋„ ๋ณ€ํ™”๋ฅผ ์„ค์ •

  • ease-in-out ( ๋Š๋ ธ๋‹ค๊ฐ€ ๋น ๋ฅด๊ฒŒ )
  • linear ( ์ผ์ •ํ•œ ์›€์ง์ž„ )

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๋ฅผ ๋””๋ฐ”์ด์Šค ๋„“์ด๋กœ ๊ฐ’์„ ์ค€๋‹ค.

๋ฏธ๋””์–ด ์ฟผ๋ฆฌ๋ฅผ ์ ์šฉํ•˜๊ธฐ ์ „ ๋จผ์ €:

  • ํ™”๋ฉด์„ ์‹คํ–‰ํ•ด์„œ ๊ฐœ๋ฐœ์ž ๋„๊ตฌ๋ฅผ ๋ณธ๋‹ค.
  • ๋ธŒ๋ผ์šฐ์ € ํญ์„ ์ค„์˜€์„ ๋•Œ ๋ฐ”๋€Œ๋Š” ํ™”๋ฉด์„ ๊ตฌ์ƒํ•˜์—ฌ
  • ๋ธŒ๋ผ์šฐ์ € ๊ฐœ๋ฐœ์ž ๋„๊ตฌ์— ๋ฐ”๋กœ ๋ณ€ํ™”๋ฅผ ์ ์šฉํ•ด๋ณธ๋‹ค.
profile
์‚ฌ์šฉ์ž์˜ ํŽธ์˜๋ฅผ ๋” ์ƒ๊ฐํ•˜๊ณ  ํŽธ์•ˆํ•œ UI/UX ๊ฐœ๋ฐœ์„ ๊ฟˆ๊พธ๋Š” ํ”„๋ก ํŠธ์—”๋“œ ๊ฐœ๋ฐœ์ž ์ง€๋ง์ƒ์ž…๋‹ˆ๋‹ค.

0๊ฐœ์˜ ๋Œ“๊ธ€