[๐Ÿฆ TIL 8์ผ์ฐจ] 6์›” 2์ผ

๊ทผ๋“€ยท2023๋…„ 6์›” 1์ผ
1

ํ”„๋ก ํŠธ์—”๋“œ์Šค์ฟจ TIL

๋ชฉ๋ก ๋ณด๊ธฐ
8/30
post-thumbnail

1. ํƒ€์ดํฌ๊ทธ๋ž˜ํ”ผ

โœ”๏ธ font-size ๊ธ€์ž ํฌ๊ธฐ

  • h1์˜ ๊ฐ’์„ ์ž…๋ ฅํ•˜๊ณ  ๋‚˜์„œ ์—์ด์ „ํŠธ ์Šคํƒ€์ผ์—์„œ font-size๋ฅผ ํ™•์ธํ•ด๋ณด์ž
    ๋‚˜๋Š” ๊ฐ’์„ ์ค€ ์ ์ด ์—†๋Š” 2em ์ด๋ผ๊ณ  ๊ทธ๋ฆฌ๊ณ  px๊ฐ’์œผ๋กœ 32px์ด๋‹ค.
    ์ด ๋ง์€ 2em = 32px ์ด๋ผ๋Š” ๋œป์ด๊ณ  1em = 16px ์ด๋ผ๋Š” ๋œป์ด๋‹ค.
    ์ฆ‰, ๋ธŒ๋ผ์šฐ์ €์˜ ๊ธฐ๋ณธ ํฐํŠธ ์‚ฌ์ด์ฆˆ๋Š” 16px์ด๋ผ๋Š” ๋œป์ด๋‹ค.


โ‘  ์—ฐ์Šตํ•ด๋ณด์ž!

 <body style="font-size: 2em;">
  <h1 style="font-size: 2em;">Hello World</h1>
</body>

Q. h1์˜ ํฐํŠธ ์‚ฌ์ด์ฆˆ๋Š” ์–ผ๋งˆ์ธ๊ฐ€?
A. ๋ธŒ๋ผ์šฐ์ €์˜ ๊ธฐ๋ณธํฐํŠธ 16px 2em 2em = 64px ์ด๋‹ค.

โ‘ก ์—ฐ์Šตํ•ด๋ณด์ž!

<body>
  <h1 style="font-size: 0.625em;">Hello World</h1>
</body>

Q. h1์˜ ํฐํŠธ ์‚ฌ์ด์ฆˆ๋Š” ์–ผ๋งˆ์ธ๊ฐ€?
A. ๋ธŒ๋ผ์šฐ์ €์˜ ๊ธฐ๋ณธํฐํŠธ 16px * 0.625em = 10px ์ด๋‹ค.


* ๋˜ ๋‹ค๋ฅธ ๋‹จ์œ„๋ฅผ ์•Œ์•„๋ณด์ž.
rem ์ด๋ผ๋Š” ๊ฐ’์€ ๋ถ€๋ชจ์—๊ฒŒ ์ƒ์†๋ฐ›๊ธฐ ๋•Œ๋ฌธ์— ์ƒˆ๋กญ๊ฒŒ ๋“ฑ์žฅํ•œ ๋‹จ์œ„์ด๋‹ค.
๋งŒ์•ฝ h1 ํƒœ๊ทธ์— 1rem์„ ์ฃผ๊ฒŒ ๋œ๋‹ค๋ฉด ๋ถ€๋ชจ์š”์†Œ์ธ ๋ธŒ๋ผ์šฐ์ €์˜ ๊ธฐ๋ณธ๊ฐ’์ด 16px ์ด๊ธฐ ๋•Œ๋ฌธ์— 16px์ด๋‹ค.

โ‘ข ์—ฐ์Šตํ•ด๋ณด์ž!

<html style=font-size: 0.625em;">
<body style="font-size: 1.5rem;"">
  <h1 style="font-size: 3em;">Hello World</h1>
</body>

Q. h1์˜ ํฐํŠธ ์‚ฌ์ด์ฆˆ๋Š” ์–ผ๋งˆ์ธ๊ฐ€?
A. ๋ธŒ๋ผ์šฐ์ €์˜ ๊ธฐ๋ณธํฐํŠธ 16px 0.625em body 1.5em * h1 3em = 45px์ด๋‹ค.

= ํ—ท๊ฐˆ๋ฆฌ๋ฉด ๊ฐœ๋ฐœ์ž ํˆด์„ ํ™•์ธํ•ด๋ณด์ž!

โœ”๏ธ line-height ์ค„ ์‚ฌ์ด ๊ฐ„๊ฒฉ

  • px, em, rem์œผ๋กœ ๊ณ„์‚ฐํ•˜๋ฉด ๊ธ€์ž ํฌ๊ธฐ๋ณด๋‹ค ์ž‘๊ฒŒ ๊ณ„์‚ฐํ•  ์ˆ˜ ์žˆ๋‹ค.
    -> ๊ทธ๋ž˜์„œ ๋‹จ์œ„์—†์ด ์ˆซ์ž๋งŒ ์“ฐ๋Š” ๋„˜๋ฒ„๋‹จ์œ„๋กœ ์ง€์ •ํ•œ๋‹ค. ๋„“๊ฒŒ ์ง€์ •ํ•˜๊ฒŒ ๋˜๋ฉด ๊ฐ€๋…์„ฑ์ด ๋†’์•„์ง„๋‹ค. h1์—๊ฒŒ line-height : 1.5 ๋ผ๊ณ  ์ง€์ •์„ ํ•ด์ฃผ๋ฉด 48px ์ด ๋‚˜์˜จ๋‹ค. ์ด๋ฅผ ๊ณ„์‚ฐ์„ ํ•ด๋ณด๋ฉด ๊ธฐ๋ณธ h1 ์˜ line-height ๊ฐ’์€ 32px์ด๋‹ค. โš ๏ธ ์š”์†Œ๋งˆ๋‹ค ๋‹ค๋ฅด๋‹ˆ ์ฃผ์˜!

โ‘ฃ ์—ฐ์Šตํ•ด๋ณด์ž!

    *{font-size: 0.625rem;}
    h1{
      line-height: 1.5;}

Q. h1์˜ line-height๋Š” ์–ผ๋งˆ์ธ๊ฐ€?
A. ๋ธŒ๋ผ์šฐ์ €์˜ ๊ธฐ๋ณธํฐํŠธ 16px 0.625em line-height 1.5 = 15px์ด๋‹ค.

โ‘ค ์—ฐ์Šตํ•ด๋ณด์ž!

    * { font-size: 0.625rem;}

    body { font-size: 1.5rem;}

    h1 { font-size: 200%;
      	line-height: 1.5;}

Q. h1์˜ line-height๋Š” ์–ผ๋งˆ์ธ๊ฐ€?
A. font-size = ๋ธŒ๋ผ์šฐ์ €์˜ ๊ธฐ๋ณธํฐํŠธ 16px 0.625em 1.5rem 200%(2) = 30px;
line-heigh = ๊ธฐ๋ณธ ์ค„ ๊ฐ„๊ฒฉ 32px
1.5 = 45px;


โœ”๏ธ font-weight ๊ธ€์ž ๊ตต๊ธฐ

  • ํฐํŠธ์— ๋”ฐ๋ผ ๋ชจ๋“  ๊ตต๊ธฐ๊ฐ€ ์ง€์› ์•ˆ๋˜๋Š” ํฐํŠธ๋„ ์žˆ๋‹ค.

โœ”๏ธ font-family ํฐํŠธ ์ข…๋ฅ˜

  • font-family: 1์ˆœ์œ„, 2์ˆœ์œ„, 3์ˆœ์œ„, 4์ˆœ์œ„ ...
    -> ๋งˆ์ง€๋ง‰ ์ˆœ์œ„๋Š” ๊ทธ ํฐํŠธ ์ข…๋ฅ˜๋ฅผ ๋Œ€ํ‘œํ•˜๋Š” ๊ธ€๊ผด๊ตฐ์ด๋ผ๊ณ  ํ•œ๋‹ค.
    -> ๋ณดํ†ต 1์ˆœ์œ„, 2์ˆœ์œ„๋Š” ๋กœ์ปฌ ํฐํŠธ์ด๋‹ค.

  • ๊ฐ€์žฅ ๋งŽ์ด ์“ฐ์ธ ์Šคํƒ€์ผ
    serif ์‚์นจ์ด ์žˆ๋Š” ๊ธ€๊ผด
    sans-serif ๊ณ ๋”•์ฒด

  • ๋กœ์ปฌ ํฐํŠธ๊ฐ€ ๋‹ค ๋‹ค๋ฅด๊ธฐ ๋•Œ๋ฌธ์— ๊ทธ๋Ÿฐ ์ด์Šˆ๋ฅผ ๋ง‰๊ธฐ ์œ„ํ•ด ๋‚˜์˜จ ๊ฒƒ์ด ์›น ํฐํŠธ ์ด๋‹ค.
    ex) ๊ตฌ๊ธ€ํฐํŠธ, ๋ˆˆ๋ˆ„ํฐํŠธ, ์Šคํฌ์นดํ•œ์Šค

  • font.css ํŒŒ์ผ์„ ๋ณ„๋„๋กœ ๋งŒ๋“ค๋ฉด ์ข‹์€ ์ ์€ ๋ฌด์—‡์ผ๊นŒ?
    1. ์ธํ„ฐ๋„ท ์—ฐ๊ฒฐ ์—†์–ด๋„ ๊ฐ€๋Šฅํ•˜๋‹ค๋Š” ์ 

    1. ๋‹ค์šด๋ฐ›์•„์˜ค๋Š” ์„œ๋ฒ„๊ฐ€ ๋ฌธ์ œ๊ฐ€ ์ƒ๊ธฐ๋ฉด ๋ฆฌ์Šคํฌ๊ฐ€ ์žˆ์„ ์ˆ˜ ์žˆ๋‹ค.

2. ๋ฐ˜์‘ํ˜• UI ๊ณต์œ  ์‹œ์•ˆ ์—ฐ์Šต

  • nomarlize.css
    -> ์ดˆ๊ธฐํ™” ํŒŒ์ผ ์ค‘์— ํ•˜๋‚˜์ธ๋ฐ ๊ธฐ๋ณธ์ ์ธ ์†์„ฑ๋งŒ ์„ธํŒ…ํ•ด ๋†“์€ ๊ฒƒ
    -> ์„œ๋กœ ์ƒ์ดํ•œ ๋ธŒ๋ผ์šฐ์ €๋“ค์˜ ์—์ด์ „ํŠธ ์Šคํƒ€์ผ์„ ํ‰์ดํ•œ ์Šคํƒ€์ผ๋กœ ๋งŒ๋“ค์–ด์ค€๋‹ค.

  • display: ๊ฐ ์š”์†Œ์˜ ํ‘œํ˜„ ๋ฐฉ์‹์„ ์ง€์ •ํ•ด์ฃผ๋Š” ์†์„ฑ
    -> none ๋žœ๋”๋ง์ด ๋˜์ง€ ์•Š๊ณ  DOM tree์•ˆ์— ์กด์žฌํ•˜์ง€ ์•Š๋Š”๋‹ค.(์ ‘๊ทผ์„ฑ๋ฉด์—์„œ ์•ˆ์ข‹๋‹ค.)
    -> block ๋ถ€๋ชจ ์š”์†Œ์˜ ๋„ˆ๋น„๋ฅผ ์ฑ„์šด๋‹ค.
    -> inline ํฌํ•จํ•˜๋Š” ์š”์†Œ์˜ ๋„ˆ๋น„๋งŒํผ ์กด์žฌํ•œ๋‹ค.

  • position ์š”์†Œ ๋ฐ•์Šค์˜ ๋ฐฐ์น˜ ๋ฐฉ์‹์„ ์ง€์ •ํ•  ์ˆ˜ ์žˆ๋Š” ์†์„ฑ
    -> static ์ •์ ์ธ, ์ผ๋ฐ˜์ ์ธ ํ๋ฆ„์— ๋”ฐ๋ฅธ ๋ฐฐ์น˜ ๋ฐฉ์‹, ๋งˆํฌ์—…ํ•œ ์ˆœ์„œ๋Œ€๋กœ ๋žœ๋”๋ง ๋œ๋‹ค.
    -> absolute ๋‹ค๋ฅธ ์š”์†Œ ์œ„์— ๊ฒน์ณ์ ธ ๋ฐฐ์น˜๋˜๋Š” ๋ฐฉ์‹, inline์š”์†Œ ๊ฐ™์ง€๋งŒ block์ด๋‹ค.

  • overflow ์ฝ˜ํ…์ธ ์˜ ์˜์—ญ์„ ๋ฒ—์–ด๋‚˜๋Š” ๊ฒฝ์šฐ์˜ ์ฒ˜๋ฆฌ ๋ฐฉ๋ฒ•์„ ์ง€์ •ํ•˜๋‚œ ์†์„ฑ
    -> hidden ์˜ค๋ฒ„ํ”Œ๋กœ์šฐ๋œ ์ฝ˜ํ…์ธ ๋ฅผ ์ˆจ๊ฒจ์ฃผ๋Š” ๊ฒƒ
    -> scroll ์š”์†Œ ๋ฐ•์Šค์— ์Šคํฌ๋กค๋ฐ”๊ฐ€ ์ƒ์„ฑ๋œ๋‹ค
    -> auto ์‚ฌ์šฉ์ž ๋„๊ตฌ์˜ ๊ธฐ๋ณธ ์„ค์ •๊ฐ’๋Œ€๋กœ ์ž‘๋™ํ•œ๋‹ค.

  • clip-path: polygon(0 0 , 0 0 , 0 0);
    -> polygon(X์ขŒํ‘œ, Y์ขŒํ‘œ, X์ขŒํ‘œ ... )
    -> ๋ฉด์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ํฌ์ธํŠธ๋ฅผ ๋งŒ๋“ค์–ด์ค€๋‹ค.

  • CSS ๋ณ€์ˆ˜ ์„ ์–ธ --๋ณ€์ˆ˜์ด๋ฆ„ : value;
  • CSS ๋ณ€์ˆ˜ ์‚ฌ์šฉ var(๋ณ€์ˆ˜์ด๋ฆ„);

  • a :๊ฐ€์ƒ ์•„์ด๋”” ์„ ํƒ์ž ๋กœ ๊ฐ€์žฅ ๋งŽ์ด ์“ฐ์ด๋Š” ๊ฒƒ (์ˆœ์„œ ์ค‘์š”!)
    link - visited - hover - focus

  • box-sizing: content-box;
    -> button ์ œ์™ธํ•˜๊ณ  ๋‹ค content-box์ด๋‹ค.
    -> border + width + height + margin

  • box-sizing: border-box; โญ
    -> border + width + height + padding

3. ํšŒ๊ณ 

CSS ํŒŒํŠธ๊ฐ€ ๊ฐ„๊ฒฐํ•˜๊ฒŒ ๋๋‚˜๊ณ  ๋ฐ˜์‘ํ˜• UI๋กœ ๋“ค์–ด๊ฐ”๋‹ค. ์‹ค์Šตํ•˜๋ฉด์„œ ๋ฐฐ์šฐ๋Š”๊ฒŒ ๋” ํฌ๋‹ˆ ๋ฐ”๋กœ ์‹ค์Šต ๋“ค์–ด๊ฐ€์„œ ์ข‹๊ธฐ๋Š”ํ•œ๋ฐ ํ—ท๊ฐˆ๋ฆฐ๋‹ค. ์—ญ์‹œ๋‚˜ ๊ฐ•์˜ ์†๋„๋Š” ๋” ๋นจ๋ผ์กŒ๋‹ค. ํ•„๊ธฐํ•˜๋ฉด์„œ ํ•˜๋‹ˆ๊นŒ ๊ฐ•์˜ ์ค‘๊ฐ„์ค‘๊ฐ„ ๋ชป๋“ฃ๋Š” ๋‚ด์šฉ์ด ๋งŽ์•„์กŒ๋‹คใ… ใ… ใ…  ๊ทธ๋Ÿฌ๋ฉด์„œ ๊ฐ•์‚ฌ๋‹˜์ด ํ•˜์‹  ๋ง์”€์ด ํ˜„์—…์ด ๋” ๋ƒ‰ํ˜นํ•˜๋‹ค๊ณ .. ์ง€๊ธˆ์€ ์นœ์ ˆํ•˜๊ณ  ์ฒœ์ฒœํžˆ ์•Œ๋ ค์ฃผ๋Š” ํŽธ์ด๋ผ๊ณ  ํ•˜์…จ๋‹ค. ๐Ÿ˜ฑ ๋ฐ˜์‘ํ˜• UI ํ™˜๊ฒฝ๋งŒ๋“œ๋Š” ๋™์•ˆ git ์ถฉ๋Œ์ด ์ผ์–ด๋‚ฌ๋‹ค. ์ด์ œ git์ด ์ข€ ์‰ฌ์›Œ์กŒ๋‹ค ์ƒ๊ฐํ–ˆ๋Š”๋ฐ ์ถฉ๋Œ๋‚˜๋Š” ์ˆœ๊ฐ„ ๋ฉ˜๋ถ•.. git ์‰ฌ์šฐ๋ฉด์„œ๋„ ์–ด๋ ต๋‹ค. ํ”„๋กœ์ ํŠธ ํ•  ๋•Œ ๋„ˆ๋ฌด ๊ฑฑ์ •๋œ๋‹ค. ๊ฒฐ๊ตญ ๊ฐ•์‚ฌ๋‹˜ git clone ๋‹ค์‹œ ํ•ด์™€์„œ ํ•ด๊ฒฐ์€ ๋์ง€๋งŒ ๋‚ด๊ป„๋กœ ์˜ฌ๋ฆฌ๊ณ  ์‹ถ์€๋ฐ ์˜ค๋ฅ˜ ๋‚ ๊นŒ๋ด ๊ดœํžˆ ๊ฑด๋“œ๋ฆฌ๊ธฐ ๋ฌด์„ญ๋‹ค. ๋˜ CSS ์†์„ฑ์„ ์ค‘๊ฐ„์ค‘๊ฐ„ ๋ฐฐ์šฐ๋Š”๋ฐ ๋ชจ๋ฅด๋ฉด ์†๋ฐœ์ด ๊ณ ์ƒํ•œ๋‹ค๋Š” ๋ง ์ง„์งœ ๋ชธ์œผ๋กœ ๋Š๋‚€๊ฒƒ๊ฐ™๋‹ค. ํ˜ผ์ž ํ•  ๋•Œ๋Š” margin, float ์œผ๋กœ ์–ด๋–ป๊ฒŒ๋“  ์œ„์น˜ ์žก๊ณ  ํ–ˆ์—ˆ๋Š”๋ฐ ํŽธํ•œ ์†์„ฑ์ด ๋งŽ์•„๋ณด์˜€๋‹ค. ์›๋ฆฌ๋ฅผ ํŒŒ์•…ํ•˜๋ฉด ์žฌ๋ฐŒ์–ด ์งˆ ๊บผ๊ฐ™์€๋ฐ ์ง€๊ธˆ์€ ์ œ๋Œ€๋กœ ๋ชฐ๋ผ์„œ ๊ทธ๋ƒฅ ์–ด์ง€๋Ÿฝ๋‹คใ… ใ… ใ… 

4์‹œ๋ถ€ํ„ฐ ๋˜ ๋‹ค์‹œ ๋Œ์•„์˜จ ์ž์Šต์‹œ๊ฐ„, ์–ด์ œ๋ณด๋‹ค๋Š” ์กฐ์›๋“ค๋ผ๋ฆฌ ๋ง์„ ๋งŽ์ด ํ–ˆ๋‹ค. ํšŒ๊ณ  ๋ฐœํ‘œ ์–˜๊ธฐํ•˜๋‹ค๊ฐ€ ๋‚ด ํšŒ๊ณ ๋ก์„ ๋ณด์—ฌ๋“œ๋ ธ๋Š”๋ฐ ๋ถ€๋„๐Ÿซฃ ๋‚˜๋„ ์ด์ „ ๊ธฐ์ˆ˜ ๋ถ„๋“ค์˜ ํšŒ๊ณ ๋ก ํ‹€์„ ๋”ฐ์˜จ ๊ฑฐ๋ผ ๋‚ด์šฉ์€ ์•„์ฃผ ์ดˆ๋ผํ•˜์ง€๋งŒ ๋„์›€์ด ๋์œผ๋ฉด ํ•ด์„œ ๋ณด์—ฌ๋“œ๋ ธ๋‹ค. Velog ํšŒ๊ณ ๋ก ์–˜๊ธฐํ•˜๋ฉด์„œ ๋Š๋‚€์ ์€ ํŒ”๋กœ์šฐ๊ฐ€ ์—†์–ด์„œ ๋‹คํ–‰์ด๋ž€๊ฑฐใ…‹ใ…‹ใ…‹ ๋ˆ„๊ฐ€ ๊ตณ์ด ๋‚ด๊บผ๋ฅผ ์ฐพ์•„๋ณด์ง€ ์•Š๋Š” ์ด์ƒ ๋ชป๋ณธ๋‹ค. ๊ทธ๋ž˜์„œ ํšŒ๊ณ  ๊ฒธ ์ผ๊ธฐ์ฒ˜๋Ÿผ ์“ด๋‹ค.

๊ทธ๋ฆฌ๊ณ  ์ˆ˜์—… ๋๋‚ ๋•Œ์ฏค ์˜ค๋Š˜์€ ๋ถˆ๊ธˆ์ด๋ผ๊ณ  ํ•  ๋•Œ ์ง„์งœ ๋†€๋ž๋‹ค. ๋ฒŒ์จ ๊ธˆ์š”์ผ? ๊ธˆ์š”์ผ์ธ๊ฒƒ๋„ ๋ชจ๋ฅด๊ณ  ์žˆ์—ˆ๋Š”๋ฐ ์‹œ๊ฐ„ ์ง„์งœ ๋น ๋ฅด๋‹ค. ์ผ์ฃผ์ผ๋™์•ˆ ํ•œ๊ฒŒ ์—†๋Š”๊ฑฐ๊ฐ™์€๋ฐ ๋ฒŒ์จ ๊ธˆ์š”์ผ์ด๋ผ๋‹ˆ!! ๋ฉ‹์‚ฌ ์‹œ์ž‘ํ•œ์ง€ 2์ฃผ์ •๋„ ๋๋‹ค๋‹ˆ!! ํ›„์šฐ "๋ถˆ๊ธˆ์€ ๋ณต์Šต! ์ฃผ๋ง์€ ์˜ˆ์Šต!" ์ด๋ผ๊ณ  ํ•˜์…จ๋Š”๋ฐ ์‹œ๊ฐ„ ๋ถ„๋ฐฐ ์ง„์งœ ์–ด๋–ป๊ฒŒ ํ•ด์•ผ๋˜๋ƒ ์ผ์š”์ผ๊นŒ์ง€ ์•ผ๋ฌด๋‹˜ ๊ฐ•์˜ ์ตœ๋Œ€ํ•œ ๋งŽ์ด ๋“ฃ๊ณ  ์‹ค์Šต ์œ„์ฃผ๋กœ ๊ณต๋ถ€ํ•ด์•ผ๊ฒ ๋‹ค. ๊ธˆ์š”์ผ์ด ๋ฐ˜๊ฐ‘์ง€๊ฐ€ ์•Š๊ตฌ๋งŒ

profile
ํ”„๋ก ํŠธ์—”๋“œ ๊ฐœ๋ฐœ์ž ์ทจ์ค€์ƒ์ž…๋‹ˆ๋‹ค.

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