๐Ÿ’ช CSS. Layout, Display, Position w/ ZeroCho TV

[meษช]ยท2021๋…„ 8์›” 5์ผ
1

1-1. Today I Learned. HTML, CSS

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

๐Ÿ“Œ ๊ฐœ๋ฐœ ๊ณต๋ถ€ 1๊ฐœ์›” ์ฐจ์ธ to-be ๊ฐœ๋ฐœ์ž์˜ ์ž์Šต ๋ธ”๋กœ๊ทธ๐Ÿ™‚๏พ Aug 2 ~ 6, 2021

Assignment #2

์งˆ๋ฌธ๊ณผ ๋‹ต๋ณ€ intro

Q. 1~3๋ฒˆ์— ๋Œ€ํ•œ ๋‚ด์šฉ์„ ์ •๋ฆฌํ•ด๋ณด์ž.

  1. position์˜ ์†์„ฑ (relative, absolute, fixed) ์— ๋Œ€ํ•ด์„œ
  2. inline, inline-block, block ์— ๋Œ€ํ•ด์„œ
  3. float์— ๋Œ€ํ•ด์„œ

A. HTML์˜ semantic element์— ์ด์–ด ๋‘ ๋ฒˆ์งธ๋กœ ์ •๋ฆฌํ•ด์•ผ ํ•˜๋Š” ๋‚ด์šฉ์€ CSS์˜ layout.
๏พ ๏พ  HTML์ด web site์— ๋“ค์–ด๊ฐ€๋Š” ๋‚ด์šฉ๊ณผ ๋Œ€๋žต์ ์ธ ๊ตฌ์กฐ๋ผ๊ณ  ํ–ˆ์„ ๋•Œ, ์ด ๋‚ด์šฉ์„ ์ ์ ˆํ•˜๊ฒŒ ๋ฐฐ์น˜ํ•˜๊ฒŒ ํ•ด์ฃผ๋Š” ๊ฒƒ์ด CSS์ด๋ฉฐ, ๊ทธ ๊ณจ์ž๊ฐ€ layout์ด๋‹ค.
๏พ ๏พ  ์ด๋ ‡๊ฒŒ ๋‚ด์šฉ์„ ๋‹ด์€ ์ผ์ข…์˜ ๊ณต๊ฐ„์„ web ์ƒ์— ๋งˆ์น˜ ์ขŒํ‘œ์ฒ˜๋Ÿผ ์œ„์น˜์‹œ์ผœ์•ผ ํ•˜๋Š”๋ฐ, ๊ทธ ์†์„ฑ๊ณผ ๋ฐฉ๋ฒ•์ด ๋‚ด๊ฐ€ ํ•™์Šตํ•ด์•ผ ํ•˜๋Š” ๋‚ด์šฉ์ด๋‹ค.

layout

web page์˜ layout์€ ์–ด๋–ค ์ •๋ณด๋ฅผ page ์–ด๋””์— ๋ฐฐ์น˜ํ•˜๋Š๋ƒ์— ๊ด€ํ•œ ๋ฌธ์ œ์ด๋‹ค.
์ˆ˜๋งŽ์€ ๋ฌธ์„œ์—์„œ ๊ณตํ†ต์ ์œผ๋กœ 'CSS์˜ layout์€ ๊ฒฝํ—˜์„ ํ†ตํ•ด ๋ฐฐ์šฐ๋Š” ๊ฒƒ์ด๋‹ค.'๋ผ๊ณ  ํ•  ์ •๋„๋กœ layout ์„ค๊ณ„์— ๊ณต์‹์ด๋‚˜ ์ •๋‹ต์ด ์—†๋‹ค๊ณ  ํ•œ๋‹ค.

position

  • static : position์˜ default ๊ฐ’์ด์–ด์„œ ๋”ฐ๋กœ ์ ์–ด์ฃผ์ง€ ์•Š์•„๋„ static ์ƒํƒœ์ž„
  • relative : ์˜ฎ๊ธฐ๊ธฐ ์ „์˜ ์œ„์น˜์™€ ๋น„๊ตํ•œ ๊ฐ’์œผ๋กœ์„œ ์ขŒํ‘œ๋กœ ์˜ˆ๋ฅผ ๋“ค๋ฉด ์ด์ „ ์œ„์น˜๊ฐ€ (1, 1)์ธ ๊ณณ์—์„œ (4, 3)๋งŒํผ ์ด๋™ํ•˜๋ฉด ํ˜„์žฌ ์œ„์น˜๊ฐ€ (5, 4)์ด์ง€๋งŒ (5, 5)์—์„œ (4, 3)๋งŒํผ ์ด๋™ํ•˜๋ฉด ํ˜„์žฌ ์œ„์น˜๊ฐ€ (9, 8)์ธ ๊ฒƒ์— ๋น„์œ ํ•  ์ˆ˜ ์žˆ์Œ
  • absolute : view port์— ์ƒ๋Œ€์ ์œผ๋กœ ์œ„์น˜๊ฐ€ ์ง€์ •๋˜๋Š” ๊ฒŒ ์•„๋‹ˆ๋ผ ๊ฐ€์žฅ ๊ฐ€๊นŒ์šด ๊ณณ์— ์œ„์น˜ํ•œ ๋ถ€๋ชจ(์กฐ์ƒ) element์— ์ƒ๋Œ€์ ์œผ๋กœ ์œ„์น˜๊ฐ€ ์ง€์ •๋จ (์ฃผ๋กœ ๋ถ€๋ชจ์— relative๋ฅผ ๋ถ€์—ฌํ•จ)
    ๏พ ๏พ ๏พ ๏พ ๏พ ๏พ ๏พ ๏พ ๏พ ๏พ  ๋ถ€๋ชจ tag๊ฐ€ ๋”ฐ๋กœ ์žˆ์œผ๋ฉด ๋ถ€๋ชจ tag์˜ ๊ณต๊ฐ„ ๋‚ด์—์„œ๋งŒ ์ด๋™ํ•˜๋ฉฐ, ๋ถ€๋ชจ tag๊ฐ€ ์—†์œผ๋ฉด body tag ์•ˆ์—์„œ ์ด๋™ํ•จ
    ๏พ ๏พ ๏พ ๏พ ๏พ ๏พ ๏พ ๏พ ๏พ ๏พ  ์˜ˆ๋ฅผ ๋“ค์–ด ```position: absolute; right: 0``` ์œผ๋กœ ์„ค์ •ํ•  ๋•Œ, ๋ถ€๋ชจ tag์— ๊ณต๊ฐ„์ด ์žˆ๋‹ค๋ฉด ๊ทธ size ๋‚ด์—์„œ ๊ฐ€์žฅ ์˜ค๋ฅธ์ชฝ์— ์œ„์น˜ํ•  ๊ฒƒ์ด๊ณ , ๋ถ€๋ชจ tag๊ฐ€ ์—†๋‹ค๋ฉด body tag์˜ ๋งจ ์˜ค๋ฅธ์ชฝ, ์ฆ‰ site์˜ ๊ฐ€์žฅ ์˜ค๋ฅธ์ชฝ์— ์œ„์น˜ํ•จ
    ๏พ ๏พ ๏พ ๏พ ๏พ ๏พ ๏พ ๏พ ๏พ ๏พ ๏พ absolute ๊ฐ’์„ ๊ฐ€์ง€๋ฉด ๋‚ด์šฉ์˜ ํฌ๊ธฐ๋งŒํผ๋งŒ ๊ฐ€๋กœ ํฌ๊ธฐ๊ฐ€ ๋จ
  • fixed : ์˜ฎ๊ธฐ๊ธฐ ์ „์˜ ์œ„์น˜๋‚˜ ๋ถ€๋ชจ tag์™€ ๊ด€๊ณ„ ์—†์ด web site ํ™”๋ฉด์„ ๊ธฐ์ค€์œผ๋กœ ์ž๋ฆฌ๋ฅผ ์žก๋Š”๋ฐ, ๋‹ค๋ฅธ tag์™€ ๋‹ฌ๋ฆฌ mouse๋ฅผ scrollํ•ด๋„ ๋™์ผํ•œ ์ž๋ฆฌ๋ฅผ ์œ ์ง€ํ•œ๋‹ค.
  • (+) ์œ„์น˜๋ฅผ ์ด๋™์‹œํ‚ฌ ๋•Œ top, right, bottom, left๋ฅผ ์“ฐ๋ฉด ํŽธํ•œ๋ฐ, ์ด๋“ค ๊ฐ’์€ position์ด๋ผ๋Š” property๊ฐ€ ์žˆ์–ด์•ผ ์‚ฌ์šฉ ๊ฐ€๋Šฅ

image

display

display property๋Š” flex, grid ๋“ฑ์˜ ๊ฐ’์„ ์ทจํ•จ
  • inline-block : ๋‚ด์šฉ์— ๊ตญํ•œ๋œ ๊ณต๊ฐ„ (์„ธ ๋ฒˆ clickํ•˜๋ฉด ๊ทธ ๊ณต๊ฐ„์„ dragํ•œ ๊ฒƒ์ฒ˜๋Ÿผ ์ด ๋‚ด์šฉ๋งŒ block๋จ)
  • block : ๋‚ด์šฉ์„ ํฌํ•จํ•œ ํ•œ ํ–‰ ์ „์ฒด ๊ณต๊ฐ„ (์„ธ ๋ฒˆ clickํ•˜๋ฉด ํ–‰ ์ „์ฒด๋ฅผ dragํ•œ ๊ฒƒ์ฒ˜๋Ÿผ ํ–‰ ์ „์ฒด๊ฐ€ block๋จ)
  • float : inline-block ์„ฑ์งˆ์„ ๊ฐ–๋„๋ก ํ•˜๋Š” property ์ค‘ ํ•˜๋‚˜๋กœ, image๊ฐ™์€ container๊ฐ€ ์žˆ์„ ๋•Œ ๋‚˜๋จธ์ง€ ๋‚ด์šฉ์„ ์–ด๋–ป๊ฒŒ ๋ฐฐ์น˜ํ•  ๊ฒƒ์ธ์ง€ ๊ฒฐ์ •ํ•  ์ˆ˜ ์žˆ๋Š” ์†์„ฑ
    ๏พ ๏พ ๏พ ๏พ ๏พ ๏พ ๋„ˆ๋ฌด ๋ถˆํŽธํ•ด์„œ ์ด์ œ๋Š” flex๋กœ layout์„ ์žก๋Š”๋‹ค๋Š”๋ฐ, ๋‚˜๋Š” ๊ฐœ๋…๋„ ๋œ ์žกํ˜€์žˆ๊ณ  ์ œ๋Œ€๋กœ ์จ๋ณธ ์ ๋„ ์—†์–ด์„œ ๋ญ๊ฐ€ ๋ถˆํŽธํ•œ์ง€์กฐ์ฐจ ๊ฐ์ด ์ž˜ ์žกํžˆ์ง€ ์•Š์Œ (๊ทธ๋Ÿผ์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  flex์˜ ๊ฐ„ํŽธํ•จ์€ ๋‚˜๋กœ์„œ๋„ ์‹ ์„ธ๊ณ„...!)
  • (+) ```display: none;```์ด๋ผ๋Š” ๊ฐ’์„ ์ฃผ๋ฉด ํ™”๋ฉด์—์„œ ๋ณด์ด์ง€ ์•Š๊ณ  (ํ™”๋ฉด์—์„œ ์•„์˜ˆ ์—†๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ž„), ```visibility: hidden;```์€ ํ™”๋ฉด์— ๋ณด์ด์ง€ ์•Š์ง€๋งŒ ๊ณต๊ฐ„์€ ์ฐจ์ง€ํ•˜๋Š” ํŠน์ง•์ด ์žˆ๋Š”๋ฐ, ์ด๋Ÿฌํ•œ ๊ฐ’์€ JavaScript๋ฅผ ํ†ตํ•ด interactiveํ•œ ํ™”๋ฉด์„ ๊ตฌํ˜„ํ•  ๋•Œ ์“ฐ์ด๊ณ ๋Š” ํ•จ ex. ๋„ค์ด๋ฒ„ ๊ฒ€์ƒ‰์ฐฝ

MDN - Layout
Learn CSS Layout
box model ์„ค๋ช… ์ž๋ฃŒ

๐Ÿ™‡ the source of this content

ZeroCho TV
WeCode

profile
๋Š๋ ค๋„ ํ•  ๊ฑฐ์•ผ.......

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