2013-10-29 3 views
1

나는 최근에 @media 쿼리 규칙마다 all을 사용하고있는 것으로 나타났습니다. 그 이유를 알 수 없습니다.미디어 쿼리 유형을 암시 적으로 사용하는 이유는 무엇입니까?

나는 웹 검색 한 내가 웹에 가장 @media 규칙 예제이 @media all and (some other condition...) 같은 몇 가지 형식을 사용하는 것을 볼, 왜 미디어 유형 all에는 미디어 타입이 지정되지 않은 경우 이미 암시 때이? 이전 브라우저 호환성 문제 일 수 있습니까?

내가 정말로 묻는 이유는 미디어 유형이 all 일 때 일반적으로 사용되는 이유는 무엇일까요? Media Queries W3C Recommendation에서 언급 한 바와 같이

+2

미디어 쿼리에 미디어 유형을 포함시키는 것이 일반적인 규칙 인 것을 볼 수있는 특별한 이유가 없습니다.유일한 브라우저 호환성 문제는 일부 구형 브라우저가 미디어 쿼리를 미디어 유형으로 구문 분석하려고 시도 할 수 있으며,이 경우 미디어를 사용하기 위해'all and ... '을 사용합니다. 이 경우가 아닙니다. – BoltClock

답변

2

:

'모든'

스타일 시트는 모든 미디어 유형에 적용을 나타 내기 위해 사용된다.

...

속기 구문은 모든 미디어 유형에 적용 미디어 쿼리를 위해 제공됩니다; 'all'키워드는 생략 할 수 있습니다 ('and'와 함께). 나는. 미디어 유형이 명시 적으로 지정되지 않으면 'all'입니다.

자체 all처럼 나에게 먼저 인용 한 문장의 소리를 나타내는 단어 의 사용은 표현 적 목적을 위해 순수하게 사용할 수 있습니다.

그러나 특정 목적으로 all이 사용되는 몇 가지 부분이 있습니다. section 3.1에이 문서에 언급 된 내용 :

알 수없는 미디어 기능. 사용자 에이전트는 지정된 미디어 기능 중 하나를 알 수없는 경우 미디어 쿼리를 "not all"으로 표시해야합니다.

알 수없는 미디어 기능 값입니다. 알 수없는 미디어 기능과 마찬가지로, 사용 도구는 지정된 미디어 특성 값 중 하나를 알 수없는 경우 미디어 쿼리를 "not all"으로 나타내야합니다.

잘못된 미디어 쿼리의 기본값은 not all입니다.

또 다른 예로, 질문에서 his comment에 언급 된 BoltClock은 only all을 사용합니다. 키워드 only은 이전 사용자 에이전트에서 스타일 시트를 숨기는 데 사용됩니다. 우리는 다음과 같은 CSS로이를 테스트 할 수 있습니다 : 우리는이 현대적인 브라우저에서 열면, 문서의 body 녹색 배경이있을 것이다

body { 
    background: red; 
} 

@media only all { 
    body { 
     background: green; 
    } 
} 

. 이전 브라우저 (예 : IE8)에서이 문서를 열면 문서의 body은 빨간색 배경을 갖게됩니다.

JSFiddle demo.

+2

미디어 쿼리를 무효화하려고하지만 모든 미디어 유형에 적용하려는 경우'all'도 필요합니다. 'not all and (color)'는 인쇄물, 화면 또는 다른 것에 관계없이 컬러 디스플레이가없는 사용 도구와 일치합니다. 어떤 이유로 'not (color)'가 유효하지 않습니다. – BoltClock

관련 문제