roqkf

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

๐Ÿ’ป Development/๊ธฐ๋ก

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

ahyeon7 2023. 1. 16. 01:05

โค๏ธ‍๐Ÿ”ฅ ๋ฏธ๋””์–ด ์ฟผ๋ฆฌ

CSS2.1 ๋ถ€ํ„ฐ ๋ฏธ๋””์–ด ํƒ€์ž…์œผ๋กœ ๋‹จ๋ง๊ธฐ ์ข…๋ฅ˜์— ๋”ฐ๋ผ ๊ฐ๊ฐ ๋‹ค๋ฅธ ์Šคํƒ€์ผ์„ ์ ์šฉ์‹œํ‚ค๋Š” ๊ฒŒ ๊ฐ€๋Šฅํ•ด์กŒ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๊ธฐ๊ธฐ์˜ ํŠน์„ฑ์„ ์ •ํ™•ํžˆ ํŒ๋‹จํ•˜๊ธฐ ์–ด๋ ต๋‹ค๋Š” ๋‹จ์  ๋•Œ๋ฌธ์— ๋„๋ฆฌ ์‚ฌ์šฉ๋˜์ง€ ์•Š์•˜์œผ๋‚˜, CSS3๋ถ€ํ„ฐ๋Š” ์ด ๋ฏธ๋””์–ด ํƒ€์ž…์„ ๊ฐœ์„ ํ•˜์—ฌ ์ข€ ๋” ๊ตฌ์ฒด์ ์ธ ์กฐ๊ฑด์œผ๋กœ ํ•„์š”ํ•œ ์Šคํƒ€์ผ์„ ์ ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜์˜€์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฐ ๋ฏธ๋””์–ด ์ฟผ๋ฆฌ๋Š” ๋ฐ˜์‘ํ˜• ์›น ๋””์ž์ธ์˜ ํ•ต์‹ฌ ๋ถ€๋ถ„์ž…๋‹ˆ๋‹ค. ๋ทฐํฌํŠธ(๋ธŒ๋ผ์šฐ์ € ์ฐฝ)์˜ ํฌ๊ธฐ์— ๋”ฐ๋ผ ์„œ๋กœ ๋‹ค๋ฅธ ์กฐํŒ์„ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.


โค๏ธ‍๐Ÿ”ฅ ๋ฏธ๋””์–ด ์ฟผ๋ฆฌ ์ ์šฉ๋ฒ•

๋ฏธ๋””์–ด ์ฟผ๋ฆฌ๋ฅผ ์ ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์—๋Š” ๋‹ค์Œ ๋ฐฉ๋ฒ•๋“ค์ด ์žˆ์Šต๋‹ˆ๋‹ค.

<link href="cssํŒŒ์ผ์ด๋ฆ„.css" media="screen and (min-width: 400px) and (max-width: 1000px)" rel="stylesheet">

CSS ํŒŒ์ผ์„ HTML ํŒŒ์ผ์— ์ ์šฉํ•˜๋˜ ๊ฒƒ์ฒ˜๋Ÿผ <head>ํƒœ๊ทธ ์•ˆ์— <link>ํƒœ๊ทธ๋ฅผ ์œ„์น˜ ์‹œํ‚ต๋‹ˆ๋‹ค. ๋‹ค๋ฅธ css ํŒŒ์ผ์„ ์ ์šฉํ•  ๋•Œ์™€ ๋‹ค๋ฅธ ์ ์€ ๋ฏธ๋””์–ด ์†์„ฑ์„ ์‚ฌ์šฉํ•˜์—ฌ ์กฐ๊ฑด์„ ์ง€์ •ํ•œ๋‹ค๋Š” ์ ์ž…๋‹ˆ๋‹ค. ๋ฏธ๋””์–ด ์†์„ฑ ๋‚ด ํ•ด๋‹น ์กฐ๊ฑด์„ ๋งŒ์กฑํ•  ๋•Œ์—๋งŒ ํ•ด๋‹น css ํŒŒ์ผ์„ ๋ถˆ๋Ÿฌ์˜ค๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

<style type="text/css" media="screen and (min-width: 400px) and (max-width: 1000px)">
	/* ์—ฌ๊ธฐ css๋ฅผ ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค. */
</style>

HTML ํŒŒ์ผ ๋‚ด <head>ํƒœ๊ทธ ์•ˆ์—์„œ <style>ํƒœ๊ทธ๋ฅผ ์—ด์–ด ๋ฏธ๋””์–ด ์ฟผ๋ฆฌ๋ฅผ ์ž‘์„ฑํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๋ฐฉ๋ฒ•๋„ ๋ฏธ๋””์–ด ์†์„ฑ ๋‚ด ํ•ด๋‹น ์กฐ๊ฑด์„ ๋งŒ์กฑํ•  ๋•Œ์—๋งŒ ํ•ด๋‹น ์Šคํƒ€์ผ์„ ์ ์šฉํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

โœจ CSS ํŒŒ์ผ ํ˜น์€ ํƒœ๊ทธ ์•ˆ์—์„œ ์ง์ ‘ ๋ฏธ๋””์–ด ์ฟผ๋ฆฌ ์ž‘์„ฑ

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


โค๏ธ‍๐Ÿ”ฅ ๋ฏธ๋””์–ด ์ฟผ๋ฆฌ ๊ตฌ๋ฌธ

@media ๋ฏธ๋””์–ด ํƒ€์ž… (์กฐ๊ฑด(๋„ˆ๋น„ ๋ฐ ๋†’์ด)) {
    (CSS ์ž…๋ ฅํ•˜๋Š” ๋ถ€๋ถ„)
}

--์˜ˆ์ œ
@media screen (max-width: 400px) {
    body {
			color: red;
		}
}

โœจ ๋ฏธ๋””์–ด ์ฟผ๋ฆฌ์˜ ๊ธฐ๋ณธ์ ์ธ ๊ตฌ์กฐ

  • ๋ฏธ๋””์–ด ํƒ€์ž… : ์ฝ”๋“œ๊ฐ€ ์–ด๋–ค ๋ฏธ๋””์–ด๋ฅผ ์œ„ํ•œ ๊ฒƒ์ธ์ง€ ๋ธŒ๋ผ์šฐ์ €์— ์•Œ๋ ค์ค๋‹ˆ๋‹ค.
  • ์กฐ๊ฑด(๋„ˆ๋น„ ๋ฐ ๋†’์ด) : ์ง€์ •ํ•œ ์ฐฝ์˜ ๋„ˆ๋น„๋‚˜ ๋†’์ด๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๊ธฐ์ค€์ด ๋งŒ์กฑ๋˜๋ฉด ์Šคํƒ€์ผ์ด ์ ์šฉ๋˜๊ณ , ๋งŒ์กฑ๋˜์ง€ ์•Š์œผ๋ฉด ์ ์šฉ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  • CSS ์ž…๋ ฅํ•˜๋Š” ๋ถ€๋ถ„ : ์กฐ๊ฑด๋ฌธ์„ ํ†ต๊ณผํ•˜๊ณ , ๋ฏธ๋””์–ด ํƒ€์ž…์ด ์˜ฌ๋ฐ”๋ฅธ ๊ฒฝ์šฐ ์Šคํƒ€์ผ์ด ์ ์šฉ ๋ฉ๋‹ˆ๋‹ค.

โœจ ๋ฏธ๋””์–ด ํƒ€์ž…(Media Type)

์ง€์ •ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฏธ๋””์–ด ํƒ€์ž…์€ ์—ฌ๋Ÿฌ ์ข…๋ฅ˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

  • all : ๋ชจ๋“  ๋ฏธ๋””์–ด ํƒ€์ž…
  • print : ํ”„๋ฆฐํ„ฐ
  • screen : ์ปดํ“จํ„ฐ ํ™”๋ฉด
  • speech : ์Šคํฌ๋ฆฐ ๋ฆฌ๋”

์ด ์™ธ์—๋„ ๋‹ค์–‘ํ•œ ํƒ€์ž…์ด ์žˆ์œผ๋‚˜ ์‹ค๋ฌด์—์„œ ์ž์ฃผ ์“ฐ์ด๋Š” ํƒ€์ž…์€ all, print, screen ์ •๋„์ด๋ฉฐ, ๊ทธ ์ค‘์—์„œ๋„ screen์ด ๋Œ€๋ถ€๋ถ„์ž…๋‹ˆ๋‹ค. ํ™”๋ฉด์„ ์ถœ๋ ฅํ•˜๋Š” ๋””์Šคํ”Œ๋ ˆ์ด๊ฐ€ ์žˆ๋Š” ๋ฏธ๋””์–ด๋“ค์€ ๋Œ€๊ฐœ screen ํƒ€์ž…์— ์†ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ํ˜„์‹ค์ ์œผ๋กœ ๊ณ ๋ คํ•ด์•ผ ํ•˜๋Š” ๋ฏธ๋””์–ด๋Š” ์ „๋ถ€ ์—ฌ๊ธฐ์— ํ•ด๋‹นํ•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

โœจ ์กฐ๊ฑด(๋„ˆ๋น„ ๋ฐ ๋†’์ด)

๋ฐ˜์‘ํ˜• ๋””์ž์ธ์„ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด ๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉํ•˜๋Š” ๊ธฐ๋Šฅ์€ ๋ทฐํฌํŠธ ๋„ˆ๋น„์ด๋ฉฐ, min-width์™€ max-width, width ๋“ฑ์˜ ๋ฏธ๋””์–ด ๊ธฐ๋Šฅ์„ ํ™œ์šฉํ•ด ๋ทฐํฌํŠธ๊ฐ€ ํŠน์ • ๋„ˆ๋น„ ์ด์ƒ ๋˜๋Š” ์ดํ•˜์ธ ๊ฒฝ์šฐ CSS๋ฅผ ์ ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

@media screen and (width: 600px) {
	body {
		color : red;
	}
}

width(ํ˜น์€ height)๋Š” ๋ธŒ๋ผ์šฐ์ €์˜ ์ฐฝ ํฌ๊ธฐ์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ min- ํ˜น์€ max- ์ ‘๋‘์‚ฌ๋ฅผ ๋ถ™์ด๊ฒŒ ๋˜๋ฉด ์ตœ์†Œ๊ฐ’์ธ์ง€ ์ตœ๋Œ€๊ฐ’์ธ์ง€ ํ‘œ์‹œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

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

์˜ˆ๋ฅผ ๋“ค์–ด ๋ทฐํฌํŠธ๊ฐ€ 400px ๋ณด๋‹ค ์ข์€ ๊ฒฝ์šฐ ์ƒ‰์„ ํŒŒ๋ž€์ƒ‰์œผ๋กœ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด ์ด๋Ÿฐ ์‹์œผ๋กœ max-width ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

โœจ ๋ฐฉํ–ฅ์„ฑ

์„ธ๋กœ ๋ชจ๋“œ์ธ์ง€ ๊ฐ€๋กœ ๋ชจ๋“œ์ธ์ง€ ๊ฒ€์‚ฌํ•˜์—ฌ CSS ์Šคํƒ€์ผ์„ ์ฃผ๊ณ  ์‹ถ์€ ๊ฒฝ์šฐ, orientation์œผ๋กœ ๊ฒ€์‚ฌ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

@media (orientation: landscape) {
    body {
        color: rebeccapurple;
    }
}

์˜ˆ๋ฅผ ๋“ค์–ด ์žฅ์น˜๊ฐ€ ๊ฐ€๋กœ ๋ฐฉํ–ฅ์ธ ๊ฒฝ์šฐ, ํ•ด๋‹น ์ฝ”๋“œ๋ฅผ ํ†ตํ•ด ๋ณธ๋ฌธ์˜ ํ…์ŠคํŠธ ์ƒ‰์ƒ์„ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

โœจ ๋ณต์žกํ•œ ๋ฏธ๋””์–ด ์ฟผ๋ฆฌ

๋ฐ˜์‘ํ˜• ์›น์„ ๊ตฌ์ถ•ํ•˜๋‹ค ๋ณด๋ฉด ๋” ๋ณต์žกํ•œ ๋ฏธ๋””์–ด ์ฟผ๋ฆฌ๋ฅผ ํ™œ์šฉํ•˜๊ณ  ์‹ถ์„ ๋•Œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฏธ๋””์–ด ์ฟผ๋ฆฌ๋ฅผ ๊ฒฐํ•ฉํ•˜๊ฑฐ๋‚˜, ์ฟผ๋ฆฌ ๋ชฉ๋ก์„ ๋งŒ๋“ค๊ฑฐ๋‚˜ ํ•˜๋Š” ์‹์œผ๋กœ ๋ฏธ๋””์–ด ์ฟผ๋ฆฌ๋ฅผ ์ข€ ๋” ๊นŠ์ด ์žˆ๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

โœจ ๋…ผ๋ฆฌ๊ณฑ(and) ๋ฏธ๋””์–ด ์ฟผ๋ฆฌ

and๋ฅผ ์‚ฌ์šฉํ•ด ๋ฏธ๋””์–ด ๊ธฐ๋Šฅ์„ ํ•ฉ์น  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

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

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

โœจ ๋…ผ๋ฆฌํ•ฉ(or) ๋ฏธ๋””์–ด ์ฟผ๋ฆฌ

์ฝค๋งˆ๋กœ ๋ถ„๋ฆฌ๋ฅผ ํ•œ๋‹ค๋ฉด ๋ฏธ๋””์–ด ์ฟผ๋ฆฌ์˜ ํ•ด๋‹น ์กฐ๊ฑด ์ค‘ ์–ด๋А ํ•˜๋‚˜๋ฅผ ๋งŒ์กฑ์‹œํ‚ฌ ๋•Œ CSS ์Šคํƒ€์ผ์„ ์ ์šฉ์‹œํ‚ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

@media screen and (min-width: 600px), screen and (orientation: landscape) {
    body {
        color: blue;
    }
}

์ด๋Ÿฐ ์‹์œผ๋กœ ๋ทฐํฌํŠธ์˜ ๋„“์ด๊ฐ€ 600px ์ด์ƒ์ด๊ฑฐ๋‚˜, ์žฅ์น˜๊ฐ€ ๊ฐ€๋กœ ๋ฐฉํ–ฅ์ธ ๊ฒฝ์šฐ ํ…์ŠคํŠธ๋Š” ํŒŒ๋ž€์ƒ‰์ด ๋ฉ๋‹ˆ๋‹ค. ์ด ์ค‘ ํ•˜๋‚˜๋ผ๋„ ์กฐ๊ฑด์„ ๋งŒ์กฑํ•œ๋‹ค๋ฉด ์ฟผ๋ฆฌ ์•ˆ์˜ CSS ์Šคํƒ€์ผ์ด ์ ์šฉ ๋ฉ๋‹ˆ๋‹ค.

โœจ ๋ถ€์ •(not) ๋ฏธ๋””์–ด ์ฟผ๋ฆฌ

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

@media not all and (orientation: landscape) {
    body {
        color: blue;
    }
}

์ด ์˜ˆ์‹œ๋Š” ๋ฐฉํ–ฅ์ด ์„ธ๋กœ์ธ ๊ฒฝ์šฐ์—๋งŒ ํ…์ŠคํŠธ๊ฐ€ ํŒŒ๋ž€์ƒ‰์œผ๋กœ ์ ์šฉ์ด ๋˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.