[TIL] Weekly Mission1 (feat. Flexbox & meta tag ๊ณ ์ฐฐ)

์ƒค์ด๋‹ˆยท2023๋…„ 3์›” 25์ผ
0

learned.log

๋ชฉ๋ก ๋ณด๊ธฐ
5/46

์˜ค๋Š˜์˜ ๋‚˜๋Š” ๋ฌด์—‡์„ ์ž˜ํ–ˆ์„๊นŒ?

  1. ์ด๋ฏธ ๊ธฐํš๊ณผ ๋””์ž์ธ์ด ์™„์„ฑ๋œ ์›น์‚ฌ์ดํŠธ์˜ UI๋ฅผ HTML๊ณผ CSS๋ฅผ ์‚ฌ์šฉํ•ด ๊ตฌํ˜„ํ•˜๋Š” Weekly Mission์„ ์ง„ํ–‰ํ•˜๋ฉด์„œ flexbox, meta ํƒœ๊ทธ์— ๋Œ€ํ•ด ์Šค์Šค๋กœ ์ฐพ์•„๋ณด๋ฉฐ ํ•™์Šตํ–ˆ๋‹ค.
  2. ์™œ ์•™๋Œ€.. ํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹Œ ์ด๋ž˜์„œ ์•ˆ๋˜๊ตฐ! ์ด๋ผ๋Š” ๊นจ๋‹ฌ์Œ์ด ๋งŽ์•˜๋˜ ๋ฏธ์…˜์ด์—ˆ๋‹ค!
  3. CSS refactoring์„ ์ง„ํ–‰ํ–ˆ๋‹ค. ์šฐ์„  ๊ตฌํ˜„ํ•œ ๋’ค์— ๊ณตํ†ต์œผ๋กœ ์ ์šฉ๋˜๋Š” ๊ฒƒ๋“ค์€ ์„ ํƒ์ž ๋ชฉ๋ก ๊ธฐ๋ฒ•์ด๋‚˜ ์ž์† ๊ฒฐํ•ฉ์ž๋ฅผ ์ ์šฉํ•ด ์ฝ”๋“œ์˜ ๊ธธ์ด๋ฅผ ์ค„์˜€๋‹ค.
  4. netlify๋ฅผ ์‚ฌ์šฉํ•ด ๋ฐฐํฌํ•˜๊ณ , GA๋ฅผ ์ ์šฉํ–ˆ๋‹ค!
  5. favicon์„ ์ ์šฉํ–ˆ๋‹ค.

์˜ค๋Š˜์˜ ๋‚˜๋Š” ๋ฌด์—‡์„ ๋ฐฐ์› ์„๊นŒ?

[1] Flexbox ์ดํ•ดํ•˜๊ธฐ

  • ๋ฐ˜์‘ํ˜• ์›น๋””์ž์ธ์„ ์œ„ํ•œ Flexbox
  • ํ•˜๋‚˜์˜ Flex container์™€ ์—ฌ๋Ÿฌ ๊ฐœ์˜ Flex item์œผ๋กœ ๊ตฌ์„ฑ๋œ๋‹ค.
    <div class="container"> 
      <div class="item">A</div>
      <div class="item">B</div>
      <div class="item">C</div>
    </div>
    
    .container {
      **display: flex;**
    }
    
    .item {
      flex: 1;
    }
    • flex container -ย flex-direction,ย justify-content,ย align-items ๋“ฑ์‚ฌ์šฉ
    • flex item -ย flex,ย align-self,ย order ๋“ฑ ์‚ฌ์šฉ

Main/Cross Axis

  • Main Axis : ์—ฌ๋Ÿฌ ๊ฐœ์˜ flex item์ด ์ˆœ์„œ๋Œ€๋กœ ๋ฐฐ์น˜๋˜๋Š” ๋ฐฉํ–ฅ
    • flex container์˜ flex-directionย ์†์„ฑ์— ์˜ํ•ด์„œ ๊ฒฐ์ •.
      • ๊ธฐ๋ณธ์€ row(์™ผโ†’์˜ค)์ด๋‹ค. column์œผ๋กœ ์„ค์ •ํ•  ๊ฒฝ์šฐ, ์œ„โ†’ ์•„๋ž˜ ๋ฐฉํ–ฅ์ด ๋œ๋‹ค.
      • justify-content(main axis ๊ธฐ์ค€ ์ •๋ ฌ)ย or align-items(cross axis ๊ธฐ์ค€ ์ •๋ ฌ) ์ •๋ ฌ ๋ฐฉํ–ฅ์„ ๊ณ ๋ คํ•˜์—ฌ ์ ์šฉํ•ด์•„ํ•œ๋‹ค.
  • Cross Axis : Main Axis์™€ ์ˆ˜์ง์„ ์ด๋ฃจ๋Š” ๋ฐฉํ–ฅ

justify-content

flex item์„ main axis๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์–ด๋–ป๊ฒŒ ์ •๋ ฌํ• ์ง€ ๊ฒฐ์ •ํ•œ๋‹ค.

  • ์ฆ‰,ย flex-directionย ์†์„ฑ์ดย row๋ผ๋ฉด ์ขŒ์ธก ์ •๋ ฌ,ย column์ด๋ผ๋ฉด ์ƒ๋‹จ ์ •๋ ฌ
  • flex-end,ย center,ย space-between,ย space-evenly,ย space-around ๋“ฑ๋“ฑ

align-items

flex item์„ cross axis๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์–ด๋–ป๊ฒŒ ์ •๋ ฌํ• ์ง€๋ฅผ ๊ฒฐ์ •

  • ๊ธฐ๋ณธ stretch - flex item์„ flex container์˜ ๋†’์ด ๋˜๋Š” ๋„ˆ๋น„๋งŒํผ ๋Š˜๋ฆฐ๋‹ค.
    • flex-directionย ์ดย row์ผ ๊ฒฝ์šฐ ๋†’์ด๋งŒํผ ๋Š˜์–ด๋‚˜๊ณ , column์ด๋ฉด ๋„ˆ๋น„๋งŒํผ ๋Š˜์–ด๋‚œ๋‹ค.
      • row์ผ ๊ฒฝ์šฐ height ์ง€์ •์ด ํ•„์ˆ˜

flex item์˜ย flexย ์†์„ฑ

  • flex item ์ค‘ ํ•˜๋‚˜์—๋งŒย flex: 1;ย ์Šคํƒ€์ผ์„ ์ ์šฉ - ๊ทธ flex item์ด ๋ชจ๋“  ๊ณต๋ฐฑ์„ ์ ์œ 
  • ๋ชจ๋“  flex item์—ย flex: 1;ย ์Šคํƒ€์ผ์„ ์ ์šฉ - ๊ณต๋ฐฑ์„ ๊ท ๋“ฑํ•˜๊ฒŒ ์ ์œ 
  • flexย ์†์„ฑ์˜ ๊ฐ’์„ ์„œ๋กœ ๋‹ค๋ฅด๊ฒŒ ์ฃผ๋ฉด - ๋‹ค๋ฅธ ๋น„์œจ๋กœ ์ ์œ 

[2] ๋ฉ”ํƒ€ํƒœ๊ทธ ๊ตฌํ˜„ํ•˜๊ธฐ

(feat. Weekly Mission)

๋™์ ์ธ OG ํƒœ๊ทธ

<head>
	<meta property="og:title" content={data?.title}>
</head>
  • HTML์ด ๋ธŒ๋ผ์šฐ์ €์— ๋จผ์ € ๊ทธ๋ ค์ง€๊ณ  ๋‚œ ๋’ค, ๋ธŒ๋ผ์šฐ์ €์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ถ”๊ฐ€๋กœ ์š”์ฒญํ•˜๊ณ  ๋ฐ›์•„์™€์„œ ๋™์ ์œผ๋กœ OG ํƒœ๊ทธ๋ฅผ ๋งŒ๋“œ๋Š” ๊ฒƒ์€ ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค.

[3] Weekly Mission ํšŒ๊ณ 

HTML๊ณผ CSS๋ฅผ ์‚ฌ์šฉํ•ด ๊ตฌํ˜„ํ•˜๋Š” ์œ„ํด๋ฆฌ ๋ฏธ์…˜์„ ์ง„ํ–‰ํ–ˆ๋‹ค.

ํ•„์ˆ˜ ์š”๊ตฌ์‚ฌํ•ญ์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

  • PC ์‚ฌ์ด์ฆˆ๋งŒ์„ ๊ณ ๋ คํ•œ ๊ตฌํ˜„
  • ๋ธŒ๋ผ์šฐ์ € ๋„ˆ๋น„๊ฐ€ 1920px์„ ๋„˜์–ด๊ฐˆ ๊ฒฝ์šฐ, ๋‚ด๋ถ€ ์š”์†Œ ์œ„์น˜๋Š” ๊ณ ์ •, ์—ฌ๋ฐฑ๋งŒ ์ปค์ง€๋„๋ก ๊ตฌํ˜„
  • ๋ ˆ์ด์•„์›ƒ ์กฐ๊ฑด ๋งŒ์กฑํ•˜๊ธฐ
  • SNS๋กœ ๊ณต์œ  ์‹œ ๋ณด์ด๋Š” ๋ฏธ๋ฆฌ๋ณด๊ธฐ ๊ตฌํ˜„

๊ตฌํ˜„ํ•œ ๊ธฐ๋ณธ ๊ตฌ์กฐ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

โ”œโ”€ header
โ”œโ”€ main
โ”œโ”€ section
โ”‚  โ””โ”€ article
โ””โ”€ footer

1. justify-content: space-between; ์˜ ํ™œ์•ฝ

๊ฐ€์žฅ ์‹ ๊ฒฝ ์“ด ๊ฒƒ์€ ์š”์†Œ 2๊ฐœ ํ˜น์€ 3๊ฐœ๋ฅผ ์–‘์˜† ๋์— ๋‚˜๋ž€ํžˆ ๋ฐฐ์น˜ํ•˜๋Š” ๊ฒƒ์ด์—ˆ๋‹ค. display : inline-block์„ ์‚ฌ์šฉํ•ด๋„ ์œ„์น˜๋ฅผ ๊ณ ์ •ํ•  ์ˆ˜ ์—†์—ˆ๊ณ , margin์„ hardํ•˜๊ฒŒ ์ ์šฉํ•˜๊ณ  ์‹ถ์ง€๋Š” ์•Š์•˜๋‹ค.
๋”ฐ๋ผ์„œ flexbox์— ๋Œ€ํ•œ ํ•™์Šต์„ ์ง„ํ–‰ ํ•œ ํ›„, justify-content: space-between;๋ฅผ ์ ์šฉํ•˜์˜€๋”๋‹ˆ ์† ์‰ฝ๊ฒŒ ํ•ด๊ฒฐ๋˜์—ˆ๋‹ค.

  • flex container(๋ถ€๋ชจ)
    • display: flex & justify-content: space-between ์ ์šฉ. ๊ธฐ๋ณธ์œผ๋กœ flex-direction์ด row์ด๊ธฐ ๋•Œ๋ฌธ์— ์ขŒ์ธก ์ •๋ ฌ์ด ๋œ๋‹ค.

2. ์„ธ๋กœ ์ค‘์•™ ์ •๋ ฌ์„ ์œ„ํ•œ align-items: center

flex item์„ cross axis๋ฅผ ๊ธฐ์ค€์œผ๋กœ center์— ๋‘”๋‹ค. ๊ธฐ๋ณธ์œผ๋กœ flex-direction์ด row์ด๊ธฐ ๋•Œ๋ฌธ์— flex item์˜ ๋†’์ด๊ฐ€ container๋†’์ด๋งŒํผ ๋Š˜์–ด๋‚˜ ์ค‘์•™์ •๋ ฌ์ด ๋˜์—ˆ๋‹ค. (container์˜ height์ง€์ •์€ ์„ ํ•„์ˆ˜!)

3. section์˜ article๋“ค์„ ์ƒ๋‹จ ์ •๋ ฌ ํ•˜๊ธฐ ์œ„ํ•œ flex-direction: column; ์‚ฌ์šฉ

4๊ฐœ์˜ article์ด ์œ„์—์„œ ์•„๋ž˜์˜ ๊ฐ€์šด๋ฐ๋กœ ์ •๋ ฌ๋  ์ˆ˜ ์žˆ๋„๋ก ์‚ฌ์šฉํ–ˆ๋‹ค.

4. ๋ธŒ๋ผ์šฐ์ € ๋„ˆ๋น„๊ฐ€ 1920px - max-width ์ ์šฉ

๋ฐ˜์‘ํ˜•์„ ์œ„ํ•ด max-width๋ฅผ ์‚ฌ์šฉํ–ˆ๋‹ค. ์‚ฌ์‹ค ๋‚˜๋จธ์ง€ ํŒŒํŠธ๊ฐ€ ๋ฐ˜์‘ํ˜•์ด ์•„๋‹ˆ๋ผ ์˜๋ฏธ๋Š” ์—†์ง€๋งŒ..!

  • ์ฒ˜์Œ์— body ์ „์ฒด์— ์ ์šฉํ•˜๋‹ˆ background-color๊ฐ€ ์งค๋ ค์„œ background-color๋ฅผ ์ ์šฉํ•œ ์š”์†Œ์˜ ์ž์‹์ธ header์˜ nav, article, footer์˜ footer_wrap์— ์ง์ ‘ ์ ์šฉํ–ˆ๋‹ค.

5. background-color๋Š” margin์— ์ ์šฉ๋˜์ง€ ์•Š๋Š”๋‹ค.

์ฒ˜์Œ์—” ๊ต‰์žฅํžˆ ๋‹นํ™ฉํ–ˆ๋‹ค. ์–ด๋–ค ๋ฐฉ๋ฒ•์„ ์จ๋„ margin์—๋Š” ์ ์šฉ๋˜์ง€ ์•Š์•˜๋‹ค. ํŠนํžˆ h1, h2 ๊ฐ™์€ ํƒœ๊ทธ๋Š” ์ด๋ฏธ margin์ด ์ ์šฉ๋˜์–ด์žˆ๋Š” ๊ฒƒ์ธ์ง€, ์ ์šฉ๋˜์ง€ ์•Š๋Š” ๋ถ€๋ถ„์ด ์ƒ๊ฒจ ๊ผญ margin: 0์„ ์ ์šฉํ•ด์ค˜์•ผํ–ˆ๋‹ค.

  • ์ฐพ์€ ๋ฐฉ๋ฒ•! : ์—ฌ๋ฐฑ์ด ํ•„์š”ํ•œ ๊ฒฝ์šฐ, margin ๋Œ€์‹  padding์„ ์“ธ ๊ฒƒ~

์˜ค๋Š˜์˜ ๋‚˜๋Š” ์–ด๋–ค ์–ด๋ ค์›€์ด ์žˆ์—ˆ์„๊นŒ?

  1. ์—ฌ์ „ํžˆ css๋กœ flex ๋ฐ•์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์€ ์–ด๋ ต๋‹ค. ๋‚˜์•„๊ฐ€ Grid ๋ฐฉ์‹๋„ ์ž์œ ์ž์ œ๋กœ ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ๋‹ค.
  2. HTML์˜ class ์ด๋ฆ„ ์ •ํ•˜๋Š” ๊ฒƒ์ด ๋„ˆ๋ฌด ๊นŒ๋‹ค๋กญ๋‹ค^^ ๊ทธ๋ž˜์„œ css ์ ์šฉํ•  ๋•Œ, ํƒœ๊ทธ๋ช…์œผ๋กœ ํ–ˆ๋Š”๋ฐ.. ๋”ํ‹ฐํ•œ ์ฝ”๋“œ๊ฐ€ ๋‚˜์™€์„œ ๋จธ๋ฆฌ๋ฅผ ์ฅ์–ด ์ž๋ฉฐ class ๋ช…์„ ๋‹ค ๋ถ™์—ฌ์คฌ๋‹ค. ์ข‹์€ ์ด๋ฆ„์„ ๋ถ™์ด๋Š” ๋ฒ•์€ ์—ฌ๊ธฐ์—..
    • BEM์ด๋ผ๋Š” ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•˜์ž! ๋ฆฌํŒฉํ† ๋ง ํ•„์ˆ˜
  3. ์ƒ๊ฐ๋ณด๋‹ค ๋””ํ…Œ์ผํ•œ ๋ถ€๋ถ„์„ ์‹ ๊ฒฝ์“ฐ๋ฉด์„œ UI๋ฅผ ๊ตฌํ˜„ํ•˜๋Š” ๊ฒƒ์— ๋…ธ๋ ฅ์ด ๋งŽ์ด ๋“ค์—ˆ๋‹ค. ํ•˜์ง€๋งŒ "์™œ ์ค‘์•™์ •๋ ฌ ์•ˆ๋ผ?" ๋ผ๋ฉฐ ์ง•์ง•๊ฑฐ๋ ธ๋˜ ์ง€๋‚œ ํ”„๋กœ์ ํŠธ๋“ค์— ๋น„ํ•ด ์ด์ œ๋Š” ์ด์œ ๋ฅผ ์•Œ๋ฉด์„œ CSS๋ฅผ ์ ์šฉํ•  ์ค„ ์•„๋Š” ํž˜์ด ์ƒ๊ฒผ๋‹ค!
  4. ์„ธ์ปจ ๋ชจ๋‹ˆํ„ฐ ๊ผญ ํ•„์š”ํ•ด์š”...

๋‚ด์ผ์˜ ๋‚˜๋Š” ๋ฌด์—‡์„ ํ•ด์•ผํ• ๊นŒ?

๋“œ๋””์–ด ์ผ์š”์ผ!

  • WIL ๋ฐ Week ํšŒ๊ณ 
  • ์ฝ”ํ…Œ 2๋ฌธ์ œ

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