CSS๐ŸŒŸ(Cascading Style Sheet)

Aprilยท2021๋…„ 4์›” 6์ผ
0

HTML | CSS

๋ชฉ๋ก ๋ณด๊ธฐ
2/10
post-thumbnail
post-custom-banner

๊ฐœ์ธ ๊ณต๋ถ€๋ฅผ ์œ„ํ•ด ์ž‘์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค

CSS๋ž€?

์›น ํŽ˜์ด์ง€๋ฅผ ๋งŒ๋“ค ๋•Œ HTML์ด ๋ผˆ๋Œ€์˜ ์—ญํ• ์„ ํ–ˆ๋‹ค๋ฉด, CSS๋Š” ๊ทธ ๋ผˆ๋Œ€ ์œ„์— ๋””์ž์ธ์„ ํ•˜๋Š”, ๊พธ๋ฉฐ์ฃผ๋Š” ์—ญํ• ์„ ํ•˜๋Š” ์–ธ์–ด

Cascading Style Sheet๐ŸŒŸ

  • Cascading: ํ•˜๋‚˜์˜ element์— ๋Œ€ํ•ด ๋‹ค์–‘ํ•œ ํšจ๊ณผ๊ฐ€ ์ ์šฉ๋  ๋•Œ, ์šฐ์„  ์ˆœ์œ„๋ฅผ ์„ค์ •

    • ์ €์ž > ์‚ฌ์šฉ์ž > ์›น๋ธŒ๋ผ์šฐ์ €
    • ๊ตฌ์ฒด์ ์ผ์ˆ˜๋ก, ์ •๊ตํ• ์ˆ˜๋ก ์šฐ์„ ์ˆœ์œ„๊ฐ€ ๋†’์Œ
  • ์ž‘์„ฑ ๋ฐฉ๋ฒ•: ๊พธ๋ฉฐ์ค„ HTML ์š”์†Œ๋ฅผ ์„ ํƒํ•˜์—ฌ ์ ์šฉ

    • ์™ธ๋ถ€์Šคํƒ€์ผ ์ ์šฉ (External ์Šคํƒ€์ผ ์ ์šฉ)
    • ๋‚ด๋ถ€์Šคํƒ€์ผ ์ ์šฉ (Embedded ์Šคํƒ€์ผ ์ ์šฉ)
    • ์ธ๋ผ์ธ ์Šคํƒ€์ผ ์ ์šฉ (Inline ์Šคํƒ€์ผ ์ ์šฉ)

โ—์„ ํƒ์ž Selectors

โ—‹๊ธฐ๋ณธ ์„ ํƒ์ž

  • Universal * ๋ชจ๋“  ์š”์†Œ ์„ ํƒ
  • ์š”์†Œ tag๋ช…
  • class .class๋ช…
  • id #id๋ช…
  • ๊ธฐ๋ณธ ๋ฌธ๋ฒ•
    • ์„ ํƒ์ž: ์Šคํƒ€์ผ์„ ์ ์šฉํ•  ๋Œ€์ƒ
    • ์†์„ฑ(property): ์Šคํƒ€์ผ์˜ ์ข…๋ฅ˜
    • ๊ฐ’(value): ์†์„ฑ์ด ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋Š” ๊ฐ’
  body {
     ์†์„ฑ : ๊ฐ’;
     color : blue;
  }

โ—‹๋ถ€๋ชจ ์ž์‹ ์š”์†Œ

  • ์š”์†Œ1 ์š”์†Œ2 ์š”์†Œ1 ์•ˆ์— ์žˆ๋Š” ๋ชจ๋“  ์ž์†์š”์†Œ2
  • ์š”์†Œ1>์š”์†Œ2 ๋ถ€๋ชจ์š”์†Œ1 ๋ฐ”๋กœ ์•„๋ž˜์— ์žˆ๋Š” ์ž์†์š”์†Œ2

โ—‹ํ˜•์ œ ์š”์†Œ

  • ์š”์†Œ1+์š”์†Œ2 ํ˜•์ œ์š”์†Œ1 ์˜†์— ์žˆ๋Š” ํ˜•์ œ์š”์†Œ2
  • ์š”์†Œ1~์š”์†Œ2 ์š”์†Œ1 ์˜ ๋ชจ๋“  ํ˜•์ œ์š”์†Œ2
  • ์„ ํƒ์ž1, ์„ ํƒ์ž2 ์—ฌ๋Ÿฌ ์„ ํƒ์ž๋ฅผ ํ•œ๋ฒˆ์— ์„ ํƒ

โ—‹์ผ๋ฐ˜ ๊ตฌ์กฐ ์„ ํƒ์ž

  • :first-child ์ฒซ ๋ฒˆ์งธ ์ž์† ์š”์†Œ ์„ ํƒ
  • :last-child ๋งˆ์ง€๋ง‰ ์ž์† ์š”์†Œ ์„ ํƒ
  • :nth-child(n) ์ž์‹๊ด€๊ณ„์—์„œ ์•ž์—์„œ n๋ฒˆ์งธ ์š”์†Œ ์„ ํƒ(์ˆœ๋ฐฉํ–ฅ)
  • :nth-last-child(n) ์ž์‹๊ด€๊ณ„์—์„œ ๋’ค์—์„œ n๋ฒˆ์งธ ์š”์†Œ ์„ ํƒ(์—ญ๋ฐฉํ–ฅ)

โ—Box model

์ปจํ…์ธ ์˜ ๋„“์ด, ๋†’์ด, ํŒจ๋”ฉ, ํ…Œ๋‘๋ฆฌ, ๋งˆ์ง„

  • box-sizing
    • ๋ฐ•์Šค์˜ ํฌ๊ธฐ๋ฅผ ํ™”๋ฉด์— ํ‘œ์‹œํ•˜๋Š” ๋ฐฉ์‹์„ ๋ณ€๊ฒฝํ•˜๋Š” ์†์„ฑ
    • ํ…Œ๋‘๋ฆฌ๋ฅผ ํฌํ•จํ•˜์—ฌ ์ง€์ •ํ•  ๊ฒƒ์ธ๊ฐ€, ํ…Œ๋‘๋ฆฌ๋ฅผ ์ œ์™ธํ•˜๊ณ  ์ง€์ •ํ•  ๊ฒƒ์ธ๊ฐ€๋ฅผ ์ ์šฉ
    • ํ…Œ๋‘๋ฆฌ๋ฅผ ์ œ์™ธํ•˜๊ณ  ์ง€์ •ํ•˜๋ฉด ๋ฐ•์Šค ์ „์ฒด ์‚ฌ์ด์ฆˆ๋ฅผ ์˜ˆ์ธกํ•˜๊ธฐ ์–ด๋ ค์šฐ๋ฏ€๋กœ ํฌํ•จํ•˜์—ฌ ์ง€์ •ํ•˜๋Š” ๊ฒƒ์„ ์„ ํ˜ธ
/* ์ „์ฒด ์š”์†Œ์— ๋Œ€ํ•ด ํ…Œ๋‘๋ฆฌ ํฌํ•จํ•˜์—ฌ ๋ฐ•์Šค ์‚ฌ์ด์ง•์„ ํ•˜๊ฒ ๋‹ค */
* {
  box-sizing : border-box;
}

โ—๋ ˆ์ด์•„์›ƒ

โ—‹๋ธ”๋ก vs ์ธ๋ผ์ธ ๋ ˆ๋ฒจ

  • block level : ํ™”๋ฉด ์ „์ฒด๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ํƒœ๊ทธ. ๋ฌด์กฐ๊ฑด ํ•œ์ค„์„ ์ ์œ 
    • h1~h6 p div ul ol li
  • inline level : ํ™”๋ฉด ์ผ๋ถ€๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ํƒœ๊ทธ. content/text ํฌ๊ธฐ๋งŒํผ๋งŒ ์ ์œ ํ•˜๊ณ  ๋™์ผ ๋ผ์ธ์— ๋ถ™๋Š” ์„ฑ์งˆ
    • width/height ์ ์šฉ ๋ถˆ๊ฐ€
    • margin/padding-top/bottom ์ ์šฉ ๋ถˆ๊ฐ€
    • line-height ์›ํ•˜๋Š” ๋Œ€๋กœ ์ ์šฉ ๋ถˆ๊ฐ€(span์— ์ ์šฉ์•ˆ๋˜๊ณ  ๊ฐ์‹ธ๊ณ  ์žˆ๋Š” div ์ „์ฒด ํฌ๊ธฐ์—๋งŒ ์˜ํ–ฅ ๋“ฑ)
    • a img span

โ—‹display

  • ์š”์†Œ๋ฅผ ๋ธ”๋Ÿญ๊ณผ ์ธ๋ผ์ธ ์š”์†Œ ์ค‘ ์–ด๋Š ์ชฝ์œผ๋กœ ์ฒ˜๋ฆฌํ• ์ง€, flow, grid, flex ์ฒ˜๋Ÿผ ์ž์‹ ์š”์†Œ๋ฅผ ์–ด๋–ป๊ฒŒ ๋ฐฐ์น˜ํ• ์ง€๋ฅผ ์„ค์ •
    • display: block;
    • display: inline;
    • display: inline-block; block๊ณผ inline์˜ ์งฌ๋ฝ•. ์ œ์ผ ์ค‘์š”ํ•œ ์„ฑ์งˆ ์ž์ฒด๋Š” inline๊ณผ ๋น„์Šท. ๋™์ผ ๋ผ์ธ์— ์—ฌ๋Ÿฌ ํƒœ๊ทธ๋ฅผ ๋ถ™์ผ ๋•Œ ์“ธ ์ˆ˜ ์žˆ๋‹ค. ๋‹ค๋งŒ ์œ„ inline์˜ ๋‹จ์ ๋“ค์„ ์ปค๋ฒ„ํ•˜๋Š” ๊ฒƒ์ด inline-block์ด๋‹ค
      • width/height ์ ์šฉ ๊ฐ€๋Šฅ
      • margin/padding-top/bottom ์ ์šฉ ๊ฐ€๋Šฅ
      • line-height ์ ์šฉ ๊ฐ€๋Šฅ
    • display: flex;
    • display: inline-flex;
    • display: grid;
    • display: inline-grid;
    • display: flow-root;
    • display: none;
    • display: contents;

โ—‹position

  • static(๊ธฐ๋ณธ๊ฐ’): top, left ๋“ฑ ํฌ์ง€์…˜๊ฐ’์ด ์ ์šฉ๋˜์ง€ ์•Š์Œ
    • position: static;
  • relative: ์›๋ž˜ ์žˆ๋˜ ๊ณต๊ฐ„์€ ์œ ์ง€ํ•˜๋ฉด์„œ, ๊ณต๊ฐ„์—์„œ ์ƒ๋Œ€์ ์œผ๋กœ ๋ช…์‹œํ•œ(top. left ๋“ฑ) ๊ฐ’๋“ค์— ํ•ด๋‹น ๋งŒํผ ์˜ฎ๊ฒจ๊ฐ€๋Š” ๊ฒƒ
    • position: relative;
      top: 40px; left: 40px;
  • absolute: ๊ทผ์ ‘ํ•œ ๋ถ€๋ชจ์ค‘์— static์ด ์•„๋‹Œ ๋ถ€๋ชจ์˜ ๊ธฐ์กด์—, ์ง€์ •ํ•œ ๊ฐ’๋Œ€๋กœ ์˜ฎ๊ฒจ๊ฐ€๋Š” ๊ฒƒ
    • ๊ธฐ๋ณธ position๊ฐ’์€ static์ด๊ธฐ ๋•Œ๋ฌธ์— static์ธ ๋ถ€๋ชจ๋Š” ๊ฑด๋„ˆ๋›ฐ๊ณ  body๊ธฐ์ค€์œผ๋กœ ์˜ฎ๊ฒจ์ง€๊ฒŒ ๋จ
    • top: 40px; left: 40px;
  • fixed: ๋ถ€๋ชจ์™€๋Š” ์ƒ๊ด€์—†์ด ์™ ๋–จ์–ด์ ธ ๋‚˜์™€์„œ [๋ทฐํฌํŠธ๊ธฐ์ค€]์œผ๋กœ ์ง€์ •ํ•œ ํฌ์ง€์…˜(top, left ๋“ฑ)์—์„œ ๊ณ ์ •๋˜์–ด ๋ณด์—ฌ์ง
    • position: fixed;
  • sticky: sticky๋Š” ํฌ์ง€์…˜(top, left๋“ฑ)์„ ์ง€์ •ํ•ด์ฃผ์–ด์•ผ ํ•จ. ์ง€์ •ํ•˜์ง€ ์•Š์œผ๋ฉด ๋ณ€ํ™” ์—†์Œ. ํฌ์ง€์…˜์„ ์ง€์ •ํ•˜๊ฒŒ ๋˜๋ฉด ๋“ค์–ด์žˆ๋Š” ๋ถ€๋ชจ ์•ˆ์—์„œ ์ง€์ •๋œ ํฌ์ง€์…˜์˜ ๊ฐ’๋งŒํผ ์œ„์น˜ํ•˜๊ฒŒ ๋จ
    • position: sticky;
      top: 20px;
  • z-index: layer๋ฅผ ๊ฐ€์ง„ ์š”์†Œ ๋ฐ•์Šค๊ฐ€ ๊ฒน์ณ์ง€๋Š” ์ˆœ์„œ๋ฅผ ์ง€์ •ํ•  ๋–„ ์‚ฌ์šฉ. ์ˆ˜์น˜๊ฐ€ ์ ์„์ˆ˜๋ก ์•„๋ž˜์ชฝ์— ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธ. body๋Š” ๊ธฐ์ค€์ด 0์ด๋‹ค
    • z-index: auto | ์ •์ˆ˜ (1, 2, 3 ...);

โ—Flexbox์™€ float

โ—‹float

  • ํ…์ŠคํŠธ์™€ ์ด๋ฏธ์ง€ ๋ฐฐ์น˜ ์šฉ๋„

โ—‹flexbox

  • ์ผ๋ช… flexbox๋ผ ๋ถˆ๋ฆฌ๋Š” Flexible Box module์€ ์•„์ดํ…œ๋“ค์˜ ๊ณต๊ฐ„ ๋ฐฐ๋ถ„๊ณผ ์ •๋ ฌ ๊ธฐ๋Šฅ์„ ์ œ๊ณต. Flexbox์—๋Š” 2๊ฐ€์ง€๊ฐ€ ์žˆ์Œ

  • ๋ฐ•์Šค์— ์ง€์ •ํ•˜๋Š” ์†์„ฑ๊ณผ

    • display

    • flex-direction ์ค‘์‹ฌ์ถ•์„ ์ˆ˜ํ‰์œผ๋กœ ๋‘๋Š๋ƒ ์ˆ˜์ง์œผ๋กœ ๋‘๋Š๋ƒ์— ๋”ฐ๋ผ ๋ฐ˜๋Œ€์ถ•์ด ์ˆ˜ํ‰์ด ๋˜๋ƒ ์ˆ˜์ง์ด ๋˜๋ƒ ๊ฒฐ์ •

      • row ๊ธฐ๋ณธ๊ฐ’) ์™ผ์ชฝ์—์„œ ์˜ค๋ฅธ์ชฝ์œผ๋กœ ์ˆ˜ํ‰์œผ๋กœ ์ด๋™
      • row-reverse ์—ญ๋ฐฉํ–ฅ) ์˜ค๋ฅธ์ชฝ์—์„œ ์™ผ์ชฝ์œผ๋กœ ์ˆ˜ํ‰์œผ๋กœ ์ด๋™
      • column ์œ„์—์„œ ์•„๋ž˜๋กœ ์ˆ˜์ง์œผ๋กœ ์ด๋™
      • column-reverse ์—ญ๋ฐฉํ–ฅ) ์•„๋ž˜์—์„œ ์œ„๋กœ ์ˆ˜์ง์œผ๋กœ ์ด๋™

    • flex-wrap ํ•ญ๋ชฉ์ด ๋„ˆ๋ฌด ์ปค์„œ ํ•œ ์ค„์— ๋ชจ๋‘ ํ‘œ์‹œ ํ•  ์ˆ˜์—†๋Š” ๊ฒฝ์šฐ ๋‹ค๋ฅธ ์ค„๋กœ ์ค„ ๋ฐ”๊ฟˆ

    • flex-flow ๋‘ ์†์„ฑ flex-direction์„ ์†๊ธฐ flex-wrap๋กœ ๊ฒฐํ•ฉ

    • justify-content ์ค‘์‹ฌ์ถ•์—์„œ ์ •๋ ฌ

    • align-items

      • stretch
      • flex-start ์‹œ์ž‘์ 
      • flex-end ๋์ ์—์„œ
      • center
    • align-content

    • ๋ฐ•์Šค์•ˆ์— ๋“ค์–ด๊ฐ€๋Š” ์•„์ดํ…œ์— ์ง€์ •ํ•˜๋Š” ์†์„ฑ์ด ์žˆ์Œ

      • order
      • flex-grow ๋ฉด์— ์ปค์งˆ ๋•Œ 2๋ฐฐ๋กœ ์ปค์ ธ๋ผ
      • flex-shrink ์ค„์–ด๋“ค ๋•Œ ๋‘๋ฐฐ๋กœ ๋” ์ž‘๊ฒŒ ์ค„์–ด๋“ค์–ด!
      • flex-basis ์„ค์ •ํ•œ ๋น„์œจ% ์œ ์ง€ํ•˜๋ฉด์„œ ์ค„์—ˆ๋‹ค๊ฐ€ ์ปค์กŒ๋‹ค๊ฐ€ ํ•ด!
      • align-self

โ—font: ํƒ€์ดํฌ๊ทธ๋ž˜ํ”ผ

ํฐํŠธ์˜ ๋ชจ์–‘, ์‚ฌ์ด์ฆˆ, ์ปฌ๋Ÿฌ ๋“ฑ์„ ์ ์šฉ

  • font-family
    • ๊ธ€์ž์˜ ๋ชจ์–‘์„ ์„ค์ •
    • ํ•˜๋‚˜ ์ด์ƒ์˜ ๊ธ€๊ผด์„ ์„ ์–ธํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ๊ธ€๊ผด์€ ์ฝค๋งˆ(,)๋กœ ๊ตฌ๋ถ„
    • ์ฃผ์˜์‚ฌํ•ญ
      1. ํ•œ๊ธ€ ๊ธ€๊ผด์€ " " ๋ฐ˜๋“œ์‹œ ํ•„์š”. ํ•œ๊ธ€ ๊ธ€๊ผด ๋’ค์—๋Š” ๊ผญ ๊ธ€๊ผด์˜ ์˜๋ฌธ์ด๋ฆ„์„ ์ถ”๊ฐ€
      2. ์˜๋ฌธ ๊ธ€๊ผด์ด๋”๋ผ๋„ ๊ธ€๊ผด ์ด๋ฆ„์— ๊ณต๋ฐฑ์ด ์žˆ๋Š” ๊ฒฝ์šฐ " "ํ•„์š”. ex) PT mono, Malgum Gothic)
    • ํ•ด๋‹น ๊ธ€๊ผด์ด ์—†์„ ๊ฒฝ์šฐ ์ œ์ผ ๋งˆ์ง€๋ง‰์— ๋Œ€ํ‘œ ํŒจ๋ฐ€๋ฆฌ์ฒด๊ฐ€ ๋ Œ๋”๋ง๋˜๋ฉฐ, ๋งŒ์•ฝ ํฐํŠธ ํŽ˜๋ฐ€๋ฆฌ๋ฅผ ์ง€์ •ํ•˜์ง€ ์•Š์œผ๋ฉด ์‚ฌ์šฉ์ž ์ปดํ“จํ„ฐ์— ์„ค์ •๋œ ๋ธŒ๋ผ์šฐ์ € ๊ธ€๊ผด๋กœ ๋ Œ๋”๋ง ๋จ
  • font-weight: ๊ตต๊ธฐ๋ฅผ ํ‘œํ˜„
  • font-style: ์Šคํƒ€์ผ ์ง€์ •
  • font-variant: ์˜๋ฌธ ๊ธ€๊ผด์˜ ์†Œ๋ฌธ์ž๋ฅผ ๋Œ€๋ฌธ์ž๋กœ ๋ณ€ํ˜•ํ•  ๋•Œ ์‚ฌ์šฉ
  • font-size: ์›น ๋ฌธ์„œ์˜ ๊ธ€์ž ํฌ๊ธฐ๋ฅผ ์ง€์ •
  • line-height: ๋ฌธ๋‹จ์˜ ํ–‰๊ฐ„์„ ์ง€์ •
  • text-align: ๋‹จ๋ฝ์˜ ํ…์ŠคํŠธ๋ฅผ ๊ฐ€๋กœ ๊ธฐ์ค€์œผ๋กœ ์ •๋ ฌํ•  ๋•Œ ์‚ฌ์šฉ
  • vartical-align: ์ธ๋ผ์ธ ์š”์†Œ๋ผ๋ฆฌ์˜ ์„ธ๋กœ ์œ„์น˜๋ฅผ ์ •๋ ฌํ•  ๋•Œ ์‚ฌ์šฉ
  • text-decoration: ํ…์ŠคํŠธ์— ๋ฐ‘์ค„์„ ๊ธ‹๊ฑฐ๋‚˜ ์ทจ์†Œ์„  ๋“ฑ์˜ ํšจ๊ณผ ์ถ”๊ฐ€

โ—background

๋ฐฐ๊ฒฝ์— ๋Œ€ํ•ด ์ƒ‰์ƒ, ์ด๋ฏธ์ง€ ๋“ฑ์„ ์ ์šฉ

  • background-color
  • background-image
  • background-position
  • background-repeat
  • background-size
  • background-attachment
  • background-clip
  • background-origin
/* Using a <background-color> */
background: green;

/* Using a <bg-image> and <repeat-style> */
background: url("test.jpg") repeat-y;

/* Using a <box> and <background-color> */
background: border-box red;

/* A single image, centered and scaled */
background: no-repeat center/80% url("../img/image.png");

โ—@mdia, Media Query

โ˜…โ˜…โ˜… ๋ฏธ๋””์–ด ์ฟผ๋ฆฌ๋Š” ๋ฐ˜์‘ํ˜• ์›น ๋””์ž์ธ์˜ ํ•ต์‹ฌ ๋ถ€๋ถ„.
๋ทฐํฌํŠธ์˜ ํฌ๊ธฐ์— ๋”ฐ๋ผ ์„œ๋กœ ๋‹ค๋ฅธ ์กฐํŒ์„ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ

@media screen and (max-width: 400px) {
    body {
        color: blue;
    }
}

โœ… ๋ชฉํ‘œ!

  • CSS์— ๋Œ€ํ•ด ์ดํ•ดํ•˜๊ณ 
  • ๊ธฐ๋ณธ์ ์œผ๋กœ ๋งŽ์ด ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ๋“ค์„ ์ตํžŒ๋‹ค

๋“œ๋ฆผ์ฝ”๋”ฉ by ์—˜๋ฆฌ

profile
๐Ÿš€ ๋‚ด๊ฐ€ ๋ณด๋ ค๊ณ  ์“ฐ๋Š” ๊ธฐ์ˆ ๋ธ”๋กœ๊ทธ
post-custom-banner

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