๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
Stylesheet/CSS

[CSS3]CSS ๋ฏธ๋””์–ด ์ฟผ๋ฆฌ: ๋ชจ๋ฐ”์ผ ์นœํ™”์ ์ธ ํ™”๋ฉด ๊ตฌ์„ฑ ๋ฐฉ๋ฒ•

by YJ Dev 2024. 6. 6.
728x90
๋ฐ˜์‘ํ˜•
SMALL

CSS ๋ฏธ๋””์–ด ์ฟผ๋ฆฌ๋Š” ๋ฐ˜์‘ํ˜• ์›น ๋””์ž์ธ์˜ ํ•ต์‹ฌ ์š”์†Œ๋กœ, ๋‹ค์–‘ํ•œ ๋””๋ฐ”์ด์Šค์—์„œ ์ผ๊ด€๋œ ์‚ฌ์šฉ์ž ๊ฒฝํ—˜์„ ์ œ๊ณตํ•˜๋Š” ๋ฐ ํ•„์ˆ˜์ ์ž…๋‹ˆ๋‹ค. ์ด๋ฒˆ ํฌ์ŠคํŒ…์€ ์ดˆ๋ณด์ž๋„ ์‰ฝ๊ฒŒ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋„๋ก CSS ๋ฏธ๋””์–ด ์ฟผ๋ฆฌ์˜ ๊ธฐ๋ณธ ๊ฐœ๋…, ๊ณ ๊ธ‰ ํ™œ์šฉ๋ฒ•, ์‹ค์ „ ์˜ˆ์ œ, ๋””๋ฒ„๊น…๊ณผ ์ตœ์ ํ™” ๋ฐฉ๋ฒ•์„ ํฌํ•จํ•˜์—ฌ ์™„๋ฒฝํ•˜๊ฒŒ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. ๋ฐ˜์‘ํ˜• ์›น ๋””์ž์ธ์„ ์œ„ํ•œ ๋ฏธ๋””์–ด ์ฟผ๋ฆฌ ์ž‘์„ฑ๋ฒ•๊ณผ ๋ธŒ๋ ˆ์ดํฌํฌ์ธํŠธ ์„ค์ •, ์œ ์—ฐํ•œ ๋ ˆ์ด์•„์›ƒ ๊ตฌ์„ฑ๊นŒ์ง€, CSS ๋ฏธ๋””์–ด ์ฟผ๋ฆฌ์˜ ๋ชจ๋“  ๊ฒƒ์„ ์•Œ์•„๋ณด์„ธ์š”๐Ÿ˜Š

css ๋ฏธ๋””์–ด์ฟผ๋ฆฌ



๋ฐ˜์‘ํ˜• ๋””์ž์ธ์„ ๊ตฌํ˜„ํ•˜๋Š” ๋ฐ์—๋Š” ๋ฏธ๋””์–ด ์ฟผ๋ฆฌ ๋Œ€์‹  CSS grid์™€ flexbox๊ฐ€ ์œ ์šฉํ•œ ๋Œ€์•ˆ์œผ๋กœ ์“ฐ์ž…๋‹ˆ๋‹ค. ์ด๋“ค์„ ์ด์šฉํ•˜๋ฉด ๋ฏธ๋””์–ด ์ฟผ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ ๋„ ๋งŽ์€ ๊ฒฝ์šฐ์— ๋ฐ˜์‘ํ˜• ๋””์ž์ธ์„ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋ ˆ์ด์•„์›ƒ์ด ๋ณต์žกํ•œ ๊ฒฝ์šฐ์—๋Š” ์—ฌ์ „ํžˆ ๋ฏธ๋””์–ด ์ฟผ๋ฆฌ๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.
CSS grid์™€ flexbox์— ๊ด€ํ•œ ๋‚ด์šฉ์€ ์•„๋ž˜ ํฌ์ŠคํŒ…์„ ์ฐธ๊ณ ํ•ด ์ฃผ์„ธ์š”๐Ÿ˜

" "

[CSS3]CSS Grid ์™„์ „ ์ •๋ณต: ์›น ๊ฐœ๋ฐœ์ž๋ฅผ ์œ„ํ•œ ์ตœ๊ณ ์˜ ๋ ˆ์ด์•„์›ƒ ์‹œ์Šคํ…œ

CSS Grid๋Š” 2์ฐจ์› ๋ ˆ์ด์•„์›ƒ์„ ์‰ฝ๊ฒŒ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ฃผ์–ด ๋ณต์žกํ•œ ๋””์ž์ธ๋„ ๊ฐ„๋‹จํžˆ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.์ด ๊ธ€์˜ ๋ชฉ์ ์€ CSS Grid๋ฅผ ์ฒ˜์Œ ์ ‘ํ•˜๋Š” ์ดˆ๋ณด์ž๋ถ€ํ„ฐ ๊ณ ๊ธ‰ ์‚ฌ์šฉ์ž๊นŒ์ง€ ๋ชจ๋‘๊ฐ€ ์ดํ•ดํ•˜๊ณ  ํ™œ

creativevista.tistory.com

" "

[CSS3]Flexbox ๋งˆ์Šคํ„ฐํ•˜๊ธฐ: CSS3๋กœ ๋ฐ˜์‘ํ˜• ์›น์‚ฌ์ดํŠธ ๋งŒ๋“ค๊ธฐ

CSS3 FLEXBOX๋Š” ์›น ํŽ˜์ด์ง€ ๋ ˆ์ด์•„์›ƒ์„ ์‰ฝ๊ฒŒ ์กฐ์ •ํ•˜๊ณ  ๋‹ค์–‘ํ•œ ๋””๋ฐ”์ด์Šค์— ๋งž์ถฐ ๋ฐ˜์‘ํ˜• ์›น์‚ฌ์ดํŠธ๋ฅผ ๋งŒ๋“œ๋Š” ๋ฐ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฒˆ ํฌ์ŠคํŒ…์—์„œ๋Š” FLEXBOX์˜ ๊ธฐ๋ณธ ๊ฐœ๋…๋ถ€ํ„ฐ ๊ณ ๊ธ‰ ํ™œ์šฉ ๋ฐฉ๋ฒ•๊นŒ์ง€ ์ฒด๊ณ„์ ์œผ๋กœ

creativevista.tistory.com

๋ฏธ๋””์–ด ์ฟผ๋ฆฌ์˜ ๊ธฐ๋ณธ ๋ฌธ๋ฒ•๐Ÿ”ค

CSS ๋ฏธ๋””์–ด ์ฟผ๋ฆฌ๋Š” ํŠน์ • ์กฐ๊ฑด์— ๋”ฐ๋ผ ์Šคํƒ€์ผ์„ ์ ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ๊ฐ•๋ ฅํ•œ ๋„๊ตฌ์ž…๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ๋‹ค์–‘ํ•œ ๋””๋ฐ”์ด์Šค์™€ ํ™”๋ฉด ํฌ๊ธฐ์— ์ตœ์ ํ™”๋œ ๋ฐ˜์‘ํ˜• ๋””์ž์ธ์„ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฌธ๋ฒ• ์„ค๋ช…

๋ฏธ๋””์–ด ์ฟผ๋ฆฌ๋Š” @media ๊ทœ์น™์œผ๋กœ ์‹œ์ž‘ํ•˜๋ฉฐ, ์กฐ๊ฑด๋ถ€ ๋…ผ๋ฆฌ ์—ฐ์‚ฐ์ž์™€ ํ•จ๊ป˜ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์ฃผ์š” ์š”์†Œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

@media not|only ๋ฏธ๋””์–ดํƒ€์ž… and ๋ฏธ๋””์–ดํŠน์„ฑ and|or|not ๋ฏธ๋””์–ด ํŠน์„ฑ {
    /* CSS ์ฝ”๋“œ */
}

1. ๋ฏธ๋””์–ด ํƒ€์ž…

CSS ๋ฏธ๋””์–ด ์ฟผ๋ฆฌ์—์„œ ์Šคํƒ€์ผ์„ ์ ์šฉํ•  ๋Œ€์ƒ ๋งค์ฒด๋ฅผ ์ง€์ •ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์ฃผ์š” ๋ฏธ๋””์–ด ํƒ€์ž…์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • screen: ์ปดํ“จํ„ฐ ํ™”๋ฉด, ํƒœ๋ธ”๋ฆฟ, ์Šค๋งˆํŠธํฐ ๋“ฑ ์ „์ž ๋””์Šคํ”Œ๋ ˆ์ด์šฉ.
  • print: ์ธ์‡„๋ฌผ๊ณผ ๊ด€๋ จ๋œ ์Šคํƒ€์ผ์„ ์ •์˜ํ•  ๋•Œ ์‚ฌ์šฉ.
  • all: ๋ชจ๋“  ๋งค์ฒด์— ์ ์šฉ. ๊ธฐ๋ณธ๊ฐ’์œผ๋กœ, ๋ชจ๋“  ์œ ํ˜•์˜ ์ถœ๋ ฅ ์žฅ์น˜์— ์ ์šฉ๋ฉ๋‹ˆ๋‹ค.
  • speech: ์Šคํฌ๋ฆฐ ๋ฆฌ๋”์™€ ๊ฐ™์€ ์Œ์„ฑ ํ•ฉ์„ฑ ์žฅ์น˜์šฉ.

2. ๋ฏธ๋””์–ด ํŠน์„ฑ

๋ฏธ๋””์–ด ์ฟผ๋ฆฌ์—์„œ ํŠน์ • ์กฐ๊ฑด์„ ์„ค์ •ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ํŠน์ • ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜๋Š” ๊ฒฝ์šฐ์—๋งŒ ์Šคํƒ€์ผ์„ ์ ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ฃผ์š” ๋ฏธ๋””์–ด ํŠน์„ฑ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • width: ๋ทฐํฌํŠธ์˜ ๋„ˆ๋น„.
  • height: ๋ทฐํฌํŠธ์˜ ๋†’์ด.
  • min-width: ์ตœ์†Œ ๋„ˆ๋น„.
  • max-width: ์ตœ๋Œ€ ๋„ˆ๋น„.
  • min-height: ์ตœ์†Œ ๋†’์ด.
  • max-height: ์ตœ๋Œ€ ๋†’์ด.
  • orientation: ํ™”๋ฉด์˜ ๋ฐฉํ–ฅ (portrait ๋˜๋Š” landscape).
  • resolution: ๋””์Šคํ”Œ๋ ˆ์ด์˜ ํ•ด์ƒ๋„.
  • aspect-ratio: ๋ทฐํฌํŠธ์˜ ๊ฐ€๋กœ ์„ธ๋กœ ๋น„์œจ.
  • color: ๋””๋ฐ”์ด์Šค๊ฐ€ ์ง€์›ํ•˜๋Š” ์ปฌ๋Ÿฌ ์ˆ˜.
  • monochrome: ๋ชจ๋…ธํฌ๋กฌ ๋””๋ฐ”์ด์Šค์˜ ๋น„ํŠธ ๊นŠ์ด.
  • pointer: ํฌ์ธํ„ฐ ์žฅ์น˜์˜ ์ •๋ฐ€๋„ (none, coarse, fine).
  • hover: ํฌ์ธํ„ฐ ์žฅ์น˜๊ฐ€ ํ˜ธ๋ฒ„๋ฅผ ์ง€์›ํ•˜๋Š”์ง€ ์—ฌ๋ถ€ (none, hover).

3. ๋…ผ๋ฆฌ ์—ฐ์‚ฐ์ž

๋…ผ๋ฆฌ ์—ฐ์‚ฐ์ž๋Š” ์—ฌ๋Ÿฌ ์กฐ๊ฑด์„ ๊ฒฐํ•ฉํ•˜๊ฑฐ๋‚˜ ํŠน์ • ์กฐ๊ฑด์„ ์ œ์™ธํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์ฃผ์š” ๋…ผ๋ฆฌ ์—ฐ์‚ฐ์ž๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • and: ๋‘ ์กฐ๊ฑด์„ ๋ชจ๋‘ ๋งŒ์กฑํ•ด์•ผ ์Šคํƒ€์ผ์ด ์ ์šฉ๋ฉ๋‹ˆ๋‹ค.
  • not: ํŠน์ • ์กฐ๊ฑด์„ ์ œ์™ธํ•˜๊ณ  ์Šคํƒ€์ผ์„ ์ ์šฉํ•ฉ๋‹ˆ๋‹ค.
  • only: ํŠน์ • ๋ฏธ๋””์–ด ํƒ€์ž…๊ณผ ํ•จ๊ป˜ ์‚ฌ์šฉ๋˜์–ด, ๊ทธ ๋ฏธ๋””์–ด ํƒ€์ž…์—๋งŒ ์Šคํƒ€์ผ์„ ์ ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ฃผ๋กœ ๊ตฌํ˜• ๋ธŒ๋ผ์šฐ์ € ํ˜ธํ™˜์„ฑ์„ ์œ„ํ•ด ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

์˜ˆ์ œ

1. ํ™”๋ฉด ๋„ˆ๋น„์— ๋”ฐ๋ฅธ ์Šคํƒ€์ผ ๋ณ€๊ฒฝ

/* ๊ธฐ๋ณธ ์Šคํƒ€์ผ */
body {
  background-color: white;
  font-size: 16px;
}

/* ํ™”๋ฉด ๋„ˆ๋น„๊ฐ€ 600px ์ดํ•˜์ผ ๋•Œ ์ ์šฉ */
@media (max-width: 600px) {
  body {
    background-color: lightgray;
    font-size: 14px;
  }
}


2. ํ™”๋ฉด ๋ฐฉํ–ฅ์— ๋”ฐ๋ฅธ ์Šคํƒ€์ผ ๋ณ€๊ฒฝ

/* ๊ธฐ๋ณธ ์Šคํƒ€์ผ */
body {
  margin: 20px;
}

/* ํ™”๋ฉด์ด ์„ธ๋กœ ๋ฐฉํ–ฅ์ผ ๋•Œ ์ ์šฉ */
@media (orientation: portrait) {
  body {
    margin: 10px;
  }
}

๋ฐ˜์‘ํ˜• ๋””์ž์ธ์„ ์œ„ํ•œ ๋ฏธ๋””์–ด ์ฟผ๋ฆฌ ์ž‘์„ฑ๋ฒ•โœ๏ธ

1. ๋ธŒ๋ ˆ์ดํฌํฌ์ธํŠธ ์„ค์ •

๋ธŒ๋ ˆ์ดํฌํฌ์ธํŠธ๋Š” ํ™”๋ฉด ํฌ๊ธฐ๊ฐ€ ํŠน์ • ๊ฐ’์— ๋„๋‹ฌํ•  ๋•Œ CSS ์Šคํƒ€์ผ์„ ๋ณ€๊ฒฝํ•˜๋Š” ๊ธฐ์ค€์ ์ž…๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์ธ ๋ธŒ๋ ˆ์ดํฌํฌ์ธํŠธ ์„ค์ •์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • ๋ชจ๋ฐ”์ผ: max-width: 600px
  • ํƒœ๋ธ”๋ฆฟ: max-width: 768px
  • ๋ฐ์Šคํฌํ†ฑ: min-width: 1024px

์ด๋Ÿฌํ•œ ๋ธŒ๋ ˆ์ดํฌํฌ์ธํŠธ๋Š” ๋””๋ฐ”์ด์Šค ์ข…๋ฅ˜์™€ ์‚ฌ์šฉ์ž ํ†ต๊ณ„์— ๋”ฐ๋ผ ์กฐ์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์˜ˆ์ œ

/* ๋ชจ๋ฐ”์ผ์šฉ ์Šคํƒ€์ผ */
@media (max-width: 600px) {
  body {
    font-size: 14px;
    background-color: lightgray;
  }
}

/* ํƒœ๋ธ”๋ฆฟ์šฉ ์Šคํƒ€์ผ */
@media (max-width: 768px) {
  body {
    font-size: 16px;
    background-color: lightblue;
  }
}

/* ๋ฐ์Šคํฌํƒ‘์šฉ ์Šคํƒ€์ผ */
@media (min-width: 1024px) {
  body {
    font-size: 18px;
    background-color: white;
  }
}

2. ์œ ์—ฐํ•œ ๋ ˆ์ด์•„์›ƒ ๊ตฌ์„ฑ

๋ฐ˜์‘ํ˜• ๋””์ž์ธ์—์„œ๋Š” ๊ทธ๋ฆฌ๋“œ ์‹œ์Šคํ…œ๊ณผ ํ”Œ๋ ‰์Šค๋ฐ•์Šค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์œ ์—ฐํ•œ ๋ ˆ์ด์•„์›ƒ์„ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๋ทฐํฌํŠธ ๋‹จ์œ„(vw, vh)๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ํ™”๋ฉด ํฌ๊ธฐ์— ๋”ฐ๋ผ ์š”์†Œ์˜ ํฌ๊ธฐ๊ฐ€ ์ž๋™์œผ๋กœ ์กฐ์ ˆ๋ฉ๋‹ˆ๋‹ค.

์˜ˆ์ œ

/* ๊ธฐ๋ณธ ๊ทธ๋ฆฌ๋“œ ๋ ˆ์ด์•„์›ƒ */
.container {
  display: grid;
  grid-template-columns: 1fr;
  gap: 10px;
}

@media (min-width: 600px) {
  .container {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (min-width: 1024px) {
  .container {
    grid-template-columns: repeat(3, 1fr);
  }
}

3. ๋ฏธ๋””์–ด ์ฟผ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•œ ์œ ์—ฐํ•œ ์ด๋ฏธ์ง€ ํฌ๊ธฐ ์„ค์ •

์ด๋ฏธ์ง€์˜ ํฌ๊ธฐ๋ฅผ ์œ ์—ฐํ•˜๊ฒŒ ์กฐ์ •ํ•˜์—ฌ ๋‹ค์–‘ํ•œ ํ™”๋ฉด ํฌ๊ธฐ์— ๋งž๊ฒŒ ์ ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์˜ˆ์ œ

img {
  width: 100%;
  height: auto;
}

@media (min-width: 600px) {
  img {
    width: 50%;
  }
}

@media (min-width: 1024px) {
  img {
    width: 33.33%;
  }
}

4. ํฐํŠธ ํฌ๊ธฐ ์„ค์ •

๋ฏธ๋””์–ด ์ฟผ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋‹ค์–‘ํ•œ ํ™”๋ฉด ํฌ๊ธฐ์— ๋”ฐ๋ผ ํฐํŠธ ํฌ๊ธฐ๋ฅผ ์กฐ์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์˜ˆ์ œ

body {
  font-size: 16px;
}

@media (max-width: 600px) {
  body {
    font-size: 14px;
  }
}

@media (min-width: 1024px) {
  body {
    font-size: 18px;
  }
}

5. ๋””๋ฐ”์ด์Šค ๋ฐฉํ–ฅ์— ๋”ฐ๋ฅธ ์Šคํƒ€์ผ ์กฐ์ •

ํ™”๋ฉด์˜ ๋ฐฉํ–ฅ์— ๋”ฐ๋ผ ์Šคํƒ€์ผ์„ ์กฐ์ •ํ•˜์—ฌ ์‚ฌ์šฉ์ž๊ฐ€ ๋” ๋‚˜์€ ๊ฒฝํ—˜์„ ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.

์˜ˆ์ œ

/* ๊ธฐ๋ณธ ์Šคํƒ€์ผ */
body {
  margin: 20px;
  padding: 10px;
}

/* ์„ธ๋กœ ๋ฐฉํ–ฅ์ผ ๋•Œ ์ ์šฉ */
@media (orientation: portrait) {
  body {
    margin: 10px;
    padding: 5px;
  }
}

/* ๊ฐ€๋กœ ๋ฐฉํ–ฅ์ผ ๋•Œ ์ ์šฉ */
@media (orientation: landscape) {
  body {
    margin: 30px;
    padding: 15px;
  }
}

6. ๊ณ ํ•ด์ƒ๋„๋””๋ฐ”์ด์Šค ๋Œ€์‘

๊ณ ํ•ด์ƒ๋„ ๋””๋ฐ”์ด์Šค(๋ ˆํ‹ฐ๋‚˜ ๋””์Šคํ”Œ๋ ˆ์ด ๋“ฑ)์— ๋งž์ถฐ ์ด๋ฏธ์ง€๋ฅผ ์ตœ์ ํ™”ํ•˜๊ฑฐ๋‚˜ ์Šคํƒ€์ผ์„ ์กฐ์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์˜ˆ์ œ

/* ๊ธฐ๋ณธ ์ด๋ฏธ์ง€ */
body {
  background-image: url('normal-image.jpg');
}

/* ๊ณ ํ•ด์ƒ๋„ ๋””๋ฐ”์ด์Šค์šฉ ์ด๋ฏธ์ง€ */
@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi) {
  body {
    background-image: url('high-res-image.jpg');
  }
}

7. ๋ฏธ๋””์–ด ์ฟผ๋ฆฌ๋กœ ๋‚ด๋น„๊ฒŒ์ด์…˜ ๋ฐ” ๋ฐ˜์‘ํ˜• ๊ตฌํ˜„

๋ฐ˜์‘ํ˜• ๋„ค๋น„๊ฒŒ์ด์…˜ ๋ฐ”๋ฅผ ๊ตฌํ˜„ํ•˜์—ฌ ๋‹ค์–‘ํ•œ ํ™”๋ฉด ํฌ๊ธฐ์—์„œ ์ ์ ˆํ•˜๊ฒŒ ๋ณด์ด๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.

์˜ˆ์ œ

<nav class="navbar">
  <a href="#">Home</a>
  <a href="#">About</a>
  <a href="#">Contact</a>
</nav>

<style>
  .navbar {
    display: flex;
    flex-direction: column;
    align-items: center;
  }

  .navbar a {
    padding: 10px;
    text-decoration: none;
    color: black;
  }

  @media (min-width: 600px) {
    .navbar {
      flex-direction: row;
      justify-content: space-around;
    }
  }
</style>

๊ณ ๊ธ‰ ๋ฏธ๋””์–ด ์ฟผ๋ฆฌ ํ™œ์šฉ๋ฒ•๐Ÿš€

๋ฐ˜์‘ํ˜• ์›น ๋””์ž์ธ์„ ํ•œ ๋‹จ๊ณ„ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๋ ค๋ฉด, ๊ณ ๊ธ‰ ๋ฏธ๋””์–ด ์ฟผ๋ฆฌ ํ™œ์šฉ๋ฒ•์„ ์ตํžˆ๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค. ์ด ์„น์…˜์—์„œ๋Š” ํŠน์ • ๋””๋ฐ”์ด์Šค ํƒ€๊ฒŸํŒ…, CSS ๋ณ€์ˆ˜์™€์˜ ์—ฐ๊ณ„, ์‚ฌ์šฉ์„ฑ ํ–ฅ์ƒ ๋“ฑ์˜ ๊ณ ๊ธ‰ ๊ธฐ๋ฒ•์„ ์†Œ๊ฐœํ•ฉ๋‹ˆ๋‹ค.

1. ํŠน์ • ๋””๋ฐ”์ด์Šค ํƒ€๊ฒŸํŒ…

ํŠน์ • ๋””๋ฐ”์ด์Šค๋ฅผ ํƒ€๊ฒŸ์œผ๋กœ ํ•œ ๋ฏธ๋””์–ด ์ฟผ๋ฆฌ๋ฅผ ์ž‘์„ฑํ•˜๋ฉด ๋” ์„ธ๋ฐ€ํ•œ ๋ฐ˜์‘ํ˜• ๋””์ž์ธ์„ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ๊ณ ํ•ด์ƒ๋„ ๋””๋ฐ”์ด์Šค, ํ„ฐ์น˜์Šคํฌ๋ฆฐ ๋””๋ฐ”์ด์Šค ๋“ฑ์„ ํƒ€๊ฒŸํŒ…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ณ ํ•ด์ƒ๋„ ๋””๋ฐ”์ด์Šค ํƒ€๊ฒŸํŒ…

๊ณ ํ•ด์ƒ๋„ ๋””๋ฐ”์ด์Šค(๋ ˆํ‹ฐ๋‚˜ ๋””์Šคํ”Œ๋ ˆ์ด ๋“ฑ)์—์„œ๋Š” ๊ณ ํ•ด์ƒ๋„ ์ด๋ฏธ์ง€๋ฅผ ์ œ๊ณตํ•˜์—ฌ ํ’ˆ์งˆ์„ ๋†’์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์˜ˆ์ œ

/* ๊ธฐ๋ณธ ์ด๋ฏธ์ง€ */
body {
  background-image: url('normal-image.jpg');
}

/* ๊ณ ํ•ด์ƒ๋„ ๋””๋ฐ”์ด์Šค์šฉ ์ด๋ฏธ์ง€ */
@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi) {
  body {
    background-image: url('high-res-image.jpg');
  }
}

ํ„ฐ์น˜์Šคํฌ๋ฆฐ ๋””๋ฐ”์ด์Šค ํƒ€๊ฒŸํŒ…

ํ„ฐ์น˜์Šคํฌ๋ฆฐ ๋””๋ฐ”์ด์Šค์—์„œ๋Š” ํ„ฐ์น˜ ์นœํ™”์ ์ธ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์˜ˆ์ œ

/* ๊ธฐ๋ณธ ์Šคํƒ€์ผ */
button {
  padding: 10px;
  font-size: 16px;
}

/* ํ„ฐ์น˜์Šคํฌ๋ฆฐ ๋””๋ฐ”์ด์Šค์šฉ ์Šคํƒ€์ผ */
@media (hover: none) and (pointer: coarse) {
  button {
    padding: 20px;
    font-size: 18px;
  }
}

2. CSS ๋ณ€์ˆ˜์™€ ๋ฏธ๋””์–ด ์ฟผ๋ฆฌ

CSS ๋ณ€์ˆ˜(์ปค์Šคํ…€ ํ”„๋กœํผํ‹ฐ)๋ฅผ ๋ฏธ๋””์–ด ์ฟผ๋ฆฌ์™€ ํ•จ๊ป˜ ์‚ฌ์šฉํ•˜๋ฉด ์œ ์ง€๋ณด์ˆ˜์™€ ํ™•์žฅ์„ฑ์ด ๋†’์€ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์˜ˆ์ œ

:root {
  --main-bg-color: white;
  --main-font-size: 16px;
}

@media (max-width: 600px) {
  :root {
    --main-bg-color: lightgray;
    --main-font-size: 14px;
  }
}

@media (min-width: 1024px) {
  :root {
    --main-bg-color: white;
    --main-font-size: 18px;
  }
}

body {
  background-color: var(--main-bg-color);
  font-size: var(--main-font-size);
}

3. ๋ฏธ๋””์–ด ํŠน์„ฑ ๊ฒฐํ•ฉ

๋ฏธ๋””์–ด ํŠน์„ฑ์„ ๊ฒฐํ•ฉํ•˜์—ฌ ๋ณต์žกํ•œ ์กฐ๊ฑด์„ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ๋‹ค์–‘ํ•œ ์ƒํ™ฉ์— ๋งž๋Š” ์Šคํƒ€์ผ์„ ์œ ์—ฐํ•˜๊ฒŒ ์ ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ™”๋ฉด ํฌ๊ธฐ์™€ ๋ฐฉํ–ฅ ๊ฒฐํ•ฉ

ํ™”๋ฉด ํฌ๊ธฐ์™€ ๋ฐฉํ–ฅ์„ ๊ฒฐํ•ฉํ•˜์—ฌ ์Šคํƒ€์ผ์„ ์กฐ์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์˜ˆ์ œ

@media (min-width: 768px) and (orientation: landscape) {
  body {
    background-color: lightyellow;
  }
}

๋ณตํ•ฉ ์กฐ๊ฑด ์‚ฌ์šฉ

๋ณตํ•ฉ ์กฐ๊ฑด์„ ์‚ฌ์šฉํ•˜์—ฌ ๋‹ค์–‘ํ•œ ์ƒํ™ฉ์— ๋งž๋Š” ์Šคํƒ€์ผ์„ ์ ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์˜ˆ์ œ

@media (min-width: 768px) and (min-resolution: 2dppx), (max-width: 600px) {
  body {
    background-color: lightcoral;
  }
}

4.์ปจํ…Œ์ด๋„ˆ ์ฟผ๋ฆฌ ์‚ฌ์šฉ (CSS Level 4)

์ฝ˜ํ…Œ์ด๋„ˆ ์ฟผ๋ฆฌ๋Š” ์š”์†Œ์˜ ๋ถ€๋ชจ ํฌ๊ธฐ์— ๋”ฐ๋ผ ์Šคํƒ€์ผ์„ ์ ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์ƒˆ๋กœ์šด ๊ธฐ๋ฒ•์ž…๋‹ˆ๋‹ค. ๋ธŒ๋ผ์šฐ์ € ์ง€์›์ด ์ œํ•œ์ ์ด์ง€๋งŒ, ์ตœ์‹  ๊ธฐ์ˆ ์„ ๋ฏธ๋ฆฌ ์ตํžˆ๋Š” ๊ฒƒ์€ ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค.

์˜ˆ์ œ

/* ์ฝ˜ํ…Œ์ด๋„ˆ ํฌ๊ธฐ์— ๋”ฐ๋ฅธ ์Šคํƒ€์ผ ์กฐ์ • */
.container {
  container-type: inline-size;
}

@container (min-width: 500px) {
  .item {
    font-size: 20px;
  }
}

5. ํ”„๋ฆฌํผ๋“œ ์ปฌ๋Ÿฌ ์Šคํ‚ด

์‚ฌ์šฉ์ž์˜ ์‹œ์Šคํ…œ ์ƒ‰์ƒ ์„ค์ •์— ๋”ฐ๋ผ ์Šคํƒ€์ผ์„ ์กฐ์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹คํฌ ๋ชจ๋“œ์™€ ๋ผ์ดํŠธ ๋ชจ๋“œ์— ๋งž์ถฐ ์‚ฌ์ดํŠธ์˜ ์ƒ‰์ƒ์„ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์˜ˆ์ œ

/* ๊ธฐ๋ณธ ๋ผ์ดํŠธ ๋ชจ๋“œ ์Šคํƒ€์ผ */
body {
  background-color: white;
  color: black;
}

/* ๋‹คํฌ ๋ชจ๋“œ ์Šคํƒ€์ผ */
@media (prefers-color-scheme: dark) {
  body {
    background-color: black;
    color: white;
  }
}

6. ์‚ฌ์šฉ์ž ํ™˜๊ฒฝ ์„ค์ • ๊ธฐ๋ฐ˜ ์Šคํƒ€์ผ ์กฐ์ •

์‚ฌ์šฉ์ž์˜ ํ™˜๊ฒฝ ์„ค์ •์— ๋งž์ถฐ ์›น์‚ฌ์ดํŠธ์˜ ์Šคํƒ€์ผ์„ ์กฐ์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ์‚ฌ์šฉ์ž๊ฐ€ ์• ๋‹ˆ๋ฉ”์ด์…˜์„ ์„ ํ˜ธํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ ์• ๋‹ˆ๋ฉ”์ด์…˜์„ ๋น„ํ™œ์„ฑํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์˜ˆ์ œ

/* ๊ธฐ๋ณธ ์• ๋‹ˆ๋ฉ”์ด์…˜ ์Šคํƒ€์ผ */
@keyframes example {
  from {opacity: 0;}
  to {opacity: 1;}
}

div {
  animation: example 1s linear infinite;
}

/* ์‚ฌ์šฉ์ž๊ฐ€ ์• ๋‹ˆ๋ฉ”์ด์…˜์„ ์„ ํ˜ธํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ */
@media (prefers-reduced-motion: reduce) {
  div {
    animation: none;
  }
}

7. ๋ฏธ๋””์–ด ์ฟผ๋ฆฌ๋กœ ๋ ˆ์ด์•„์›ƒ ์ตœ์ ํ™”

๋ ˆ์ด์•„์›ƒ์„ ์ตœ์ ํ™”ํ•˜์—ฌ ๋‹ค์–‘ํ•œ ํ™”๋ฉด ํฌ๊ธฐ์—์„œ ๋ณด๊ธฐ ์ข‹์€ ๋ ˆ์ด์•„์›ƒ์„ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์˜ˆ์ œ

/* ๊ธฐ๋ณธ ๋ ˆ์ด์•„์›ƒ */
.container {
  display: flex;
  flex-direction: column;
}

@media (min-width: 600px) {
  .container {
    flex-direction: row;
  }
}

์‹ค์ „ ์˜ˆ์ œ๐Ÿ› ๏ธ

๋ฐ˜์‘ํ˜• ์›น ๋””์ž์ธ์„ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•ด ๋‹ค์–‘ํ•œ ๋ฏธ๋””์–ด ์ฟผ๋ฆฌ์™€ CSS ๊ธฐ๋ฒ•์„ ์‚ฌ์šฉํ•˜์—ฌ ์‹ค์ „ ์˜ˆ์ œ๋ฅผ ์ž‘์„ฑํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ์ด ์˜ˆ์ œ์—์„œ๋Š” ๋ฐ˜์‘ํ˜• ๋‚ด๋น„๊ฒŒ์ด์…˜ ๋ฐ”์™€ ๋ฐ˜์‘ํ˜• ์ด๋ฏธ์ง€ ๊ฐค๋Ÿฌ๋ฆฌ๋ฅผ ๋งŒ๋“ค์–ด๋ด…๋‹ˆ๋‹ค.

์˜ˆ์ œ 1: ๋ฐ˜์‘ํ˜• ๋„ค๋น„๊ฒŒ์ด์…˜ ๋ฐ”

๋ฐ˜์‘ํ˜• ๋„ค๋น„๊ฒŒ์ด์…˜ ๋ฐ”: ํ™”๋ฉด ๋„ˆ๋น„๊ฐ€ 768px ์ดํ•˜์ผ ๋•Œ ํ–„๋ฒ„๊ฑฐ ๋ฉ”๋‰ด๊ฐ€ ํ‘œ์‹œ๋˜๊ณ , ์ด๋ฅผ ํด๋ฆญํ•˜๋ฉด ๋„ค๋น„๊ฒŒ์ด์…˜ ๋งํฌ๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. ํฐ ํ™”๋ฉด์—์„œ๋Š” ๋ชจ๋“  ๋„ค๋น„๊ฒŒ์ด์…˜ ๋งํฌ๊ฐ€ ๊ฐ€๋กœ๋กœ ๋‚˜์—ด๋ฉ๋‹ˆ๋‹ค.

HTML

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Responsive Navbar</title>
  <link rel="stylesheet" href="styles.css">
</head>
<body>
  <nav class="navbar">
    <div class="logo">MySite</div>
    <div class="menu-icon" onclick="toggleMenu()">&#9776;</div>
    <ul class="nav-links">
      <li><a href="#">Home</a></li>
      <li><a href="#">About</a></li>
      <li><a href="#">Services</a></li>
      <li><a href="#">Contact</a></li>
    </ul>
  </nav>

  <script>
    function toggleMenu() {
      const navLinks = document.querySelector('.nav-links');
      navLinks.classList.toggle('active');
    }
  </script>
</body>
</html>

CSS

body {
  font-family: Arial, sans-serif;
  margin: 0;
  padding: 0;
}

.navbar {
  display: flex;
  justify-content: space-between;
  align-items: center;
  background-color: #333;
  padding: 10px;
}

.logo {
  color: white;
  font-size: 24px;
}

.nav-links {
  list-style: none;
  display: flex;
  margin: 0;
  padding: 0;
}

.nav-links li {
  margin: 0 10px;
}

.nav-links a {
  text-decoration: none;
  color: white;
  padding: 5px 10px;
  border-radius: 5px;
  transition: background 0.3s;
}

.nav-links a:hover {
  background-color: #575757;
}

.menu-icon {
  display: none;
  font-size: 24px;
  color: white;
  cursor: pointer;
}

@media (max-width: 768px) {
  .nav-links {
    display: none;
    flex-direction: column;
    width: 100%;
    position: absolute;
    top: 50px;
    left: 0;
    background-color: #333;
  }

  .nav-links.active {
    display: flex;
  }

  .nav-links li {
    text-align: center;
    margin: 10px 0;
  }

  .menu-icon {
    display: block;
  }
}

์˜ˆ์ œ 2: ๋ฐ˜์‘ํ˜• ์ด๋ฏธ์ง€ ๊ฐค๋Ÿฌ๋ฆฌ

๋ฐ˜์‘ํ˜• ์ด๋ฏธ์ง€ ๊ฐค๋Ÿฌ๋ฆฌ: ํ™”๋ฉด ๋„ˆ๋น„์— ๋”ฐ๋ผ ๊ฐค๋Ÿฌ๋ฆฌ์˜ ์—ด ์ˆ˜๊ฐ€ ๋ณ€ํ•ฉ๋‹ˆ๋‹ค. 600px ๋ฏธ๋งŒ์—์„œ๋Š” 1์—ด, 600px ์ด์ƒ์—์„œ๋Š” 2์—ด, 1024px ์ด์ƒ์—์„œ๋Š” 3์—ด๋กœ ์ด๋ฏธ์ง€๊ฐ€ ๋ฐฐ์น˜๋ฉ๋‹ˆ๋‹ค.

HTML

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Responsive Image Gallery</title>
  <link rel="stylesheet" href="styles.css">
</head>
<body>
  <div class="gallery">
    <div class="gallery-item"><img src="image1.jpg" alt="Image 1"></div>
    <div class="gallery-item"><img src="image2.jpg" alt="Image 2"></div>
    <div class="gallery-item"><img src="image3.jpg" alt="Image 3"></div>
    <div class="gallery-item"><img src="image4.jpg" alt="Image 4"></div>
    <div class="gallery-item"><img src="image5.jpg" alt="Image 5"></div>
    <div class="gallery-item"><img src="image6.jpg" alt="Image 6"></div>
  </div>
</body>
</html>

CSS

body {
  font-family: Arial, sans-serif;
  margin: 0;
  padding: 0;
}

.gallery {
  display: grid;
  gap: 10px;
  padding: 10px;
}

.gallery-item {
  overflow: hidden;
}

.gallery-item img {
  width: 100%;
  height: auto;
  display: block;
  transition: transform 0.3s;
}

.gallery-item img:hover {
  transform: scale(1.1);
}

@media (min-width: 600px) {
  .gallery {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (min-width: 1024px) {
  .gallery {
    grid-template-columns: repeat(3, 1fr);
  }
}

๋””๋ฒ„๊น…๊ณผ ์ตœ์ ํ™”๐Ÿ› ๏ธ

๋ฏธ๋””์–ด ์ฟผ๋ฆฌ ๋””๋ฒ„๊น… ํˆด ์†Œ๊ฐœ

๋ธŒ๋ผ์šฐ์ € ๊ฐœ๋ฐœ์ž ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฏธ๋””์–ด ์ฟผ๋ฆฌ๋ฅผ ๋””๋ฒ„๊น…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐœ๋ฐœ์ž ๋„๊ตฌ๋ฅผ ์—ด๊ณ , "Toggle Device toolbar"๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋‹ค์–‘ํ•œ ํ™”๋ฉด ํฌ๊ธฐ์—์„œ ์‚ฌ์ดํŠธ๋ฅผ ํ…Œ์ŠคํŠธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

toggle device toolbar

์„ฑ๋Šฅ ์ตœ์ ํ™”

  • ๋ฏธ๋””์–ด ์ฟผ๋ฆฌ ์ˆœ์„œ: ๋ฏธ๋””์–ด ์ฟผ๋ฆฌ๋Š” CSS ํŒŒ์ผ์˜ ์ƒ๋‹จ์— ์œ„์น˜ํ•˜๋„๋ก ํ•˜์—ฌ, ํŽ˜์ด์ง€๊ฐ€ ๋กœ๋“œ๋  ๋•Œ ์ฟผ๋ฆฌ๋ฅผ ๋นจ๋ฆฌ ํ•ด์„ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.
  • CSS ์ตœ์ ํ™”: ๋ถˆํ•„์š”ํ•œ CSS ์ฝ”๋“œ๋ฅผ ์ œ๊ฑฐํ•˜๊ณ , CSS ํŒŒ์ผ์„ ์••์ถ•ํ•˜์—ฌ ํŒŒ์ผ ํฌ๊ธฐ๋ฅผ ์ตœ์†Œํ™”ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ํŽ˜์ด์ง€์˜ ๋กœ๋”ฉ ์†๋„๋ฅผ ๊ฐœ์„ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์ด๋ฏธ์ง€ ์ตœ์ ํ™”: ๋ฐ˜์‘ํ˜• ์ด๋ฏธ์ง€๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ๋Š” ํ•„์š”ํ•œ ํฌ๊ธฐ๋งŒํผ ์ด๋ฏธ์ง€๋ฅผ ์ตœ์ ํ™”ํ•˜์—ฌ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ๋Œ€์—ญํญ์„ ์ ˆ์•ฝํ•˜๊ณ  ํŽ˜์ด์ง€ ๋กœ๋”ฉ ์†๋„๋ฅผ ํ–ฅ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๋ ˆ์ด์•„์›ƒ ์ตœ์ ํ™”: ๋ ˆ์ด์•„์›ƒ์ด ๋ณต์žกํ•œ ๊ฒฝ์šฐ, CSS ๊ทธ๋ฆฌ๋“œ๋‚˜ ํ”Œ๋ ‰์Šค๋ฐ•์Šค์™€ ๊ฐ™์€ ๋ ˆ์ด์•„์›ƒ ๊ธฐ์ˆ ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ฝ”๋“œ๋ฅผ ์ตœ์ ํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๋ฏธ๋””์–ด ์ฟผ๋ฆฌ ์กฐ๊ฑด ์ตœ์ ํ™”: ๋ถˆํ•„์š”ํ•œ ๋ฏธ๋””์–ด ์ฟผ๋ฆฌ๋ฅผ ์ œ๊ฑฐํ•˜๊ณ , ์กฐ๊ฑด์„ ์ตœ์ ํ™”ํ•˜์—ฌ ํ•„์š”ํ•œ ์Šคํƒ€์ผ๋งŒ ์ ์šฉ๋˜๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.
  • ๋ธŒ๋ผ์šฐ์ € ์บ์‹ฑ ํ™œ์šฉ: ์บ์‹ฑ์„ ํ†ตํ•ด ์ž์ฃผ ์‚ฌ์šฉ๋˜๋Š” ํŒŒ์ผ์„ ๋ธŒ๋ผ์šฐ์ €์— ์ €์žฅํ•˜์—ฌ ๋‹ค์šด๋กœ๋“œ ์‹œ๊ฐ„์„ ๋‹จ์ถ•ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ ์ ˆํ•œ ์บ์‹ฑ ์ „๋žต์„ ์‚ฌ์šฉํ•˜์—ฌ ํŽ˜์ด์ง€์˜ ์„ฑ๋Šฅ์„ ํ–ฅ์ƒํ•ฉ๋‹ˆ๋‹ค.

์˜ˆ์‹œ

/* ๋ฏธ๋””์–ด ์ฟผ๋ฆฌ ๋‚ด ๋””๋ฒ„๊น…์šฉ ์ถœ๋ ฅ ์ถ”๊ฐ€ */
@media (min-width: 768px) {
  body {
    background-color: lightblue;
    /* ๋””๋ฒ„๊น…์šฉ ์ถœ๋ ฅ ์ถ”๊ฐ€ */
    content: 'Min-width: 768px';
  }
}
/* CSS ํŒŒ์ผ ์••์ถ• ๋ฐ ์ตœ์ ํ™” */
/* Before */
body {
  background-color: lightblue;
}

@media (min-width: 768px) {
  body {
    font-size: 16px;
  }
}

/* After */
body{background-color:lightblue}@media (min-width:768px){body{font-size:16px}}
<!-- ์ด๋ฏธ์ง€ ์ตœ์ ํ™” -->
<!-- Before -->
<img src="large-image.jpg" alt="Large Image">

<!-- After -->
<img src="small-image.jpg" alt="Small Image" width="320" height="240">

ํ•ต์‹ฌ ๋‚ด์šฉ๐Ÿ‘€

css ๋ฏธ๋””์–ด์ฟผ๋ฆฌ
css ๋ฏธ๋””์–ด์ฟผ๋ฆฌ
css ๋ฏธ๋””์–ด์ฟผ๋ฆฌ

728x90
๋ฐ˜์‘ํ˜•