๐Ÿ”ฅFinal Project Day 1 - Flexbox

๐Ÿ์ผ๋ฐ˜์ ์ธ Display ์†์„ฑ ๋˜์งš๊ธฐ

display์˜ ๋Œ€ํ‘œ ์†์„ฑ ์„ธ ๊ฐ€์ง€๋Š” block, inline-block, inline ์ด ์žˆ๋‹ค.

block ์€ ๋„ˆ๋น„์™€ ๋†’์ด๊ฐ€ ์žˆ์œผ๋ฉฐ, ์˜†์—๋Š” ์–ด๋– ํ•œ ๊ฒƒ๋„ ์˜†์œผ๋กœ ๋ถ™์–ด ์˜ฌ ์ˆ˜ ์—†๋‹ค.

inline block ์€ block ์†์„ฑ์„ (๋„ˆ๋น„์™€ ๋†’์ด๊ฐ€ ์žˆ๋Š” ์†์„ฑ) ์œ ์ง€ํ•˜๊ฒŒ ํ•ด์ฃผ๋ฉฐ ์ผ์ง์„ ์œผ๋กœ ์˜†์œผ๋กœ ๋ถ™์–ด ์˜ฌ ์ˆ˜ ์žˆ๊ฒŒ ํ•œ๋‹ค.

inline ์€ box ๊ฐ€ ์•„๋‹ˆ๋‹ค. ๋„ˆ๋น„์™€ ๋†’์ด๊ฐ€ ์—†๋‹ค. ์œ ๋™์ ์ด๊ธฐ ๋•Œ๋ฌธ์ด๋ผ ํ•œ๋‹ค. ๋”ฑ ์ž๊ธฐ ํฌ๊ธฐ๋งŒํผ์˜ ๊ณต๊ฐ„์„ ๊ฐ€์ง„๋‹ค. ๋Œ€ํ‘œ์ ์ธ ์˜ˆ๊ฐ€ ๋ฐ”๋กœ text.

๊ฒฐ๋ก  : ์Œฉ ๋งˆ์ง„ ์งœ๋งž์ถ”๊ธฐ๋กœ ์ค‘๊ฐ„์„ ๋งž์ถ”๊ธฐ ์œ„ํ•ด ๋งˆ์ง„์„ ์กฐ์ ˆํ•˜์ง€๋งŒ, ๊ทธ๋งˆ์ €๋„ ๋ธŒ๋ผ์šฐ์ €์˜ ํฌ๊ธฐ๋ฅผ ์กฐ์ ˆํ•˜๋ฉด ๋ชจ๋“  ๋ ˆ์ด์•„์›ƒ์ด ๋‹ค ์–ด๊ธ‹๋‚˜์ง„๋‹ค!

Flex ๋ฅผ ๋ฐฐ์šฐ๋Š” ์ด์œ ์ด๋‹ค!

๐ŸFlexbox ์˜ ๊ทœ์น™

flexbox test

ํ•ญ์ƒ ๋ถ™์–ด์žˆ๋Š” ๋ถ€๋ชจ (father, wrapper container) ๊ฐ€ ์ž์‹ (children) ์˜ ์œ„์น˜๋ฅผ ์›€์ง์ผ ์ˆ˜ ์žˆ๋‹ค.

  1. flexbox ์—์„œ ๋ญ”๊ฐ€๋ฅผ ์›€์ง์ด๊ณ ์ž ํ•  ๋•Œ๋Š” children ๊ณผ ์ด์•ผ๊ธฐํ•˜์ง€ ์•Š๋Š”๋‹ค.
  2. flexbox container (์ฆ‰, ๋ถ€๋ชจ ์ปจํ…Œ์ด๋„ˆ) ๋ฅผ ๋งŒ๋“ค์–ด์•ผ ํ•œ๋‹ค.

๐ŸFlex-direction ์— ๋”ฐ๋ฅธ main axis, cross axis ์ดํ•ดํ•˜๊ธฐ

์ง„์งœ ์„ค๋ช… ์ž˜ ๋˜์–ด ์žˆ๋Š” url ์ด๋‹ค. ๊ทธ๋ฆผ์ด ์•„๋ž˜ ์˜ˆ์‹œ์ฒ˜๋Ÿผ ์•„์ฃผ ์ข‹๋‹ค.

https://studiomeal.com/archives/197

์š”์•ฝํ•˜์ž๋ฉด,

  • main axis ๋ฐฉํ–ฅ์œผ๋กœ ์•„์ดํ…œ์„ ์˜ฎ๊ธธ ๋•, justify-content ๋ฅผ ์‚ฌ์šฉ
  • cross axis ๋ฐฉํ–ฅ์œผ๋กœ ์•„์ดํ…œ์„ ์˜ฎ๊ธธ ๋•, align-items ๋ฅผ ์‚ฌ์šฉ

flex-direction: row (default) ์ด๋ฉด,

main axis ๋Š” ๊ฐ€๋กœ (horizontal) ์ด๋ฉฐ cross axis ๋Š” ์„ธ๋กœ (vertical) ์ด๋‹ค.

flex-direction: column ์ด๋ฉด,

main axis ๋Š” ์„ธ๋กœ (vertical) ์ด๋ฉฐ cross axis ๋Š” ๊ฐ€๋กœ (horizontal) ์ด๋‹ค.

.box2 {
  width: 200px;
  height: 200px;
  background: goldenrod;
  font-size: 50px;
  /* box2 ์˜ (์ง๊ณ„)๋ถ€๋ชจ๊ฐ€ flex container ๊ฐ€ ๋œ๋‹ค. */
}

.container {
  display: flex;
  flex-direction: row;
  /* display: flex ๋ฅผ ํ†ตํ•ด ๋ฐ”๋กœ ์œ„์— ํ–ˆ๋˜ inline-block ๊ณผ ๊ฐ™์€ ๊ฒฐ๊ณผ๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ๋‹ค. */
  /* ? Main Axis */
  justify-content: space-around;
  /* ? Cross Axis */
  /* align-items: center; */
  /* stretch ๋ฅผ ์“ฐ๊ณ  ์ž์‹ box ์˜ ๋†’์ด๋ฅผ ์—†์• ๋ฉด ๋ถ€๋ชจ ํฌ๊ธฐ์˜ ๋†’์ด๋งŒํผ stretch ๋œ๋‹ค. */
  /* ๊ธฐ๋ณธ default ๋Š” flex-start, flex-end ๋ฅผ ์จ๋ณผ ์ˆ˜ ์žˆ๋‹ค. */
  height: 100vh;
}

๐Ÿvh(viewport height), vw(viewport width)

๋ฐ˜์‘ํ˜• ์‚ฌ์ดํŠธ ์ œ์ž‘์—์„œ vh(viewport height), vw(viewport width) ๊ฐ€ ๋งค์šฐ ํŽธ๋ฆฌํ•˜๋‹ค๊ณ  ํ•จ.

% ๋ฅผ ์“ฐ๋Š” ๊ฒƒ๊ณผ์˜ ์ฐจ์ด๋Š”,

์ž์‹ ์š”์†Œ์— %๋ฅผ ์“ด๋‹ค๋ฉด ์ž์‹ ์š”์†Œ์˜ ํญ๊ณผ ๋†’์ด๋Š” ๋ถ€๋ชจ ์š”์†Œ์˜ ํญ๊ณผ ๋†’์ด์— ๊ฒฐ์ •๋˜์ง€๋งŒ,

vh ์™€ vw ๋Š” ๋ธŒ๋ผ์šฐ์ €์˜ ๋†’์ด์™€ ๋ธŒ๋ผ์šฐ์ €์˜ ๋„ˆ๋น„์— ๊ทผ๊ฑฐํ•œ๋‹ค. 1vh ๋Š” viewport ๋†’์ด์˜ 1% ์™€ ๊ฐ™๋‹ค.

๐Ÿalign-self ์™€ order ์†์„ฑ

align-self ๋Š” align-items ์ฒ˜๋Ÿผ ํ–‰๋™ํ•œ๋‹ค.

๋‹ค์‹œ ํ•œ๋ฒˆ, align-items ๋Š” cross axis ๋ฐฉํ–ฅ์— ์žˆ๋Š” item ์˜ ์œ„์น˜๋ฅผ ๋ฐ”๊พผ๋‹ค.

โฌ์ด ๋ชจ๋“  flex ๋ฅผ ์“ฐ๋Š” ์ „์ œ ์กฐ๊ฑด โฌ

father container ์˜ ๋†’์ด (height) ๊ฐ€ ์žˆ์–ด์•ผ ํ•œ๋‹ค!

html ์„ ๋ณ€๊ฒฝํ•˜์ง€๋Š” ์•Š๊ณ  ์•„์ดํ…œ์˜ ์ˆœ์„œ๋ฅผ ๋ฐ”๊พธ๊ณ  ์‹ถ์„ ๋•Œ, order ๋ฅผ ์“ด๋‹ค๊ณ  ํ•œ๋‹ค.

order ์˜ ๊ธฐ๋ณธ ๋””ํดํŠธ ๋ฐธ๋ฅ˜๋Š” 0 ์ด๊ณ  ์ˆซ์ž๋ฅผ ์˜ฌ๋ฆด ์ˆ˜๋ก ์™ผ์ชฝ์—์„œ ์˜ค๋ฅธ์ชฝ์œผ๋กœ ์ด๋™ํ•˜๋ฉฐ ์ˆซ์ž๊ฐ€ ํด ์ˆ˜๋ก ์ˆซ์ž๊ฐ€ ์ž‘์€ order ๋ณด๋‹ค ๋” ์˜ค๋ฅธ์ชฝ์œผ๋กœ ์œ„์น˜ํ•œ๋‹ค.


Written by@[DotoriMook]
ํ”„๋ก ํŠธ์—”๋“œ ์ฃผ๋‹ˆ์–ด ๊ฐœ๋ฐœ์ž ๋„ํ† ๋ฆฌ๋ฌต์˜ ๊ธฐ์ˆ ๊ฐœ๋ฐœ ๋ธ”๋กœ๊ทธ ์ž…๋‹ˆ๋‹ค.

GitHubMediumTwitterFacebook