development

모바일 웹 페이지에서 확대 / 축소를 어떻게 비활성화 할 수 있습니까?

big-blog 2020. 3. 15. 09:39
반응형

모바일 웹 페이지에서 확대 / 축소를 어떻게 비활성화 할 수 있습니까?


기본적으로 몇 가지 텍스트 입력이있는 큰 형태의 모바일 웹 페이지를 만들고 있습니다.

그러나 (적어도 내 안드로이드 휴대 전화에서는) 일부 입력을 클릭 할 때마다 전체 페이지가 확대되어 나머지 페이지가 흐려집니다. moble 웹 페이지에서 이러한 종류의 확대 / 축소를 비활성화하는 HTML 또는 CSS 명령이 있습니까?


이것은 당신이 필요로하는 모든 것이어야합니다

<meta 
     name='viewport' 
     content='width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0' 
/>

파티에 늦게 오신 분들에게는 kgutteridge의 답변이 저에게 효과적이지 않으며 Benny Neugebauer의 답변에는 target-densitydpi ( 더 이상 사용되지 않는 기능 )가 포함되어 있습니다.

그러나 이것은 나를 위해 작동합니다 :

<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />

여기에는 여러 가지 접근 방식이 있으며 접근성 목적으로 확대 / 축소 할 때 일반적으로 사용자를 제한해서는 안된다는 입장이지만, 필요한 경우가 발생할 수 있습니다.

장치의 너비로 페이지를 렌더링하십시오.

<meta name="viewport" content="width=device-width, initial-scale=1.0">

스케일링 방지 및 사용자가 확대 / 축소 할 수 없음 :

<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">

모든 확대 / 축소, 모든 배율 제거

<meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width, height=device-height, target-densitydpi=device-dpi" />

당신이 사용할 수있는:

<head>
  <meta name="viewport" content="target-densitydpi=device-dpi, initial-scale=1.0, user-scalable=no" />
  ...
</head>

그러나 Android 4.4 에서는 target-densitydpi 속성 이 더 이상 지원되지 않습니다 . 따라서 Android 4.4 이상에서는 다음이 모범 사례로 제안됩니다.

<meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no" />

초기 문제에 대한 해결책은 아직 없으므로 순수 CSS는 2 센트입니다.

모바일 브라우저 (대부분의 경우)는 입력시 글꼴 크기가 16 픽셀이어야합니다. 그래서

input[type="text"],
input[type="number"],
input[type="email"],
input[type="tel"],
input[type="password"] {
  font-size: 16px;
}

문제를 해결합니다. 따라서 사이트의 확대 / 축소 및 느슨한 접근성 기능을 비활성화 할 필요가 없습니다.

휴대폰에서 기본 글꼴 크기가 16 픽셀이 아니거나 16 픽셀이 아닌 경우 미디어 쿼리를 사용할 수 있습니다.

@media screen and (max-width: 767px) {
  input[type="text"],
  input[type="number"],
  input[type="email"],
  input[type="tel"],
  input[type="password"] {
    font-size: 16px;
  }
}


이 메타 태그와 스타일을 추가하십시오

<meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" name="viewport"/>


<style>
body{
        touch-action: manipulation;
    }
</style>

웹 응용 프로그램에 대한 가능한 솔루션 : iOS Safari에서 더 이상 확대 / 축소를 비활성화 할 수 없지만 홈 화면 바로 가기에서 사이트를 열면 확대 / 축소 가 비활성화됩니다.

다음 메타 태그를 추가하여 앱을 "웹 앱 가능"으로 선언하십시오.

    <meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" name="viewport"/>
    <meta name='apple-mobile-web-app-capable' content='yes' />

그러나 공유 옵션이 비활성화되어있을 때 앞으로 / 뒤로 단추와 URL 표시 줄이 있으므로 앱이 자체 유지되는 경우 에만 이 기능을 사용하십시오. (그러나 여전히 왼쪽과 오른쪽으로 스 와이프 할 수 있습니다) 그러나이 접근법은 ux와 같은 앱을 가능하게합니다. 전체 화면 브라우저는 사이트가 홈 화면에서로드 될 때만 시작됩니다. 루트 폴더에 apple-touch-icon-180x180.png를 포함시킨 후에 만 ​​작동합니다.

보너스로 다음과 같은 변형도 포함하고 싶을 것입니다.

<meta name='apple-mobile-web-app-status-bar-style' content='black-translucent'/>

다음 '메타'요소를 '헤드'에 추가하면 작업을 수행 할 수 있습니다.

<meta name="viewport" content="user-scalable=no">

'width', 'initial-scale', 'maximum-width', 'maximum-scale'과 같은 모든 속성을 추가하면 작동하지 않을 수 있습니다. 따라서 위의 요소를 추가하십시오.

참고 URL : https://stackoverflow.com/questions/4472891/how-can-i-disable-zoom-on-a-mobile-web-page

반응형