@media mediaqueries { /* style rules */ }
알아야 할 타입은 all, print, screen 정도이다.
화면을 출력하는 디스플레이가 있는 미디어들은 전부 screen에 속하기 때문에 현실적으로 고려해야하는 미디어들은 전부 여기에 해당이 된다.
알아야 할 특성은 width와 orientation 정도이다.
width : 뷰포트의 너비, 즉 브라우저 창의 너비
orientation : 미디어가 세로모드인지 가로모드인지 구분
미디어쿼리의 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*
;
해석 방법을 익히자.
@media screen { ... }
미디어 타입이 screen이면 적용된다.
@media screen and (min-width: 768px) { ... }
미디어 타입이 screen이고 width가 768px 이상이면 적용된다.
@media (min-width: 768px) and (max-width: 1024px) { ... }
and는 연결된 모든 표현식이 참이면 적용된다.
@media (color-index)
미디어 장치가 color-index를 지원하면 적용된다.
@media screen and (min-width: 768px), screen and (orientation: portrait), ...
쉼표로 연결된 미디어 쿼리 중 하나라도 참이면 적용된다. (or 같은 느낌)
@media not screen and (min-width: 768px)
not 키워드는 하나의 media_query 전체를 부정한다.
(not screen) and (min-width: 768px) 잘못된 해석!
not (screen and (min-width: 768px)) 올바른 해석!