๐Ÿฆ_21.11.16 TIL

Boriยท2021๋…„ 11์›” 16์ผ
1
post-thumbnail

21๋…„ 11์›” 15์ผ

๐Ÿ“ CSS

๐Ÿ“Ž grid ๋ณด์ถฉ

21.11.08-TIL ์ฐธ๊ณ 

grid ์ฐธ๊ณ  ์‚ฌ์ดํŠธ

grid ์—ฐ์Šต ์‚ฌ์ดํŠธ

grid-template-areas

  • ๊ฐ ์˜์—ญ(Grid Area)์— ์ด๋ฆ„์„ ๋ถ™์ด๊ณ , ๊ทธ ์ด๋ฆ„์„ ์ด์šฉํ•ด์„œ ๋ฐฐ์น˜ํ•˜๋Š” ๋ฐฉ๋ฒ•

[์ถœ์ฒ˜: 1๋ถ„ ์ฝ”๋”ฉ]

  .container {
    grid-template-areas:
      "header header header"
      "   a    main    b   "
      "   .     .      .   "
      "footer footer footer";
  }
  • ์œ„์˜ ์˜ˆ์‹œ์ฒ˜๋Ÿผ ๊ฐ์ž ์ฐจ์ง€ํ•˜๋Š” ์…€์˜ ๊ฐœ์ˆ˜๋งŒํผ ํ•ด๋‹น ์œ„์น˜์— ์ด๋ฆ„์„ ์ ์–ด์ค€๋‹ค.
  • ๊ฐ ์…€๋งˆ๋‹ค ๊ณต๋ฐฑ์„ ํ•˜๋‚˜์”ฉ ๋„ฃ์–ด ๊ตฌ๋ถ„
    • header : ์ฒซ ๋ฒˆ์งธ row์—์„œ 3๊ฐœ์˜ column์„ ์ฐจ์ง€
      => ๋งจ ์œ„์— 3๋ฒˆ ์ž‘์„ฑ
    • ๋นˆ์นธ : ๋งˆ์นจํ‘œ๋‚˜ none์„ ์‚ฌ์šฉ, ๋งˆ์นจํ‘œ๋Š” ์—ฌ๋Ÿฌ๊ฐœ๋ฅผ ์จ๋„ ์ƒ๊ด€ ์—†๋‹ค.
  • ๊ฐ ์˜์—ญ์˜ ์ด๋ฆ„ ๋งค์นญ ๋ฐฉ๋ฒ•
    => ํ•ด๋‹น ์•„์ดํ…œ ์š”์†Œ์— grid-area ์†์„ฑ์œผ๋กœ ์ด๋ฆ„ ์ง€์ •
    => ์ด๋ฆ„ ๊ฐ’์— ๋”ฐ์˜ดํ‘œ๊ฐ€ ์—†๋Š” ๊ฒƒ ์ฃผ์˜
  .header { grid-area: header; }
  .sidebar-a { grid-area: a; }
  .main-content { grid-area: main; }
  .sidebar-b { grid-area: b; }
  .footer { grid-area: footer; }

grid๋ฅผ ์ด์šฉํ•œ Holy Grail Layout

์†Œ์Šค์ฝ”๋“œ ๋ณด๊ธฐ

์œ„์˜ ๋ ˆ์ด์•„์›ƒ์„ ๊ตฌํ˜„ํ•  ๋•Œ ๊ฐ ๊ตฌ์—ญ์˜ ์ด๋ฆ„์„ ๊ฐ ํ•ด๋‹น ์š”์†Œ์— ::before๋ฅผ ์ด์šฉํ•ด์„œ ์ž‘์„ฑํ•จ
=> ::before์š”์†Œ๊ฐ€ ๋กœ๊ณ ์™€ ๋ฉ”๋‰ด๋ฅผ ๋ฎ์–ด๋ฒ„๋ฆผ


grid๋ฅผ ์ด์šฉํ•œ 3D Grid Perspective

์†Œ์Šค์ฝ”๋“œ ๋ณด๊ธฐ


+ flex๋ฅผ ์ด์šฉํ•œ 3D Grid Perspective

์†Œ์Šค์ฝ”๋“œ ๋ณด๊ธฐ

z-index๊ฐ€ ๋™์ž‘ํ•˜์ง€์•Š๋Š” ์ด์œ  4๊ฐ€์ง€ (๊ทธ๋ฆฌ๊ณ  ๊ณ ์น˜๋Š” ๋ฐฉ๋ฒ•)

  • z-index๊ฐ€ ์ ์šฉ๋œ ์š”์†Œ์— transform์„ ์„ค์ •ํ•˜๋ฉด z-index: 0์ธ ๊ฒƒ์ฒ˜๋Ÿผ ๋™์ž‘

stacking context


๐Ÿ“Ž ์ฝ”๋“œ ๋ฆฌ๋ทฐ - Weniv ๋กœ๊ทธ์ธ ํ™”๋ฉด

๊ฐœ๋ฐœ์ž ๋„๊ตฌ์—์„œ Add class / Remove class ํ™•์ธํ•˜๋Š” ๋ฐฉ๋ฒ•

  • ๊ฐœ๋ฐœ์ž ๋„๊ตฌ > .cls > ์ฒดํฌ๋ฐ•์Šค click!

<fieldset>์€ <form> ๋ฐ”๊นฅ์— ์œ„์น˜ํ•  ์ˆ˜ ์žˆ๋‹ค.

MDN - fieldset

  • <fieldset> : HTML <form> ์•ˆ์—์„œ ๊ทธ๋ฃน์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๊ณ , <legend>๋กœ ๊ทธ๋ฃน์˜ ์„ค๋ช…์„ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ๋‹ค.
    • ํŽ˜์ด์ง€ ๋‚ด <form>์˜ id๋ฅผ ๋ฐ›์„ ์ˆ˜ ์žˆ๋Š” form ํŠน์„ฑ์„ ๊ฐ€์ง„๋‹ค.
      => <fieldset>๊ณผ ์—ฐ๊ฒฐํ•  <form>์˜ id
      => <fieldset>์ด ํ•ด๋‹น <form> ์•ˆ์— ์œ„์น˜ํ•˜์ง€ ์•Š์•„๋„ ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ๋‹ค.
    • disabled ํŠน์„ฑ : ๋ชจ๋“  ํ•˜์œ„ ์š”์†Œ๋“ค์„ ๋น„ํ™œ์„ฑํ™”, <form>์„ submitํ•  ๋•Œ ๋ฐ์ดํ„ฐ์— ํฌํ•จ๋˜์ง€ ์•Š์Œ

<img>์˜ ์ด์ƒํ•œ ์—ฌ๋ฐฑ

stack overflow - <img> extra space

  • <img>๋Š” inline ์š”์†Œ๋กœ ๋ฌธ์ž์™€ ๋™์ผํ•œ ๋ผ์ธ์— ๋ฐฐ์น˜
    => <img>๋Š” vertical-align: baseline์™€ ๋™์ผํ•œ ๋ผ์ธ์— ์œ„์น˜ํ•˜์—ฌ 1~3px์˜ ์•„์ฃผ ์ž‘์€ ์—ฌ๋ฐฑ์ด ์žˆ๋‹ค.
  • ์—ฌ๋ฐฑ ์—†์• ๋Š” ๋ฐฉ๋ฒ•
    • <img>์— display: block์„ ์„ ์–ธ
    • <img>์— vertical-align: bottom; / vertical-align: top; / vertical-align: middle;์„ ์„ ์–ธ

๐Ÿ“Ž ํ•จ๊ป˜ ์ฝ”๋“œ ์ž‘์„ฑ - Weniv ๋กœ๊ทธ์ธ ํ™”๋ฉด

๋ชจ๋“ˆํ™”

  • ๋ชจ๋“ˆ๋งŒ ๋“ค์–ด์žˆ๋Š” ํŽ˜์ด์ง€๋ฅผ ๋งŒ๋“ค์–ด์„œ ํ•„์š”ํ•œ ๊ณณ์— Ctrl+C / Ctrl+V
    => ์žฌ์‚ฌ์šฉ์„ฑ์„ ์œ„ํ•œ html, css ์ž‘์„ฑ

์†Œ์Šค์ฝ”๋“œ ๋ณด๊ธฐ


๋งˆ๋ฌด๋ฆฌ

  • grid๋Š” ์•„์ง ํ—ท๊ฐˆ๋ฆฐ๋‹ค. ๋งŽ์ด ์—ฐ์Šตํ•ด๋ด์•ผ์ง€โŒจ
  • ์ถ•ํ•˜ํ•  ์ผ์ด ์ƒ๊ฒผ๋‹ค! ์Šคํ”„๋ฆฐํŠธ ํŒ€์˜ ํ•œ ํŒ€์›์ด ๐ŸŒธ์ถ•! ์ทจ์ง๐ŸŒธ
    => ๋ฉ์‹ค๋ฉ์‹ค๐ŸŽท ์•ž์œผ๋กœ ์ข‹์€ ์ผ๋งŒ ๊ฐ€๋“ํ•˜์‹œ๊ธธ!

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