찾다
웹 프론트엔드CSS 튜토리얼뷰포트와 장치 너비란 무엇입니까?

1년 넘게 모바일 웹을 개발하면서 매우 혼란스러운 일을 겪었습니다. 예를 들면 다음과 같습니다.

  1. 우리가 자주 사용하는 뷰포트는 정확히 무엇을 의미합니까? 여기의 장치 너비와 JS를 사용하여 얻은 화면 너비 사이의 차이점과 연관성은 무엇입니까? 태그를 제거한 후 페이지가 매우 작아지는 이유는 무엇입니까?

  2. <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no">
  3. 해상도가 높은 많은 화면 너비가 실제로 그렇게 크지 않은 이유는 무엇입니까? 그것?

등 "픽셀"과 "너비"에 관한 일련의 질문입니다.

최근에 "너비"와 "픽셀"에 대한 내용을 찾기 위해 많은 정보를 읽었으며 마침내 약간의 깨달음을 얻었습니다. 여기에서 제가 이해한 내용을 공유하고 여러분의 비판을 요청하겠습니다. 그리고 수정. 물론 해당 기사에는 다른 기사의 문장 인용도 포함되어 있습니다. 글 말미에는 참고하실 수 있도록 몇 가지 참고 글 링크가 게시되어 있습니다~

CSS 픽셀과 디바이스 픽셀(css px 및 디바이스 px)

우선 CSS가 무엇인지 알아보겠습니다. 픽셀/ 'pæks (ə)l; -sel /, 장치 픽셀이 무엇인가요?

1. CSS 픽셀은 브라우저에서 사용되는 추상 단위이며 주로 웹 페이지에 콘텐츠를 그리는 데 사용되는 CSS 픽셀로 이해될 수 있습니다. CSS px는 웹 개발자를 위해 특별히 제안된 추상적 개념으로 우리가 일반적으로 작성하는 CSS 스타일에만 관련될 뿐 해상도(예: 720px*1280px)의 px와는 아무런 관련이 없다고 할 수도 있습니다.

2. 장치 픽셀은 장치 픽셀로 이해될 수 있습니다. 디스플레이 화면의 가장 작은 물리적 단위는 고유한 색상, 높이 및 너비 등을 포함합니다.

웹 개발을 하는 사람들이 가장 많이 사용하는 것은 width:300px;font-size:14px;와 같은 CSS 문에 사용되는 "CSS 픽셀"입니다. 장치 자체의 px와는 아무런 관련이 없습니다. 즉, 하나의 CSS 픽셀이 몇 개의 물리적 픽셀을 차지하는지는 확실하지 않습니다. 이 문제는 페이지 크기를 조정하면 더 쉽게 이해할 수 있습니다. 예를 들어 일반 HTML 페이지에는 300px 요소가 있습니다. 페이지를 확대하면 해당 요소는 더 많은 장치 픽셀(예: 장치 픽셀)을 차지하지만 해당 CSS 픽셀은 변경되지 않고 그대로 유지됩니다. 페이지가 줄어드는 이유는 더 적은 장치 픽셀을 차지하지만 CSS 픽셀은 변경되지 않기 때문입니다. 즉, 요소가 차지하는 장치 픽셀 수는 현재 페이지의 크기 조정 비율에 따라 결정됩니다.

그런데 페이지 스케일링은 저희 웹 개발에는 별 의미가 없는 것 같습니다. 그런데 문제가 있습니다. 우리가 개발하는 페이지는 각 화면에서 가장 좋은 스타일로 표시되기를 원합니다. 페이지에서 제어할 수 없는 요소를 허용할 수 없습니다. 그래서 다음과 같이 나타났습니다: 개발 중에 자주 사용됩니다. 그렇다면 뷰포트란 정확히 무엇이며 콘텐츠의 너비가 장치 너비와 같아야 하는 이유는 무엇입니까? 장치 너비의 개념은 무엇입니까? 그들이 무엇인지 살펴 보겠습니다.

뷰포트와 장치 너비

두 가지 개념을 설명하기 전에 모두가 알지만 왜 이해하지 못하는 상황에 대해 이야기해보겠습니다. PC에서 개발한 일반 HTML 페이지를 직접 변환하여 휴대폰에서는 페이지가 아무리 크더라도 작은 휴대폰 화면에 표시할 수 있지만 JAVASCRIPT를 사용하여 페이지 너비를 얻으면 그래픽과 텍스트가 매우 작게 표시됩니다. 대부분의 페이지 너비는 모두 980px이며 이는 뷰포트와 관련이 있습니다.

Viewport는 Apple에서 시작되었지만 현재는 대부분의 브라우저에서 지원됩니다. 뷰포트에는 시각적 뷰포트와 레이아웃 뷰포트라는 두 가지 개념이 있습니다. 여기서 시각적 뷰포트는 장치 자체의 너비로 이해될 수 있는 시각적 창입니다. 이때 길이가 960인 페이지가 있다면 한 요소는 20%(실제로는 192px로 파싱)입니다. 그런데 너비가 320px인 화면에서 열면 요소가 64px이 되는데 이때 제가 설정한 글꼴 크기는 12px이고 320px 화면에서는 64/12자만 표시할 수 있어요~

이 문제를 고려하여 Apple은 Safari 모바일 버전에서 해결책을 찾아 뷰포트 메타 태그를 정의했는데, 그 기능은 가상 창(뷰포트)을 만드는 것입니다. 이 가상 창은 데스크톱 모니터에 가까운 레이아웃 뷰포트 해상도입니다. , Apple은 이를 980px에 배치합니다. 휴대폰에서는 document.documentElement.clientWidth를 통해 얻을 수 있습니다.

다른 브라우저 제조업체도 중간 기술을 사용하는 UCweb과 같은 다른 솔루션을 보유하고 있습니다.

또한 브라우저 제조업체마다 레이아웃 뷰포트 크기에 대한 자체 정의가 있다고 합니다. 하지만 제가 가지고 있는 몇 대의 휴대폰(Xiaomi 2s, SONY, Gionee, iPad)으로 테스트한 결과는 모두 980px입니다. 그 중 샤오미 자체 브라우저, QQ 브라우저, UC 브라우저, 구글 크롬, 오페라 브라우저를 샤오미 2s에서 테스트했는데, 다른 휴대폰에 어떤 브라우저를 설치해도 결과는 동일했다. 모두 980px입니다. 하지만 이 값은 우리의 웹 개발에 거의 쓸모가 없는 것 같습니다.

대부분의 경우 일반적으로 이는 페이지의 가독성을 크게 향상시킵니다. 이 메타 태그의 기능은 레이아웃 뷰포트를 장치 너비의 너비로 설정하는 것입니다. 그러나 장치 너비는 정확히 무엇입니까?

1세대 아이폰의 경우 해상도는 320*480, 화면 크기는 3.5인치였습니다. (참고로 3.5인치는 화면의 대각선 너비를 의미합니다.) 320px은 휴대폰의 해상도 너비이기도 합니다. 이 경우 device-width는 장치 너비입니다. 그러나 2세대 iPhone의 해상도는 480*960으로 증가했으며 화면 크기는 여전히 3.5인치입니다. 장치 너비가 여전히 장치 너비인 경우 동일한 320px 페이지가 480*에 배치됩니다. 960 휴대폰 화면과 그래픽 및 텍스트가 변경되므로 가독성에 영향을 미칩니다. 따라서 iPhone의 Device-Width는 320px로, iPad는 1024px로 유지되었습니다. 이때, device-width는 더 이상 디바이스의 너비(즉, 해상도의 너비가 아님)가 아니라 중간 레이어입니다. Android도 이 개념을 채택하고 있습니다. 대부분의 기기 너비 값은 360이지만 540px, 600px과 같은 이상한 값도 있습니다. 태그를 설정한 후 window.innerWidth를 사용하여 장치 너비 값을 얻을 수 있습니다.

DPI 정보

dpi(인치당 도트 수)는 ppi(인치당 포인트)라고도 하며 픽셀 밀도로 번역되며 장치가 차지하는 인치당 픽셀 수를 나타냅니다. 높음 값은 디스플레이가 더 높은 밀도로 이미지를 표시할 수 있음을 의미합니다. (참고: 여기서 말하는 픽셀은 기기 픽셀을 의미합니다.) DPI 계산 공식:

뷰포트와 장치 너비란 무엇입니까?

흥미롭게도 이 값은 애플 공식 홈페이지에서 발표한 326보다 조금 높습니다.

뷰포트와 장치 너비란 무엇입니까?

그 중 PPI가 120~160인 휴대폰은 저밀도 휴대폰, 160~240은 중밀도 휴대폰, 240은 중밀도 휴대폰으로 분류된다. -320은 고밀도 휴대폰으로 분류되며, 320 이상은 초고밀도 휴대폰으로 분류됩니다(애플은 레티나라는 우아한 이름을 붙였습니다).

이러한 밀도는 특정 스케일링 값에 해당합니다. 우리에게 가장 친숙한 iPhone 4 또는 4s의 PPI는 초고밀도 휴대폰인 326입니다. 너비가 320px인 페이지를 작성하여 iPhone에 표시해 보면 실제로는 너비가 전체 너비인 것을 알 수 있습니다. 기본적으로 페이지가 2배로 확대되어 640px이 되는데, iPhone 4나 4s의 너비는 정확히 640px이기 때문입니다.

DevicePixelRadio

DevicePixelRadio, 정의: window.devicePixelRatio는 장치의 물리적 픽셀(즉, 장치 너비) 및 장치 독립적 픽셀(장치 독립endent 픽셀, 즉 딥 비율). 공식은 다음과 같이 표현됩니다: window.devicePixelRatio = 물리적 픽셀/딥

안드로이드와 아이폰 모두 화면 전체 크기를 차지하는 변환 단위가 있습니다. 안드로이드에서는 dip 또는 dp라고 하고, 아이폰에서는 포인트라고 합니다. Dip은 장치 독립적 픽셀, 장치 독립적 픽셀입니다. 기기의 물리적 픽셀과 딥의 비율은 devicePixelRatio입니다. 이 값은 window.devicePixelRatio

속성 을 통해 얻을 수 있습니다.

제가 찾은 정보에 따르면 여기서 독립 픽셀의 값은 실제로 장치 너비 값입니다. 이 값은 물론 태그가 설정되어 있다는 전제 하에 휴대폰 레이아웃에 일반적으로 사용하는 너비입니다.

여기서 devicePixelRatio 개념이 언급되는 이유는 무엇인가요?

devicePixelRatio=1.5, 즉 화면 해상도 너비와 장치 너비의 비율이 1.5일 때 일부 휴대폰(특히 가장 많이 나타나는 삼성 휴대폰)에 기본 제공되는 브라우저에는 1px 라인이 2px로 파싱되는 버그가 있는데, 테스트 결과 동일한 휴대폰에 설치된 UC 브라우저에서는 일반적으로 이 버그가 발생하지 않습니다. 이 버그에 대해 더 나은 설명을 제공하는 인터넷 기사가 있습니다:

[관련 권장 사항]

1.

무료 CSS 온라인 비디오 튜토리얼

2.

css 온라인 매뉴얼

3.

php.cn Dugu Jiujian (2) - CSS 동영상 튜토리얼

위 내용은 뷰포트와 장치 너비란 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
커서를위한 다음 레벨 CSS 스타일커서를위한 다음 레벨 CSS 스타일Apr 23, 2025 am 11:04 AM

CSS가있는 커스텀 커서는 훌륭하지만 JavaScript를 사용하여 다음 단계로 가져갈 수 있습니다. JavaScript를 사용하면 커서 상태를 전환하고 커서 내에 동적 텍스트를 배치하고 복잡한 애니메이션을 적용하며 필터를 적용 할 수 있습니다.

Worlds Collide : 스타일 쿼리를 사용한 KeyFrame Collision DetectionWorlds Collide : 스타일 쿼리를 사용한 KeyFrame Collision DetectionApr 23, 2025 am 10:42 AM

2025 년에 서로를 ricocheting하는 요소가있는 대화식 CSS 애니메이션은 CSS에서 Pong을 구현할 필요가 없지만 CSS의 유연성과 힘이 증가하는 것은 LEE의 의심을 강화합니다.

UI 효과를 위해 CSS 배경 필터 사용UI 효과를 위해 CSS 배경 필터 사용Apr 23, 2025 am 10:20 AM

CSS 배경 필터 속성을 사용하여 사용자 인터페이스 스타일에 대한 팁과 요령. 여러 요소들 사이에 필터를 배경으로 배경으로 배경으로하는 방법을 배우고 다른 CSS 그래픽 효과와 통합하여 정교한 디자인을 만듭니다.

미소?미소?Apr 23, 2025 am 09:57 AM

글쎄, SVG '의 내장 애니메이션 기능은 계획대로 이상 사용되지 않았다. 물론 CSS와 JavaScript는 부하를 운반 할 수있는 것 이상이지만 Smil이 이전과 같이 물에서 죽지 않았다는 것을 아는 것이 좋습니다.

'예쁜'은 보는 사람의 눈에 있습니다'예쁜'은 보는 사람의 눈에 있습니다Apr 23, 2025 am 09:40 AM

예, 텍스트-랩을위한 점프 : Safari Technology Preview의 예쁜 착륙! 그러나 Chromium 브라우저에서 작동하는 방식과는 다른 점을 조심하십시오.

CSS- 트릭 연대기 XLIIICSS- 트릭 연대기 XLIIIApr 23, 2025 am 09:35 AM

이 CSS- 트릭 업데이트는 Almanac, 최근 Podcast 출연, 새로운 CSS 카운터 가이드 및 귀중한 컨텐츠에 기여하는 몇 가지 새로운 저자의 추가 진전을 강조합니다.

Tailwind ' s @apply 기능은 소리보다 낫습니다Tailwind ' s @apply 기능은 소리보다 낫습니다Apr 23, 2025 am 09:23 AM

대부분의 경우 사람들은 Tailwind ' S 단일 프로퍼 유틸리티 중 하나 (단일 CSS 선언을 변경)와 함께 Tailwind ' s @apply 기능을 보여줍니다. 이런 식으로 선보일 때 @apply는 전혀 약속하는 소리가 들리지 않습니다. 그래서 Obvio

릴리스가없는 느낌 : 제정신 배치를 향한 여정릴리스가없는 느낌 : 제정신 배치를 향한 여정Apr 23, 2025 am 09:19 AM

바보처럼 배포하는 것은 배포하는 데 사용하는 도구와 복잡성에 대한 보상과 복잡성이 추가됩니다.

See all articles

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

Video Face Swap

Video Face Swap

완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

뜨거운 도구

에디트플러스 중국어 크랙 버전

에디트플러스 중국어 크랙 버전

작은 크기, 구문 강조, 코드 프롬프트 기능을 지원하지 않음

ZendStudio 13.5.1 맥

ZendStudio 13.5.1 맥

강력한 PHP 통합 개발 환경

DVWA

DVWA

DVWA(Damn Vulnerable Web App)는 매우 취약한 PHP/MySQL 웹 애플리케이션입니다. 주요 목표는 보안 전문가가 법적 환경에서 자신의 기술과 도구를 테스트하고, 웹 개발자가 웹 응용 프로그램 보안 프로세스를 더 잘 이해할 수 있도록 돕고, 교사/학생이 교실 환경 웹 응용 프로그램에서 가르치고 배울 수 있도록 돕는 것입니다. 보안. DVWA의 목표는 다양한 난이도의 간단하고 간단한 인터페이스를 통해 가장 일반적인 웹 취약점 중 일부를 연습하는 것입니다. 이 소프트웨어는

맨티스BT

맨티스BT

Mantis는 제품 결함 추적을 돕기 위해 설계된 배포하기 쉬운 웹 기반 결함 추적 도구입니다. PHP, MySQL 및 웹 서버가 필요합니다. 데모 및 호스팅 서비스를 확인해 보세요.

mPDF

mPDF

mPDF는 UTF-8로 인코딩된 HTML에서 PDF 파일을 생성할 수 있는 PHP 라이브러리입니다. 원저자인 Ian Back은 자신의 웹 사이트에서 "즉시" PDF 파일을 출력하고 다양한 언어를 처리하기 위해 mPDF를 작성했습니다. HTML2FPDF와 같은 원본 스크립트보다 유니코드 글꼴을 사용할 때 속도가 느리고 더 큰 파일을 생성하지만 CSS 스타일 등을 지원하고 많은 개선 사항이 있습니다. RTL(아랍어, 히브리어), CJK(중국어, 일본어, 한국어)를 포함한 거의 모든 언어를 지원합니다. 중첩된 블록 수준 요소(예: P, DIV)를 지원합니다.