๋ฏธ๋์ด์ฟผ๋ฆฌ ์๊ฐ
๋ฏธ๋์ดํด๋ฆฌ(Media Queries)๋ ๊ฐ ๋ฏธ๋์ด ๋งค์ฒด์ ๋ฐ๋ผ ๋ค๋ฅธ ์คํ์ผ(css style)์ ์ ์ฉํ ์ ์๊ฒ ๋ง๋๋ ๊ฒ์ด๋ค.
๋ฏธ๋์ด์ฟผ๋ฆฌ๋ ๋์ผํ ์น ํ์ด์ง๋ฅผ ๋ค์ํ ํ๊ฒฝ์ ์ฌ์ฉ์๋ค์๊ฒ ์ต์ ํ๋ ๊ฒฝํ์ ์ ๊ณตํ ์ ์๊ฒ ํด์ค๋ค.
@media(at media)
๋ฏธ๋์ด ์ฟผ๋ฆฌ๋ CSS2 Media Types์ ํ์ฅํ๊ธฐ ๋๋ฌธ์ ์ ์ธ ๋ฐฉ๋ฒ์ ๋์ผํ๋ค.
@media mediaqueries { /* style rules */ }
@media ๋ก ์์ํ๋ฉฐ, ์ด ํค์๋๋ ์ด์ ๋ถํฐ ๋ฏธ๋์ด ์ฟผ๋ฆฌ๋ฅผ ์์ํ๋ค ๋ผ๋ ๋ป์ด๋ค.
๊ทธ ๋ค์ ๋ฏธ๋์ด ์ฟผ๋ฆฌ ๊ตฌ๋ฌธ(์ ์ฝ๋์ mediaqueries) ์ด ๋์ค๊ณ ์ด์ด์ ์ค๊ดํธ( { } )๋ฅผ ์ด์ฉํด์ ์คํ์ผ ๊ท์น์ด ๋ค์ด๊ฐ๋ค.
๋ฏธ๋์ด ์ฟผ๋ฆฌ ๊ตฌ๋ฌธ์ ๋ ผ๋ฆฌ์ ์ผ๋ก ํ๊ฐ๋๋ฉฐ ์ฐธ์ด๋ฉด ๋ค์ ๋์ค๋ ์คํ์ผ ๊ท์น์ด ์ ์ฉ๋๊ณ , ๊ฑฐ์ง์ด๋ฉด ๋ฌด์๋๋ค.
๋ฏธ๋์ด ์ฟผ๋ฆฌ ๊ตฌ๋ฌธ์ ๋ฏธ๋์ด ํ์ (Media Types)๊ณผ ๋ฏธ๋์ด ํน์ฑ(Media Features)์ผ๋ก ์ด๋ฃจ์ด์ ธ ์์ต๋๋ค.
๋ฏธ๋์ด ํ์
- all, print, screen
ํ๋ฉด์ ์ถ๋ ฅํ๋ ๋์คํ๋ ์ด๊ฐ ์๋ ๋ฏธ๋์ด๋ค์ ์ ๋ถ screen์ ์ํ๊ธฐ ๋๋ฌธ์ ํ์ค์ ์ผ๋ก ๊ณ ๋ คํด์ผํ๋ ๋ฏธ๋์ด๋ค์
์ ๋ถ ์ฌ๊ธฐ์ ํด๋น์ด ๋๋ค. print ํ์ ๋ ๊ฐํน ์ฌ์ฉ์ด ๋ฉ๋๋ค.
all ํ์ ์ ๋ชจ๋ ๋ฏธ๋์ด์ ์ ์ฉ๋๋ ํ์ ์ด์ง๋ง, ๋ฏธ๋์ด๋ฅผ ๊ตฌ๋ถํ๋ ์ฉ๋๊ฐ ์๋๊ธฐ ๋๋ฌธ์ ์ ์ฉํ๊ฒ ์ฌ์ฉ๋์ง๋ ์๋๋ค.
๋ฏธ๋์ด ํน์ฑ
- width, orientation,
width๋ ๋ทฐํฌํธ์ ๋๋น, ์ฆ ๋ธ๋ผ์ฐ์ ์ฐฝ์ ๋๋น๋ฅผ ๋งํฉ๋๋ค.(์คํฌ๋ฆฐ์ ํฌ๊ธฐ x)
orientation์ ๋ฏธ๋์ด๊ฐ ์ธ๋ก๋ชจ๋์ธ์ง ๊ฐ๋ก๋ชจ๋์ธ์ง๋ฅผ ๊ตฌ๋ถํ๋ค.
๋ฏธ๋์ด ์ฟผ๋ฆฌ์์๋ ์ด ๊ตฌ๋ถ์ width์ height ํน์ฑ์ ๊ฐ์ ๋น๊ตํด์ height๊ฐ width๋ณด๋ค ๊ฐ๊ฑฐ๋ ํฌ๋ฉด ์ธ๋ก๋ชจ๋
๋ฐ๋์ธ ๊ฒฝ์ฐ์๋ ๊ฐ๋ก๋ชจ๋๋ผ๊ณ ํด์ํฉ๋๋ค. ์ธ๋ก๋ชจ๋์์๋ portrait, ๊ฐ๋ก๋ชจ๋์์๋ landscape ํค์๋์ ๋งค์นญ์ด ๋๋ค.
๋ฏธ๋์ด ์ฟผ๋ฆฌ Syntax
media_query_list
: S* [media_query [ ',' S* media_query ]* ]?
;
media_query
: [ONLY | NOT]? S* media_type S* [ AND S* expression ]*
| expression [ AND S* expression ]*
;
expression
: '(' S* media_feature S* [ ':' S* expr ]? ')' S*
;
์ฐธ๊ณ ๋ก Syntax๋ ์ ๋ถ ์ดํดํ ํ์๋ ์์ง๋ง ์ผ๋ถ ๊ธฐํธ๋ ์์๋์.
- [ a ] : a๊ฐ ๋์ฌ ์๋ ์๊ณ ๋์ค์ง ์์ ์๋ ์๋ค.
- a | b : a ๋๋ b ๋ ์ค์ ํ๋๋ฅผ ์ ํํ๋ค.
"|"๋ ํ์ดํ ๋ผ์ธ ๊ธฐํธ๋ก ํค๋ณด๋์ ์ญ์ฌ๋์(\) ํค๋ฅผ Shift ํค๋ฅผ ๋๋ฅธ ์ฑ๋ก ๋๋ฅด๋ฉด ๋์จ๋ค. - a? : a๊ฐ 0๋ฒ ๋์ค๊ฑฐ๋ 1๋ฒ๋ง ๋์ฌ ์ ์์
- a* : a๊ฐ 0๋ฒ ๋์ค๊ฑฐ๋ ๊ทธ ์ด์ ๊ณ์ ๋์ฌ ์ ์์
- media_type : all, screen, print ๋ฑ ๋ช ์ธ์ ์ ์๋ ๋ฏธ๋์ด ํ์
- media_feature : width, orientation ๋ฑ ๋ช ์ธ์ ์ ์๋ ๋ฏธ๋์ด ํน์ฑ
- Sํ๊ณ *(๋ณํ)๋ ๊ณต๋ฐฑ์ ๊ด๋ จ๋ ํ์์ด๊ธฐ ๋๋ฌธ์ ๊ทธ๋ฅ ์๋ค๊ณ ๋ณด๋ฉด ๋๋ค.
์ Syntax๋ฅผ ์์ฝํ๋ฉด
media_query_list
: ์ฌ๋ฌ๊ฐ์ ๋ฏธ๋์ด ์ฟผ๋ฆฌ๋ก ์ด๋ฃจ์ด์ง ๋ฆฌ์คํธ๋ก ์์ฑ ๊ฐ๋ฅํ๋ฉฐ, ์ผํ๋ฅผ ์ด์ฉํด์ ๊ตฌ๋ถํ๋ค.
media_query
: A ํํ - ๋ฏธ๋์ด ํ์
์ and ํค์๋๋ฅผ ์ด์ฉํด์ ๋ฏธ๋์ด ํํ์์ ๋ถ์ผ ์ ์๋ค.
๋ฏธ๋์ด ํ์ ์์๋ only ๋๋ not ํค์๋๊ฐ ์ฌ ์ ์๋ค.(ํํ์ ์์๋ ์ฌ์ฉ๋ถ๊ฐ)
๋ฏธ๋์ด ํํ์์ ์๋ต ๊ฐ๋ฅํ๊ธฐ ๋๋ฌธ์ ๋ฏธ๋์ด ํ์
๋จ๋
์ผ๋ก ์ฌ์ฉ๋ ์ ์๋ค.
: B ํํ - ๋ฏธ๋์ด ํ์
์์ด ๋ฏธ๋์ด ํํ์์ด ๋ฐ๋ก ๋์ฌ ์ ์๋ค.(๋ฏธ๋์ด ํ์
์ด ๋ช
์๋์ง ์์ผ๋ฉด all๋ก ๊ฐ์ฃผํ๋ค.)
๋ฏธ๋์ด ํํ์์ and ํค์๋๋ฅผ ์ด์ฉํด์ ๊ณ์ํด์ ๋์ฌ ์ ์๋ค.
expression
: ๋ฏธ๋์ด ํํ์์ ๊ดํธ๋ก ๊ฐ์ธ์ผ ํ๋ฉฐ, ํน์ฑ ์ด๋ฆ๊ณผ ํด๋นํ๋ ๊ฐ์ผ๋ก ์ด๋ฃจ์ด์ง๋ค. ์ด๋ฆ๊ณผ ๊ฐ์ : ๊ธฐํธ๋ก ์ฐ๊ฒฐํ๋ค.
๋, ๊ฐ์ด ์์ด ํน์ฑ ์ด๋ฆ๋ง์ผ๋ก๋ ์์ฑํ ์ ์๋ค.
ํน์ง 1. ์ฌ๋ฌ๊ฐ์ ๋ฏธ๋์ด ์ฟผ๋ฆฌ๋ก ์ด๋ฃจ์ด์ง ๋ฆฌ์คํธ๋ก ์์ฑํ ์ ์๋ค.
ํน์ง 2. ๋ฏธ๋์ด ํ์ ๋๋ ํํ์ ๋จ๋ ์ผ๋ก๋ ์์ฑํ ์ ์๋ค.
ํน์ง 3. ํํ์์ ๊ฐ์ด ์์ด ํน์ฑ ์ด๋ฆ๋ง์ผ๋ก ์์ฑํ ์ ์๋ค.
min-/max- ์ ๋์ฌ /ํ๋ฆฌํฝ์ค/
๋ฏธ๋์ด ํน์ฑ์ ์ด๋ฆ ์์ min- ๋๋ max- ์ ๋์ฌ๋ฅผ ๋ถ์ผ ์ ์๋ค.
์ค์ ๋ก ๋ฐ์ํ ์ฌ์ดํธ๋ฅผ ์ ์ํ ๋๋ ๋ณดํต ์ ๋์ฌ๋ฅผ ๋ถ์ฌ์ ์ฌ์ฉํ๋ค. (์ ๋์ฌ๋ฅผ ๋ถ์ด์ง ์๊ณ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ๋๋ถ๋ถ ํจ์จ์ ์ด์ง ๋ชปํ๋๊น)
์๋ฅผ ๋ค์ด ๋๋ถ๋ถ์ ๋ฐ์ํ ์ฌ์ดํธ๋ width ํน์ฑ์ ์ด์ฉํ๋๋ฐ, ์ ๋์ฌ ์์ด width: 00px ์ด๋ผ๊ณ ํ๊ฒ ์ ์ธํ๋ฉด
์ ํํ ๋ทฐํฌํธ์ ํฌ๊ธฐ๊ฐ 00px ์์๋ง ์ ์ฉ๋๊ธฐ ๋๋ฌธ์, ๋ค์ํ ๊ธฐ๊ธฐ๋ค์ ๋์ํ๊ธฐ ํ๋ค๋ค.
๊ทธ๋์ ์ ๋์ฌ๋ฅผ ์ฌ์ฉํ์ฌ ๋ฒ์๋ฅผ ์ง์ ํ๊ฒ ๋๋ฉด ํจ์ฌ ๊ฐ๊ฒฐํ๊ฒ ๋ฐ์ํ ์ฌ์ดํธ๋ฅผ ์ ์ํ ์ ์๋ค.
**์ฐธ๊ณ **
orientation, grid, scan ์๋ ํ๋ฆฌํฝ์ค๋ฅผ ๋ถ์ผ ์ ์๋ค. orientation์ ํค์๋๊ฐ ๋ค์ด๊ฐ๋ค.
๋ทฐํฌํธ์ ํฌ๊ธฐ๊ฐ ์ธ๋ก๋ก ๊ธด ํํ์ด๋ฉด Portrait๋ผ๋ ํค์๋๊ฐ ๋ค์ด๊ฐ๊ณ , ๊ฐ๋ก๋ก ๊ธด ํํ์ด๋ฉด landscape ํค์๋๊ฐ ์ ์ฉ๋๋ค.
media_query
: [ONLY | NOT]? S* media_type S* [ AND S* expression ]*
| expression [ AND S* expression ]*
์์ ์ฝ๋
@media screen { ... }
: ๋ฏธ๋์ด ํ์
์ด screen์ด๋ฉด ์ ์ฉ
@media screen and (min-width: 768px) { ... }
: ๋ฏธ๋์ด ํ์
์ด screen์ด๊ณ width๊ฐ 768px ์ด์์ด๋ฉด ์ ์ฉ๋ฉ๋๋ค. ๋ ๊ฐ ์ค ํ๋๋ผ๋ ๋ง์กฑํ์ง ์์ผ๋ฉด ๊ฑฐ์ง.
@media (min-width: 768px) and (max-width: 1024px) { ... }
: and๋ ์ฐ๊ฒฐ๋ ๋ชจ๋ ํํ์์ด ์ฐธ์ด๋ฉด ์ ์ฉ๋ฉ๋๋ค.(and ํค์๋๋ ์ฐ๊ฒฐ๋ ๋ถ๋ถ์ด ๋ชจ๋ ์ฐธ์ด์ด์ผ ์ ์ฉ๋๋ค.)
(โฌ๏ธ์์ฒ๋ผ ๋ฏธ๋์ด ํ์ ์ด ๋ช ์๋์ง ์์ผ๋ฉด all์ด๋ผ๊ณ ํด์ํ๋ค. )
@media (color-index)
: ๋ฏธ๋์ด ์ฅ์น๊ฐ color-index๋ฅผ ์ง์ํ๋ฉด ์ ์ฉ
@media screen and (min-width: 768px), screen and (orientation: portrait), ...
: ์ผํ๋ก ์ฐ๊ฒฐ๋ ๋ฏธ๋์ด ์ฟผ๋ฆฌ ์ค ํ๋๋ผ๋ ์ฐธ์ด๋ฉด ์ ์ฉ.( and ํค์๋์ ๋ฐ๋๋ผ๊ณ ์๊ฐํ์.)
@media not screen and (min-width: 768px)
: not ํค์๋๋ ํ๋์ media_query ์ ์ฒด๋ฅผ ๋ถ์ .
: (not screen) and (min-width: 768px) ์๋ชป๋ ํด์!
: not (screen and (min-width: 768px)) ์ฌ๋ฐ๋ฅธ ํด์! /์ ์ฒด๋ฅผ ๋ฌถ์!!/
: @media not screen and (min-width: 768px), print
์ฒซ ๋ฒ์งธ ๋ฏธ๋์ด ์ฟผ๋ฆฌ์๋ง not ํค์๋๊ฐ ์ ์ฉ๋๋ฉฐ, ๋ ๋ฒ์งธ ๋ฏธ๋์ด ์ฟผ๋ฆฌ(print)์๋ ์ํฅ์ด ์๋ค.
**์ฐธ๊ณ only ํค์๋๋ฅผ ์ฐ๋ ์์ฐ๋ ์๋ฌด๋ฐ ๋ณํ์๋ค. (์ด์ ๊ธฐ์ )
๋ฏธ๋์ด ์ฟผ๋ฆฌ ์ ์ธํ๋ 3๊ฐ์ง ๋ฐฉ๋ฒ
์ฐธ๊ณ ๋ก @media๋ฅผ ์ด์ฉํ ๋ฐฉ๋ฒ์ ๊ฐ์ฅ ๋ง์ด ์ฌ์ฉํ๋ฉฐ ๋๋จธ์ง 2๊ฐ์ง ๋ฐฉ๋ฒ์ ๊ฑฐ์ ์ฐ์ด์ง ์๋๋ค.
@media screen and (color)
: CSS ํ์ผ ๋ด๋ถ์ ๋๋ HTML์ <style> ํ๊ทธ ๋ด๋ถ์ ์ฌ์ฉ๊ฐ๋ฅ ํฉ๋๋ค. ๋๋ถ๋ถ์ ๊ฒฝ์ฐ ์ด๋ ๊ฒ ์ฌ์ฉ.
<link rel="stylesheet" media="screen and (color)" href="example.css">
: <link> ํ๊ทธ์ media ์์ฑ์ ๋ฏธ๋์ด ์ฟผ๋ฆฌ๋ฅผ ์ ์ธ. ๋ฏธ๋์ด ์ฟผ๋ฆฌ๊ฐ ์ฐธ์ด๋ฉด ๋ค์ css ํ์ผ ๊ท์น์ด ์ ์ฉ. (์ ์ฌ์ฉ์ ์๋๋ค.)
@import url(example.css) screen and (color);
: CSS ํ์ผ ๋ด๋ถ์ ๋๋ <style> ํ๊ทธ ๋ด๋ถ์ ์ฌ์ฉ๊ฐ๋ฅ. @import๋ฌธ ๋ค์ ๋ฏธ๋์ด ์ฟผ๋ฆฌ๋ฅผ ์ ์ธ. (์ ์ฌ์ฉ์ ์๋๋ค.)
https://www.w3.org/TR/mediaqueries-4/#mq-min-max
Media Queries Level 4
Abstract Media Queries allow authors to test and query values or features of the user agent or display device, independent of the document being rendered. They are used in the CSS @media rule to conditionally apply styles to a document, and in various othe
www.w3.org
'๐Language > HTML & CSS' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
HTML ๊ธฐ์ด ๊ฐ๋ (0) | 2022.04.26 |
---|---|
๋ฏธ๋์ด์ฟผ๋ฆฌ๋ก ๋ง๋๋ ๋ฐ์ํ ์น ๋ง๋ค๊ธฐ / ์น ๋์คํ๋ ์ด ํฌ๊ธฐ๋ณ ์ ๋ฐ๊พธ๊ธฐ (0) | 2022.04.20 |
HTML/CSS ์ ํจ์ฑ ๊ฒ์ฌ ์ฌ์ดํธ (0) | 2022.04.19 |
z-index, ์์ ์์, ํดํ ๋ฐ์ค (tool tip) (0) | 2022.04.19 |
css position & offset / static, relative, absolute, fixed / css ๊ณต๋ถํ ๋ ๋ณด๋ฉด ์ข์ ์ฌ์ดํธ (0) | 2022.04.19 |