CSS Making Layouts (Display)

Oh Joonยท2020๋…„ 12์›” 14์ผ
0

Roadmap CSS

๋ชฉ๋ก ๋ณด๊ธฐ
5/10
post-thumbnail

๐ŸŽˆ Display?

display CSS ์†์„ฑ์€ ๋ธ”๋ก๊ณผ ์ธ๋ผ์ธ ์š”์†Œ ์ค‘ ์–ด๋Š ์ชฝ์œผ๋กœ ์ฒ˜๋ฆฌํ• ์ง€, flow, grid, flex์™€ ๊ฐ™์ด ์ž์‹ ์š”์†Œ๋ฅผ ๋ฐฐ์น˜ํ•  ๋•Œ ์‚ฌ์šฉํ•  ๋ ˆ์ด์•„์›ƒ์„ ์„ค์ •ํ•œ๋‹ค.

๋จผ์ € ์ธ๋ผ์ธ ์—˜๋ฆฌ๋จผํŠธ์™€ ๋ธ”๋Ÿญ๋ ˆ๋ฒจ ์—˜๋ฆฌ๋จผํŠธ์˜ ์ฐจ์ด์ ๋ถ€ํ„ฐ ์•Œ์•„๋ณด๋ฉด์„œ display๋ฅผ ์„ค๋ช…ํ•ด๋ณด์ž.


๐ŸŸฆ inline VS block level

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <style>
        h1,a{border:1px solid red;}
    </style>
  </head>
  <body>
    <h1>Hello world</h1>
    ์•ˆ๋…•ํ•˜์„ธ์š”. <a href="https://opentutorials.org">์ƒํ™œ์ฝ”๋”ฉ</a>์ž…๋‹ˆ๋‹ค.
  </body>
</html>

h1ํƒœ๊ทธ๋Š” ํ™”๋ฉด ์ „์ฒด๋ฅผ ์“ฐ๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค. aํƒœ๊ทธ๋Š” ์ž๊ธฐ ํฌ๊ธฐ๋งŒํผ ๊ณต๊ฐ„์„ ์ฐจ์ง€ํ•˜๊ณ  ์žˆ๋‹ค.

aํƒœ๊ทธ์ฒ˜๋Ÿผ ์ž์‹ ๊ณผ ์ž์‹ ์„ ๋‘˜๋Ÿฌ์‹ธ๊ณ  ์žˆ๋Š” ๋‹ค๋ฅธ ํ…์ŠคํŠธ, ์ •๋ณปใ„น๊ณผ ํ•˜๋‚˜์ด ๊ฐ™์€ ์ค„์— ์œ„์น˜ํ•˜๋Š” ํ˜•ํƒœ์˜ element๋ฅผ inline element๋ผ๊ณ  ํ•œ๋‹ค.

h1ํƒœ๊ทธ์™€ ๊ฐ™์ด ์ž๊ธฐ ํ˜ผ์ž์„œ ํ™”๋ฉด ์ „์ฒด๋ฅผ ๋‹ค ์“ฐ๋Š” element๋ฅผ block level element๋ผ๊ณ  ํ•œ๋‹ค.

HTML์˜ ๋งŽ์€ ํƒœ๊ทธ๋“ค ์ค‘์—์„œ๋Š” inline, block level ๊ฐ™์ด ๊ณ ์œ ํ•œ ํŠน์„ฑ์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค.

ํ•˜์ง€๋งŒ inline์„ block level๋กœ, block level์„ inline์œผ๋กœ ์–ผ๋งˆ๋“ ์ง€ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ๋‹ค.

  h1{display: inline;}
  a{display:block;}

์œ„ ์ฝ”๋“œ๋ฅผ style์†์„ฑ์— ์ถ”๊ฐ€ํ•˜๊ฒŒ ๋˜๋ฉด ์œ„ ๊ทธ๋ฆผ๊ณผ ๊ฐ™์ด ๋ณ€๊ฒฝ๋œ ๋ชจ์Šต์„ ๋ฐœ๊ฒฌํ•  ์ˆ˜ ์žˆ๋‹ค.


๐ŸŸฉ display ์†์„ฑ

์ž์„ธํžˆ ์•Œ์•„๋ณด๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋“œ๋ฆผ์ฝ”๋”ฉ CSS ๋ ˆ์ด์•„์›ƒ ์ •๋ฆฌ ์˜์ƒ์„ ์ฐธ๊ณ ํ•˜์ž.

  • display:inline์€ ์ปจํ…์ธ  ์ž์ฒด๋งŒ์„ ๊พธ๋ฉฐ์ค€๋‹ค. css์—์„œ ์ง€์ •ํ•œ ๋ฐ•์Šค์˜ width๋‚˜ height๋ฅผ ์ •์˜ํ•œ ๊ฒƒ๋“ค์„ ๋ฌด์‹œํ•˜๊ณ  ์•ˆ์— ๋“ค์–ด์žˆ๋Š” ์ปจํ…์ธ  ํฌ๊ธฐ๋งŒํผ ๋ณ€๊ฒฝ๋œ๋‹ค.

  • display:inline-block์€ ํ•œ ์ค„์— ์ •๋ ฌ๋˜์ง€๋งŒ inline๊ณผ ๋ฐ˜๋Œ€๋กœ block ๋‹จ์œ„๋กœ ๋ณ€๊ฒฝ๋˜์–ด ์•ˆ์— ์ปจํ…์ธ ์˜ ํฌ๊ธฐ์— ์ƒ๊ด€์—†์ด css์—์„œ ์ง€์ •ํ•œ ๋ฐ•์Šค์˜ width๋‚˜ height๋ฅผ ์ •์˜ํ•œ ๊ฒƒ๋“ค์— ๋งž์ถฐ์„œ ํ‘œ๊ธฐ๋œ๋‹ค.

  • display:block์€ inline-block๊ณผ ๊ฐ™์ด ์ƒ์ž์ธ๋ฐ ํ•œ ์ค„ ๋‹น ํ•˜๋‚˜์”ฉ ํ‘œ๊ธฐ๋œ๋‹ค.


๐ŸŸซ ์ž์„ธํžˆ

display์†์„ฑ์€ ํ‚ค์›Œ๋“œ ๊ฐ’์„ ์‚ฌ์šฉํ•ด ์ง€์ •ํ•œ๋‹ค. ํ‚ค์›Œ๋“œ๋Š” 5๊ฐœ์˜ ์นดํ…Œ๊ณ ๋ฆฌ๋กœ ๋ถ„๋ฅ˜๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค.

MDN Display์—์„œ ๋” ์ž์„ธํžˆ ์•Œ์•„๋ณด์ž.

1) <display-outside> : element์˜ ์™ธ๋ถ€ ๋””์Šคํ”Œ๋ ˆ์ด ์œ ํ˜•์„ ์„ค์ •ํ•œ๋‹ค.

2) <display-inside> : element์˜ ๋‚ด๋ถ€ ๋””์Šคํ”Œ๋ ˆ์ด ์œ ํ˜•์„ ์„ค์ •ํ•œ๋‹ค.

3) <display-listitem> : element๊ฐ€ ์ฝ˜ํ…์ธ  ๋ธ”๋ก ๋ฐ•์Šค๋ฅผ ์ƒ์„ฑํ•˜๊ณ , ๋ฆฌ์ŠคํŠธ ์•„์ดํ…œ ์ธ๋ผ์ธ ๋ฐ•์Šค๋ฅผ ๋ถ„๋ฆฌํ•œ๋‹ค.

4) <display-internal> : table, ruby ๋“ฑ ์ผ๋ถ€ ๋ ˆ์ด์•„์›ƒ ๋ชจ๋ธ์€ ๋ณต์žกํ•œ ๋‚ด๋ถ€ ๊ตฌ์กฐ๋ฅผ ๊ฐ€์ง€๋ฉฐ, ์ž์‹๊ณผ ์ž์†์„ ์ฑ„์›Œ๋„ฃ๋Š” ์—ฌ๋Ÿฌ๊ฐ€์ง€ ์—ญํ• ์„ ์ง€๋‹Œ๋‹ค.

5) <display-box> : element์˜ ๋””์Šคํ”Œ๋ ˆ์ด ๋ฐ•์Šค๋ฅผ ์ƒ์„ฑํ•œ๋‹ค.


์ฐธ์กฐ

MDN Display
๋“œ๋ฆผ์ฝ”๋”ฉ CSS ๋ ˆ์ด์•„์›ƒ ์ •๋ฆฌ
์ƒํ™œ์ฝ”๋”ฉ CSS ์ธ๋ผ์ธ VS ๋ธ”๋ก๋ ˆ๋ฒจ

profile
Front-end developer

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