미디어 쿼리란 각 미디어 매체에 따라 다른 스타일 시트를 적용할 수 있게 만드는 것이다.
- 각 미디어 매에 따라 다른 스타일 시트를 적용할 수 있게 만드는 것 (반응형 사이트)
- 한 웹페이지는 다양한 미디어 매체로 보여질 수 있다. ex)스크린리더기, 프린터기, 모니터 등 다양한 매체가 있다.
👉 특정 미디어 매체따라서 특정한 디자인을 적용할 수 있어야한다.
@media mediaqueries { }
mediaqueries
(쿼리문)이 참일때 적용, 거짓이면 적용되지 않음.📖 mediaqueries
(쿼리문)의 종류
미디어 타입
: 미디어 매체를 말함.
ex) all, braille, embossed, handheld, print, projection, screen, speech, tty, tv
이 중 all
, print
, screen
만 알아두기.
미디어 특성
: 미디어 매체를 조금 더 자세하게 적용할 수 있음.
ex) width, height, device-width, device-height, orientation, aspect-ratio, device-aspect-ratio, color, color-index, monochrome, resolution, scan, grid
이 중 width
와 orientation
정도만 알아두기.
📒 미디어 타입 : screen
📒 미디어 타입 : print
📒 미디어 특성 : width
📒 미디어 특성 : orientation
s*
: 공백[]
: 안의 내용이 있을 수도 있고, 없을 수도 있다는 뜻a|b
: a나b 둘 중에 하나는 나와야 한다.a?
: a가 0번 나오거나 1번만 나올 수 있음a*
: a가 0번 나오거나 그 이상 계속 나올 수 있음media_type
: all, screen, print 등 명세에 정의된 미디어 타입media_feature
: width, orientation 등 명세에 정의된 미디어 특성media_query_list
media_query_list
: S* [media_query [ ',' S* media_query ]* ]?
media_query
A 형태
미디어 타입에 and 키워드를 이용해서 미디어 표현식을 붙일 수 있습니다.
미디어 타잎 앞에는 only 또는 not 키워드가 올 수 있습니다.
미디어 표현식은 생략 가능하기 때문에 미디어 타입 단독으로 사용될 수 있습니다.
B 형태
미디어 타입 없이 미디어 표현식이 바로 나올 수 있습니다.
(미디어 타입이 명시되지 않으면 all로 간주합니다.)
미디어 표현식은 and 키워드를 이용해서 계속해서 나올 수 있습니다.
media_query
: [ONLY | NOT]? S* media_type S* [ AND S* expression ]*
| expression [ AND S* expression ]*
;
expression
expression
: '(' S* media_feature S* [ ':' S* expr ]? ')' S*
;
@media screen { ... }
@media screen and (min-width: 768px) { ... }
@media (min-width: 768px)
@media (min-width: 768px) and (max-width: 1024px) { ... }
@media (color-index)
@media screen and (min-width: 768px), screen and (orientation: portrait), ...
@media not screen and (min-width: 768px)
@media not screen and (min-width: 768px), print
미디어 특성은 이름 앞에 min- 또는 max- 접두사를 붙일 수 있다.
➕ min- : 최소
➕ max- : 최대
숫자의 형태에 들어가는 특성에는 모두 사용이 가능하다.
orientation,grid,scan은 불가능하다
orientation : portrait(세로모드) | landscape (가로모드)
width : length
@media screen and (color)
<style>
태그 내부에 사용가능 합니다.<link rel="stylesheet" media="screen and (color)" href="example.css">
<link>
태그의 media 속성에 미디어 쿼리를 선언합니다. 미디어 쿼리가 참이면 뒤에 css 파일 규칙이 적용됩니다.@import url(example.css) screen and (color);
<style>
태그 내부에 사용가능 합니다.@import
문 뒤에 미디어 쿼리를 선언하면 됩니다. 머가 이렇게 복잡하냥