모바일 웹의 최대 장치 너비와 최대 너비의 차이점은 무엇입니까?


242

나는 아이폰 / 안드로이드 폰에 대한 몇 가지 HTML 페이지를 개발해야하지만 차이 무엇 max-device-widthmax-width? 다른 화면 크기에 다른 CSS를 사용해야합니다.

@media all and (max-device-width: 400px)

@media all and (max-width: 400px)

차이점이 뭐야?



1
내가 발견 한 그 max-device-width경우에도 작품 <meta name="viewport" ...>태그가 작은 화면 장치에 포함되지 않고있다 max-width없이 일을하지 않는 meta태그
Faizan 아크람 다르

답변:


252

max-width 대상 표시 영역의 너비입니다 (예 : 브라우저)

max-device-width 장치 전체 렌더링 영역의 너비, 즉 실제 장치 화면

동일은 간다 max-heightmax-device-height자연스럽게.


15
브라우저의 크기를 조정할 때 변경 사항을 확인하려면 max-device-width가 프로덕션 환경에 더 정확하지만 개발에 max-width를 사용하십시오.
존 매그놀리아

31
@JohnMagnolia 프로덕션에 max-device-width가 더 좋다고 생각하는 이유는 무엇입니까? 장치와 상관없이 최대 너비가 더 나은 응답 성을 보장하지 않습니까?
e_known

8
@ 알고 동의합니다. 모든 기술 / 지식을 가진 사용자가 항상 데스크톱 브라우저 창을 최대화하지는 않습니다 (그러나 브라우저가 최대화되지 않은 태블릿 또는 전화는 아직 보지 못했습니다. 하이브리드 앱에서는 가능하다고 가정하지만 다른 경우입니다). 최대 너비는 더 보편적 일 것입니다.
Jason

2
@ 나는 동의하지 않는다. 스타일에 따라 해당 미디어 중단 점에 도달 한 후 모양이 매우 다를 수 있으며 미디어 중단 점을 기준으로 스타일 시트를로드하는 경우 브라우저 창의 크기를 조정할 때 사이트가 완전히 다르게 보일 수 있습니다.
TwinPrimesAreEz

2
모바일 장치에 대해 근본적으로 다른 레이아웃을 가지고 있다면 근본적인 이유는 마우스 커서가 없기 때문일 것입니다 (더 큰 버튼과 스크롤하는 단일 열이 필요합니다). 이 경우에 사용할 훌륭한 미디어 쿼리 @media screen and (pointer: coarse) and (hover: none)는 향후 모바일 장치가 화면에 몇 픽셀을 포장하든 관계없이 모바일 버전으로 전환하는 것입니다.
EoghanM

81

max-width는 뷰포트의 너비를 나타내며와 함께 특정 크기 또는 방향을 타겟팅하는 데 사용할 수 있습니다 max-height. 여러 조건 max-width(또는 min-width)을 사용 하면 브라우저 크기가 조정되거나 iPhone과 같은 장치에서 방향이 변경 될 때 페이지 스타일을 변경할 수 있습니다.

max-device-width방향, 현재 배율 또는 크기 조정에 관계없이 장치의 뷰포트 크기를 나타냅니다. 이것은 장치에서 변경되지 않으므로 화면이 회전하거나 크기가 조정될 때 스타일 시트 또는 CSS 지시문을 전환하는 데 사용할 수 없습니다.


11
이 답변을 받아 들인 답변보다 '클릭'할 수있었습니다. 그것은 대부분의 응용 프로그램 같은 소리, max-width그리고 max-height사용에 사람이 될 것입니다.
hotshot309

2
: @JackieChiles는 하나 (모바일 더 큰 장치에 나타나는 스타일에 대한) 고려해야 할 또 다른 SO 스레드에서 좋은 점하게 stackoverflow.com/questions/8564752/...
hotshot309을

5
이 좋은 대답은 완전하지 않습니다. 오리엔테이션은 Android에서 장치 너비와 장치 높이를 교체 하지만 iOS는 아닙니다 . quirksmode.org/blog/archives/2010/04/the_orientation.html을 참조하십시오 .

16

이 스타일 사용에 대해 어떻게 생각하십니까?

주로 "모바일 장치"에 사용되는 모든 중단 점 min(max)-device-width과 "데스크톱"에 주로 사용 되는 중단 점에 대해 min(max)-width.

너비를 잘못 계산하는 "모바일 장치"가 많이 있습니다.

http://www.javascriptkit.com/dhtmltutors/cssmediaqueries2.shtml보십시오 .

/* #### Mobile Phones Portrait #### */
@media screen and (max-device-width: 480px) and (orientation: portrait){
  /* some CSS here */
}

/* #### Mobile Phones Landscape #### */
@media screen and (max-device-width: 640px) and (orientation: landscape){
  /* some CSS here */
}

/* #### Mobile Phones Portrait or Landscape #### */
@media screen and (max-device-width: 640px){
  /* some CSS here */
}

/* #### iPhone 4+ Portrait or Landscape #### */
@media screen and (max-device-width: 480px) and (-webkit-min-device-pixel-ratio: 2){
  /* some CSS here */
}

/* #### Tablets Portrait or Landscape #### */
@media screen and (min-device-width: 768px) and (max-device-width: 1024px){
  /* some CSS here */
}

/* #### Desktops #### */
@media screen and (min-width: 1024px){
  /* some CSS here */
}

질문에 대답하지 않고 실제로 중단 점을 처리하는 나쁜 방법입니다. 조심하십시오.
마흔

8

max-device-width는 장치 렌더링 너비입니다.

@media all and (max-device-width: 400px) {
    /* styles for devices with a maximum width of 400px and less
       Changes only on device orientation */
}

@media all and (max-width: 400px) {
    /* styles for target area with a maximum width of 400px and less
       Changes on device orientation , browser resize */
}

최대 너비는 대상 표시 영역의 너비이며 현재 브라우저 크기입니다.


2
@media all and (max-width : 400px) {} 차이점은 무엇입니까
virsir

5

차이점은 max-device-width는 모든 화면의 너비이며 max-width는 브라우저가 페이지를 표시하는 데 사용하는 공간을 의미합니다. 그러나 또 다른 중요한 차이점은 안드로이드 브라우저의 지원입니다. 실제로 최대 장치 너비를 사용하려는 경우 Opera에서만 작동하지만 대신 모든 종류의 모바일 브라우저에서 최대 너비가 작동한다고 확신합니다 ( Chrome, firefox 및 ANDROID의 오페라에서 테스트했습니다).


5

최대 너비 는 대상 디스플레이 영역의 너비입니다 (예 : 브라우저). max-device-width 는 장치 전체 렌더링 영역의 너비, 즉 실제 장치 화면입니다.

max-device-width를 사용하는 경우 데스크톱에서 브라우저 창의 크기를 변경하면 CSS 스타일이 다른 미디어 쿼리 설정으로 변경되지 않습니다.

max-width를 사용하는 경우 데스크톱에서 브라우저의 크기를 변경하면 CSS가 다른 미디어 쿼리 설정으로 변경되고 터치 메뉴와 같은 모바일 스타일이 표시 될 수 있습니다.


3

크로스 플랫폼 앱을 만드는 경우 (예 : phonegap / cordova 사용)

장치 너비 또는 장치 높이를 사용하지 마십시오. Android 기기는 기기 너비 또는 기기 높이에 문제가 있으므로 CSS 미디어 쿼리에서 너비 또는 높이를 사용하십시오. iOS의 경우 잘 작동합니다. Android 기기 만 기기 너비 / 기기 높이를 지원하지 않습니다.


2

더 이상 장치 너비 / 높이를 사용하지 마십시오.

장치 너비, 장치 높이 및 장치 가로 세로 비율은 미디어 쿼리 수준 4에서 더 이상 사용되지 않습니다. https://developer.mozilla.org/en-US/docs/Web/CSS/@media#Media_features

방향 및 (최소 / 최대) 해상도와 함께 너비 / 높이 (최소 / 최대 제외)를 사용하여 특정 장치를 대상으로합니다. 모바일 너비 / 높이는 장치 너비 / 높이와 같아야합니다.


일반 "device-xxx"항목은 더 이상 사용되지 않으며 "max-device-xxx"항목은 더 이상 사용되지 않습니다.
Roger Krueger

1
@RogerKrueger 확실합니까? max-device-xxx 미디어 쿼리가 더 이상 사용되지 않는다는 것을 나타내는 것은 없습니다.
조니 쿡
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.