iPhone 방향이 세로에서 가로로 변경 될 때 HTML 글꼴 크기 유지


203

각 li 안에 하이퍼 링크가있는 여러 목록 항목이 포함 된 정렬되지 않은 목록이있는 모바일 웹 응용 프로그램이 있습니다.

... 제 질문은 하이퍼 링크를 iPhone에서 볼 때 크기가 변경되지 않고 가속도계가 세로-> 가로로 전환되도록 어떻게 하이퍼 링크를 포맷 할 수 있습니까? 현재 하이퍼 링크 글꼴 크기는 14px로 설정되어 있지만 가로로 전환하면 최대 20px로 줄어 듭니다. 글꼴 크기를 동일하게 유지하고 싶습니다. 코드는 다음과 같습니다.

ul li a
{
  font-size:14px;
  text-decoration: none;
  color: #cc9999;
}
<ul>
  <li id="home" class="active">
    <a href="home.html">HOME</a>
  </li>
  <li id="home" class="active">
    <a href="test.html">TEST</a>
  </li>
</ul>

답변:


434

-webkit-text-size-adjustCSS 속성을 통해이 동작을 비활성화 할 수 있습니다 .

html {
    -webkit-text-size-adjust: 100%; /* Prevent font scaling in landscape while allowing user zoom */
}

이 속성의 사용은 Safari 웹 컨텐츠 안내서에 자세히 설명되어 있습니다.


4
snobojohan은 노트를 가로 전용 미디어 쿼리로 래핑하여 데스크탑 브라우저에서 글꼴 크기를 늘릴 수 있도록합니다. 핀치 확대 / 축소가 작동하는 iOS 대상 페이지에서는 필요하지 않습니다.
매트 스티븐스

이 기능은 iOS6에서 작동하지 않습니다. <meta content="viewport"메타 태그를 사용해 볼 수도 있습니다 (아래 참조)
Dan

13
DO NOT 사용 none, 사용 100%, 대신 의 그 : 당신이 원하는 행동 blog.55minutes.com/2012/04/iphone-text-resizing
fregante

1
이것에 감사합니다 ... 가로 xD에서 글꼴 크기가 어떻게되는지 알아 내려고 노력했습니다
Jeff Shaver

3
@ bfred.it +1, 그 변화 로이 답변을 편집하는 것이 가치가 있다고 생각합니다.
Ming

106

참고 : 사용하는 경우

html {
    -webkit-text-size-adjust: none;
}

그러면 기본 브라우저에서 확대 / 축소 동작이 비활성화됩니다. 더 나은 해결책은 다음과 같습니다.

html {
    -webkit-text-size-adjust: 100%;
}

데스크탑 동작을 변경하지 않고 iPhone / iPad 동작을 수정합니다.


25

-webkit-text-size-adjust 사용 : 없음; HTML에서 직접 사용하면 모든 웹킷 브라우저에서 텍스트를 확대 / 축소 할 수 없습니다. 이를 iOS 전용 솜 미디어 쿼리와 결합해야합니다. 예를 들면 다음과 같습니다.

@media only screen and (min-device-width : 320px) and (max-device-width : 1024px) {
     html {
        -webkit-text-size-adjust: none;
     }
}

재미있게도 나는 미디어 쿼리 안에 -webkit 속성을 넣어서 작동하도록했습니다. 감사!
zuallauz

12

앞에서 언급했듯이 CSS 규칙

 -webkit-text-size-adjust: none

최신 장치에서는 더 이상 작동하지 않습니다.

다행히도 iOS5 및 iOS6에 대한 새로운 솔루션이 제공됩니다 (todo : iOS7은 어떻습니까?) .

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

, user-scalable=0핀치 확대 / 축소 기능 을 해제하여 웹 사이트가 기본 앱처럼 작동하도록 추가 할 수도 있습니다 . 사용자가 확대 / 축소 할 때 디자인이 중단되면 대신이 메타 태그를 사용하십시오.

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

이 메타 태그에 쉼표 또는 세미콜론 구분 기호를 사용할지 여부는 좋은 질문입니다. 그러나 그것은 작동합니다 :)
Dan

2
나는 <meta name="viewport" content="width=device-width, initial-scale=1.0">그것을 적용하기 만하면된다.
Foxinni

1
@ Foxinni : 감사합니다. 이 2 개의 첫 번째 메타 태그는 초기 iOS 버전에서 폐기 된 쓰레기라고 생각합니다.
Dan

10

HTML 헤더에 메타를 추가 할 수 있습니다.

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


9

crazygringo가 권장하는 동일한 규칙을 포함하는 normalize.css 와 같은 CSS 재설정을 사용하도록 선택할 수도 있습니다 .

/**
 * 2. Prevent iOS text size adjust after orientation change, without disabling
 *    user zoom.
 */

html {
  -ms-text-size-adjust: 100%;
  -webkit-text-size-adjust: 100%;
}

보시다시피 IE 전화에 대한 공급 업체별 규칙도 포함되어 있습니다.

다른 브라우저에서의 구현에 대한 최신 정보 는 MDN 참조 페이지를 참조하십시오 .


3

아래 코드는 저에게 효과적입니다.

html{-webkit-text-size-adjust: 100%;}

브라우저 캐시가 작동하지 않으면 지우십시오.



0

제 경우에는 width: 100%HTML 태그에 CSS 속성 을 사용했기 때문에이 문제가 발생했습니다.input type="text" .

의 값 width을 60 %로 변경 하고 추가했습니다 padding-right:38%.

input {
    padding-right: 38%;
    width: 60%;
}
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.