> 웹 프론트엔드 > HTML 튜토리얼 > 모바일 개발 튜토리얼의 픽셀 표시 문제 요약_경험 및 팁_웹 페이지 제작

모바일 개발 튜토리얼의 픽셀 표시 문제 요약_경험 및 팁_웹 페이지 제작

韦小宝
풀어 주다: 2017-12-16 10:47:42
원래의
2109명이 탐색했습니다.

최근 개발 과정에서 이전에 발견하지 못했던 모바일 픽셀 문제를 발견했습니다. 이 글에서는 주로 모바일 개발 튜토리얼에서 픽셀 디스플레이 문제에 대한 관련 정보를 소개하는데, 이는 샘플 코드를 통해 매우 상세하고 설명되어 있습니다. 모두의 공부나 업무에 확실한 참고 학습 가치가 있습니다. 필요한 친구들은 편집자를 따라가서 함께 공부할 수 있습니다.

머리말

모바일 단말기를 개발하는 과정에서 모바일 단말기의 디스플레이가 데스크탑 단말기의 디스플레이와 일반적으로 다르다는 것을 누구나 느끼실 것이라고 믿습니다. 예를 들어, 1334x750 픽셀 크기의 블록 요소가 iPhone 6에 표시될 때 Apple 공식 웹사이트에서 iPhone 6의 공칭 화면 픽셀 밀도는 1334x750이지만 1334x750 픽셀 크기의 블록 요소는 표시할 수 없다는 것을 발견했습니다. 화면 전체를 덮습니다.

그럼 왜? 여러 측면에서 논의해 보겠습니다.

PPI(픽셀 밀도)

PPI(인치당 픽셀 수)는 인구 밀도 및 건물 밀도와 유사하게 인치당 픽셀 수를 의미합니다. 다음 그림은 PPI 표현의 몇 가지 예를 보여줍니다.

iPhone6 ​​​​픽셀 밀도를 계산하는 일반적인 공식은 다음과 같습니다. Math.sqrt(1366*1366 + 640*640)

그러나 이 PPI를 계산하려면 먼저 장치 화면에 몇 개의 픽셀이 있는지 알아야 합니다. 픽셀당 픽셀 수입니다.

디바이스 픽셀(DP) && 디바이스 픽셀 비율(DPR)

디바이스 픽셀(Device pixel)은 물리 픽셀(Physical pixel)이라고도 알려져 있으며, 서문에서 언급한 아이폰6의 화면 사양입니다. 이 기사. 픽셀 밀도로 언급되는 픽셀은 장치 픽셀입니다. 일반 디스플레이 장치의 경우 하나의 픽셀은 화면의 발광점에 해당하므로 PPI는 DPI(인치당 도트 수)라고도 하지만 이는 디스플레이 장치에서만 해당됩니다. 예를 들어 프린터에서는 다릅니다.

시중에 판매되는 모든 휴대폰의 화면 사양이 다르기 때문에 일부는 720P, 일부는 1080P, 심지어 2K 등입니다. 이러한 장치의 화면 중 일부는 픽셀이 더 많고 일부는 한 픽셀이 표시됩니다. 동시에 다음과 같은 상황이 나타납니다.

PPI 화면이 높을수록 1픽셀을 표시하는 영역이 작아집니다. 4x4픽셀로 구성된 그림은 PPI가 64인 화면에 표시됩니다. 그런 다음 256PPI로 전환하면 화면 표시가 원래 크기의 절반으로 줄어듭니다.

반대로 PPI 256 화면에서 PPI 64 화면과 동일한 효과를 표시하려면 이미지를 2배로 확대해야 합니다.

따라서 고화질 화면이 장착된 휴대폰의 경우 장치의 사용성, 즉 아이콘과 텍스트가 올바르게 인식되고 정확하게 클릭될 수 있도록 제조업체는 장치에 다양한 자료가 표시되도록 보장해야 합니다. 표준 화질 장치와 동일하며 이 솔루션은 모든 크기를 여러 번 확대하면 됩니다. 이 확대 비율을 DPR(장치 픽셀 비율)이라고 합니다. 일반적으로 DPR은 다음 표에 해당합니다.


ppi

120160240320dpr0.751.01.52.0

따라서 고화질 장치에는 고화질 사진 디스플레이가 장착되어 있어야 합니다. 그렇지 않으면 고화질 장치에서 사진을 확대한 후 세부 사항을 표시할 만큼 픽셀이 부족하여 사진이 흐릿하게 보일 수 있습니다.

CSS Pixel

너무 많은 개념을 이야기하고 나니 글 초반의 문제가 아직 잘 설명되지 않은 것 같습니다. 아래에서 CSS 픽셀에 대해 논의한 후에는 모든 사람이 더 명확한 개념을 갖게 될 것이라고 생각합니다.

밤새 CSS를 작성할 때 픽셀 단위인 px를 사용하게 되지만, 이 픽셀 단위는 항상 장치 픽셀과 일대일로 대응하지 않습니다. 즉, CSS의 1px(픽셀)은 a에 해당하지 않습니다. 장치 화면 지점의 픽셀입니다. 장치 픽셀과 구별하기 위해 CSS에서 참조하는 픽셀 px를 일반적으로 CSS 픽셀이라고 합니다. 즉, CSS 픽셀은 가상적이고 상대적인 단위입니다.

예를 들어 페이지에 300px 너비의 블록 요소를 그리면 일반 모니터에서는 화면의 일부만 차지하지만 페이지를 수동으로 확대하면 이 블록 요소도 곧 표시됩니다. 전체 페이지를 채웁니다. 이는 일반적인 상황에서 CSS 픽셀의 크기가 시스템 해상도의 픽셀과 동일하다는 것을 보여줍니다. 즉, 표준 정의 장치에서는 하나의 CSS 픽셀 크기가 하나의 장치 픽셀과 동일해야 합니다. 그러나 고화질 장치 또는 사용자 크기 조정의 경우 하나의 CSS 픽셀이 여러 장치 픽셀과 동일할 수 있습니다.

또 다른 예를 들자면, 모바일 네이티브 애플리케이션 개발에서 하나의 기기 픽셀 단위로 개발해야 한다면 매우 고통스러운 일이 될 것입니다. 왜냐하면 모든 모바일 기기가 시스템 해상도를 갖고 있는 것은 아니기 때문입니다. 장치 픽셀의 크기를 정의할 때 일부는 1:2이고 일부는 1:2.46입니다. Android 개발에서 dp 및 dt와 같은 단위가 있는 것은 바로 이러한 차이 때문입니다. 요소인 경우 dp 값만 제공하면 됩니다. 시스템은 이 값을 시스템 해상도와 장치 픽셀의 비율(예: DPR)로 변환하고 최종적으로 화면에 표시되는 실제 장치 픽셀을 계산합니다.

위에서 지적한 dp의 추상 단위를 장치 독립적 픽셀이라고 합니다. 물론 CSS 픽셀은 장치 독립적인 픽셀이기도 합니다. CSS 픽셀을 작성할 때 하나의 CSS 픽셀이 몇 개의 장치 픽셀에 해당하는지 신경 쓸 필요가 없습니다. 시스템은 이를 DPR에 따라 자동으로 변환합니다. 우리가 관심을 가져야 할 것은 시스템 변환으로 인해 웹 페이지 요소가 확대될 때 장치에 웹 페이지 요소가 어떻게 명확하게 표시되는지 확인하는 것입니다.

Viewport

일반적으로 모바일 단말기에서 페이지를 열 때 브라우저가 먼저 일반 비율로 페이지를 렌더링한 다음 자동으로 비율을 설정하여 페이지를 확대하는 경우 목적은 즉, 페이지 콘텐츠가 휴대폰 화면 전체를 덮게 됩니다. 물론 페이지에서 사용자 확대/축소가 금지되지 않는 경우 두 손가락을 사용하여 페이지를 원래 비율로 다시 확대/축소할 수도 있습니다. 이 전체 프로세스는 뷰포트를 통해 구현됩니다. 원본 페이지가 렌더링된 후 뷰포트는 시스템 너비와 동일하게 조정되어 페이지가 완전히 표시될 수 있습니다.


(tgideas 팀 블로그의 사진)

초기 크기 속성을 콘텐츠에 추가하여 렌더링 중 창의 크기 조정을 제어할 수 있습니다. 크기 조정을 하지 않으려면 1로 설정하세요.

<meta name="viewport" content="initial-scale=1">
로그인 후 복사

뷰포트의 너비를 제어하기 위해 장치 너비 속성을 정의할 수도 있습니다.

<meta name="viewport" content="width=device-width">
로그인 후 복사

일반적으로 모바일 개발에서는 사용자가 확대/축소할 수 없도록 설정하고 최대 및 최대 너비를 설정합니다. 최소 확대/축소 비율을 1로

<meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1, maximum-scale=1, user-scalable=no">
로그인 후 복사

Summary

며칠 동안 읽고 탐색한 끝에 마침내 모바일 개발의 가장 입문적인 측면을 완전하고 정확하게 이해하게 되었습니다. 사용된 메타 코드를 복사해서 사용하세요. 아직 파악하지 못했습니다. 이번에는 여유 시간을 활용하여 관련 정보를 전체적으로 살펴보고 최종적으로 기록했습니다. 이 문서가 앞으로 다른 사람들에게도 도움이 되기를 바랍니다.

관련 추천:

HTML 제목, 단락, 줄 바꿈, 가로줄, 특수 문자 요약

HTML에서 테이블 마우스 드래그 정렬 기능 구현

html 메시지 버튼에 수량 첨자를 추가하기 위한 구현 코드

위 내용은 모바일 개발 튜토리얼의 픽셀 표시 문제 요약_경험 및 팁_웹 페이지 제작의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿