<input>
태그 가있는 HTML 페이지를 만들었습니다 type="text"
. iPhone에서 Safari를 사용하여 클릭하면 페이지가 커집니다 (자동 확대 / 축소). 아무도 이것을 비활성화하는 방법을 알고 있습니까?
<input>
태그 가있는 HTML 페이지를 만들었습니다 type="text"
. iPhone에서 Safari를 사용하여 클릭하면 페이지가 커집니다 (자동 확대 / 축소). 아무도 이것을 비활성화하는 방법을 알고 있습니까?
답변:
글꼴 크기가 작고 16px
양식 요소의 기본 글꼴 크기가 11px
(최소한 Chrome 및 Safari) 인 경우 브라우저가 확대 / 축소됩니다 .
또한이 select
요소에는 focus
의사 클래스가 연결되어 있어야합니다 .
input[type="color"],
input[type="date"],
input[type="datetime"],
input[type="datetime-local"],
input[type="email"],
input[type="month"],
input[type="number"],
input[type="password"],
input[type="search"],
input[type="tel"],
input[type="text"],
input[type="time"],
input[type="url"],
input[type="week"],
select:focus,
textarea {
font-size: 16px;
}
단지 : 그것은 그냥 스타일은 요소 당신은 예를 들어, 필요 수 위의 모든를 사용할 필요는 없습니다 text
, number
그리고 textarea
:
input[type='text'],
input[type='number'],
textarea {
font-size: 16px;
}
입력 요소가 부모 스타일에서 상속되도록하는 대체 솔루션 :
body {
font-size: 16px;
}
input[type="text"] {
font-size: inherit;
}
select, textarea, input[type="text"], input[type="password"], input[type="datetime"], input[type="datetime-local"], input[type="date"], input[type="month"], input[type="time"], input[type="week"], input[type="number"], input[type="email"], input[type="url"], input[type="search"], input[type="tel"], input[type="color"] { font-size: 16px; }
select:focus
합니다. 같은 문제가 발생했습니다.
사용자가 확대 / 축소 핀치 기능을 비활성화 하지 않고 사용자 입력 중에 Safari가 텍스트 필드를 자동으로 확대하지 못하게 할 수 있습니다 . maximum-scale=1
다른 답변에서 제안 된 사용자 스케일 속성을 추가하십시오 .
확대 / 축소 된 경우 "부동"하는 레이어에 양식이 있으면 중요한 UI 요소가 화면 밖으로 이동할 수 있습니다.
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
@media screen and (-webkit-min-device-pixel-ratio:0) {
select:focus,
textarea:focus,
input:focus {
font-size: 16px;
background: #eee;
}
}
@media screen and (-webkit-min-device-pixel-ratio:0) {
select,
textarea,
input {
font-size: 16px;
}
}
IOS가 선택에 배경을 추가하지 않기 때문에 배경을 추가했습니다.
@media screen and (-webkit-min-device-pixel-ratio:0) and (max-device-width:1024px)
iPhone에 미치는 영향을 제한하는 데 사용 하지만 Chrome에서 볼 때 웹 사이트를 수정하지 마십시오.
@supports (-webkit-overflow-scrolling: touch)
이 CSS 기능은 iOS에만 존재 하므로 미디어 쿼리를 사용하는 대신을 사용해야 합니다.
웹 사이트가 휴대 기기 용으로 올바르게 설계된 경우 확장을 허용하지 않을 수 있습니다.
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0" />
이렇게하면 모바일 페이지 또는 양식이 '부동'하는 문제가 해결됩니다.
요약하면 대답은 다음과 같습니다. 양식 요소의 글꼴 크기를 16px 이상으로 설정하십시오.
font-size: 100%
값을 올바르게 해석하고 필요한 16px를 얻습니다.
input[type='text'],textarea {font-size:1em;}
1em
, 또는 100%
) 인 경우에만 작동합니다 . 맞춤 글꼴 크기를 설정하면 자동 확대를 피하기 위해 font-size
스 니펫에서 16px
를 설정할 수 있습니다 .
1em
아닙니다 . 1rem
16px
16px
이 문제를 해결하는 올바른 방법은 메타 뷰포트를 다음과 같이 변경하는 것입니다.
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=0"/>
내가 찾을 수있는 확실한 방법은 없지만 여기에 해킹이 있습니다 ...
1) 확대 전에 마우스 오버 이벤트가 발생하지만 마우스 다운 또는 포커스 이벤트 전에 확대가 발생합니다.
2) javascript를 사용하여 META 뷰포트 태그를 동적으로 변경할 수 있습니다 ( Javascript를 사용하여 iPhone Safari에서 확대 / 축소 활성화 / 비활성화?를 참조 하십시오 ).
따라서 이것을 시도하십시오 (압축성을 위해 jquery에 표시).
$("input[type=text], textarea").mouseover(zoomDisable).mousedown(zoomEnable);
function zoomDisable(){
$('head meta[name=viewport]').remove();
$('head').prepend('<meta name="viewport" content="user-scalable=0" />');
}
function zoomEnable(){
$('head meta[name=viewport]').remove();
$('head').prepend('<meta name="viewport" content="user-scalable=1" />');
}
이것은 분명히 해킹입니다 ... 마우스 오버 / 다운이 항상 항목 / 종료를 잡을 수는 없지만 테스트에서 잘 작동하고 견실 한 시작입니다.
나는 최근에 (오늘 : D)이 행동을 통합해야했다. 콤보를 포함한 원래 디자인 필드에 영향을 미치지 않기 위해 필자는 필드의 초점에 맞춰 변형을 적용하기로 결정했습니다.
input[type="text"]:focus, input[type="password"]:focus,
textarea:focus, select:focus {
font-size: 16px;
}
다음과 같이 user-scalable = 0 을 뷰포트 메타에 추가하십시오.
<meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=0">
나를 위해 일했다 :)
다른 많은 답변이 이미 지적했듯이 maximum-scale
메타 viewport
태그 에 추가하면 됩니다 . 그러나 이는 Android 기기에서 사용자 확대 / 축소를 사용 중지하면 부정적인 결과를 초래합니다 . ( v10 이후 iOS 기기에서는 사용자 확대 / 축소를 비활성화하지 않습니다 .)
기기가 iOS 인 경우 JavaScript를 사용 maximum-scale
하여 메타 에 동적으로 추가 할 수 있습니다 viewport
. 이 두 세계의 최고 달성 : 우리는 사용자가 확대 할 수 있도록 하고 초점을 텍스트 필드에 확대에서 아이폰 OS를 방지 할 수 있습니다.
| maximum-scale | iOS: can zoom | iOS: no text field zoom | Android: can zoom |
| ------------------------- | ------------- | ----------------------- | ----------------- |
| yes | yes | yes | no |
| no | yes | no | yes |
| yes on iOS, no on Android | yes | yes | yes |
암호:
const addMaximumScaleToMetaViewport = () => {
const el = document.querySelector('meta[name=viewport]');
if (el !== null) {
let content = el.getAttribute('content');
let re = /maximum\-scale=[0-9\.]+/g;
if (re.test(content)) {
content = content.replace(re, 'maximum-scale=1.0');
} else {
content = [content, 'maximum-scale=1.0'].join(', ')
}
el.setAttribute('content', content);
}
};
const disableIosTextFieldZoom = addMaximumScaleToMetaViewport;
// /programming/9038625/detect-if-device-is-ios/9039885#9039885
const checkIsIOS = () =>
/iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream;
if (checkIsIOS()) {
disableIosTextFieldZoom();
}
addMaximumScaleToMetaViewport
시겠습니까? 의미상의 이유 때문입니까?
iOS 7에서 작동하는 Javascript 핵은 @dlo의 답변을 기반으로하지만 mouseover 및 mouseout 이벤트는 touchstart 및 touchend 이벤트로 대체됩니다. 기본적으로이 스크립트는 확대를 방지하기 위해 확대 / 축소가 다시 활성화되기 전에 0.5 초 시간 초과를 추가합니다.
$("input[type=text], textarea").on({ 'touchstart' : function() {
zoomDisable();
}});
$("input[type=text], textarea").on({ 'touchend' : function() {
setTimeout(zoomEnable, 500);
}});
function zoomDisable(){
$('head meta[name=viewport]').remove();
$('head').prepend('<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=0" />');
}
function zoomEnable(){
$('head meta[name=viewport]').remove();
$('head').prepend('<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=1" />');
}
이것은 나를 위해 일했다 :
input, textarea {
font-size: initial;
}
위의 Christina 솔루션을 사용했지만 부트 스트랩을 약간 수정하고 데스크톱 컴퓨터에 적용 할 다른 규칙을 사용했습니다. 부트 스트랩의 기본 글꼴 크기는 14px이므로 줌이 발생합니다. 다음은 부트 스트랩의 "폼 컨트롤"에 대해 16px로 변경하여 확대를 방지합니다.
@media screen and (-webkit-min-device-pixel-ratio:0) {
.form-control {
font-size: 16px;
}
}
모바일이 아닌 브라우저의 경우 14px로 돌아갑니다.
@media (min-width: 768px) {
.form-control {
font-size: 14px;
}
}
.form-control : focus를 사용하여 16px로 변경 한 포커스를 제외하고 14px로 남겨두고 iOS8의 줌 문제를 해결하지 못했습니다. 적어도 iOS8을 사용하는 iPhone에서는 iPhone이 페이지를 확대하지 않으려면 글꼴 크기가 16px이어야합니다.
jQuery와 함께이 작업을 수행했습니다.
$('input[type=search]').on('focus', function(){
// replace CSS font-size with 16px to disable auto zoom on iOS
$(this).data('fontSize', $(this).css('font-size')).css('font-size', '16px');
}).on('blur', function(){
// put back the CSS font-size
$(this).css('font-size', $(this).data('fontSize'));
});
물론,이 16px
글꼴 크기로 인해 디자인이 중단되는 경우 인터페이스의 일부 다른 요소를 수정해야 할 수도 있습니다 .
잠시 동안이 솔루션을 생각해 냈습니다.
// set font-size to 16px to prevent zoom
input.addEventListener("mousedown", function (e) {
e.target.style.fontSize = "16px";
});
// change font-size back to its initial value so the design will not break
input.addEventListener("focus", function (e) {
e.target.style.fontSize = "";
});
"마우스 다운"에서는 입력의 글꼴 크기를 16px로 설정합니다. 줌이되지 않습니다. 포커스가있는 이벤트에서는 글꼴 크기가 초기 값으로 다시 변경됩니다.
이전에 게시 된 솔루션과 달리 입력의 글꼴 크기를 원하는대로 설정할 수 있습니다.
여기에서 거의 모든 한 줄을 읽고 다양한 솔루션을 테스트 한 후 솔루션을 공유 한 모든 사람들, iPhone 7 iOS 10.x에서 내가 생각해 냈고 테스트 한 결과 덕분입니다.
@media screen and (-webkit-min-device-pixel-ratio:0) {
input[type="email"]:hover,
input[type="number"]:hover,
input[type="search"]:hover,
input[type="text"]:hover,
input[type="tel"]:hover,
input[type="url"]:hover,
input[type="password"]:hover,
textarea:hover,
select:hover{font-size: initial;}
}
@media (min-width: 768px) {
input[type="email"]:hover,
input[type="number"]:hover,
input[type="search"]:hover,
input[type="text"]:hover,
input[type="tel"]:hover,
input[type="url"]:hover,
input[type="password"]:hover,
textarea:hover,
select:hover{font-size: inherit;}
}
그러나 "호버링"상태와 "포커스"상태 사이에서 발생하는 빠른 글꼴 크기 변경과 성능에 대한 다시 그리기 영향으로 인해 현저한 "점프"문제가 있습니다.
의사 요소는 :focus
예전 처럼 작동하지 않습니다. iOS 11부터 기본 스타일 앞에 간단한 재설정 선언을 추가 할 수 있습니다 (글꼴 크기가 더 작은 글꼴을 재정의하지 않는 경우).
/* Prevent zoom */
select, input, textarea {
font-size: 16px;
}
Tachyons.css와 같은 CSS 라이브러리의 경우 실수로 글꼴 크기를 무시하기 쉽다는 점을 언급 할 가치가 있습니다.
예를 들어 class : f5
는 다음과 같습니다.fontSize: 1rem
본문 글꼴 크기를 기본값으로 유지하면 좋습니다.
그러나 글꼴 크기 클래스를 선택 하면 작은 디스플레이에서 f6
위와 같습니다 fontSize: .875rem
. 이 경우 재설정 선언에 대해 더 구체적이어야합니다.
/* Prevent zoom */
select, input, textarea {
font-size: 16px!important;
}
@media screen and (min-width: 30em) {
/* not small */
}
네덜란드 대학 웹 사이트 (양식 컨트롤에서 15px를 사용함)의 자동 폼 컨트롤 문제를 "수정"해야했습니다. 나는 다음과 같은 요구 사항을 생각해 냈습니다.
이것이 내가 지금까지 생각 해낸 것입니다.
/*
NOTE: This code overrides the viewport settings, an improvement would be
to take the original value and only add or change the user-scalable value
*/
// optionally only activate for iOS (done because I havn't tested the effect under other OS/devices combinations such as Android)
var iOS = navigator.platform && /iPad|iPhone|iPod/.test(navigator.platform)
if (iOS)
preventZoomOnFocus();
function preventZoomOnFocus()
{
document.documentElement.addEventListener("touchstart", onTouchStart);
document.documentElement.addEventListener("focusin", onFocusIn);
}
let dont_disable_for = ["checkbox", "radio", "file", "button", "image", "submit", "reset", "hidden"];
//let disable_for = ["text", "search", "password", "email", "tel", "url", "number", "date", "datetime-local", "month", "year", "color"];
function onTouchStart(evt)
{
let tn = evt.target.tagName;
// No need to do anything if the initial target isn't a known element
// which will cause a zoom upon receiving focus
if ( tn != "SELECT"
&& tn != "TEXTAREA"
&& (tn != "INPUT" || dont_disable_for.indexOf(evt.target.getAttribute("type")) > -1)
)
return;
// disable zoom
setViewport("width=device-width, initial-scale=1.0, user-scalable=0");
}
// NOTE: for now assuming this focusIn is caused by user interaction
function onFocusIn(evt)
{
// reenable zoom
setViewport("width=device-width, initial-scale=1.0, user-scalable=1");
}
// add or update the <meta name="viewport"> element
function setViewport(newvalue)
{
let vpnode = document.documentElement.querySelector('head meta[name="viewport"]');
if (vpnode)
vpnode.setAttribute("content",newvalue);
else
{
vpnode = document.createElement("meta");
vpnode.setAttribute("name", "viewport");
vpnode.setAttribute("content", newvalue);
}
}
몇 가지 참고 사항 :
글꼴 크기를 16px로 설정하는 대신 다음을 수행 할 수 있습니다.
scale()
CSS 변환 및 음수 여백을 사용하십시오.예를 들어 입력 필드의 스타일이 원래 다음과 같다고 가정합니다.
input[type="text"] {
border-radius: 5px;
font-size: 12px;
line-height: 20px;
padding: 5px;
width: 100%;
}
모든 치수를 16/12 = 133.33 % 늘려서 필드를 확대 한 다음 12/16 scale()
= 75 % 로 줄이면 입력 필드에 올바른 시각적 크기 (및 글꼴 크기)가 있고 확대 / 축소되지 않습니다 초점.
같이 scale()
만 시각적 크기에 영향을, 당신은 또한 필드의 논리적 크기를 줄일 수 부정적인 여백을 추가해야합니다.
이 CSS로 :
input[type="text"] {
/* enlarge by 16/12 = 133.33% */
border-radius: 6.666666667px;
font-size: 16px;
line-height: 26.666666667px;
padding: 6.666666667px;
width: 133.333333333%;
/* scale down by 12/16 = 75% */
transform: scale(0.75);
transform-origin: left top;
/* remove extra white space */
margin-bottom: -10px;
margin-right: -33.333333333%;
}
입력 필드의 논리적 글꼴 크기는 16px이며 텍스트는 12px입니다.
블로그 게시물을 좀 더 자세히 살펴 보고이 예제를 볼 수있는 HTML로 가지고 있습니다 : iPhone의 Safari에서 입력 확대 / 축소가 없습니다 .
이러한 답변에도 불구하고 무슨 일이 일어나고 있는지 파악하는 데 3 일이 걸렸으며 앞으로 해결책을 다시 필요할 수 있습니다.
내 상황은 설명 된 것과 약간 다릅니다.
내 페이지의 div에 편집 가능한 텍스트가 있습니다. 사용자가 정렬 버튼 인 DIFFERENT div를 클릭하면 contenteditable div에서 일부 텍스트 (이전에 저장하고 지운 선택 범위)를 자동으로 선택하고 해당 선택에서 서식있는 텍스트 execCommand를 실행 한 다음 다시 지 웁니다.
이를 통해 페이지의 다른 곳에서 색상 div와의 사용자 상호 작용을 기반으로 텍스트 색상을 눈에 띄게 변경할 수 있었으며 적절한 컨텍스트에서 색상을 볼 수 있도록 선택 영역을 숨겨 두었습니다.
아이 패드의 사파리에서 컬러 div를 클릭하면 온 스크린 키보드가 나왔고, 아무 것도 막을 수 없었습니다.
나는 마침내 아이 패드가 어떻게하고 있는지 알아 냈다.
편집 가능한 텍스트 선택을 트리거하는 터치 스타트 및 터치 엔드 시퀀스를 수신합니다.
해당 조합이 발생하면 온 스크린 키보드가 표시됩니다.
실제로 편집 가능한 텍스트를 확대하면서 기본 페이지를 확장하는 돌리 확대 / 축소를 수행합니다. 내가보고있는 것을 이해하는 데 하루가 걸렸습니다.
그래서 내가 사용한 솔루션은 특정 색상 div에서 터치 스타트와 터치 엔드를 모두 차단하는 것이 었습니다. 두 처리기 모두에서 전파 및 버블 링을 중지하고 false를 반환합니다. 그러나 터치 엔드 이벤트에서 클릭이 트리거 된 것과 동일한 동작을 트리거합니다.
그래서 Safari는 전에 "터치 스타트", "마우스 다운", "터치 엔드", "마우스 업", "클릭"이라고 생각한 것을 트리거했습니다.
인터셉트로 인한 새로운 시퀀스는 단순히 텍스트 선택입니다. Safari가 처리하고 키보드 작업을 수행하기 전에 다른 모든 것이 차단됩니다. 터치 스타트와 터치 엔드 인터셉트는 마우스 이벤트가 트리거되는 것을 막아줍니다.
나는 이것을 설명하는 더 쉬운 방법을 모르지만 처음에 문제가 발생한 후 1 시간 이내에이 스레드를 발견했기 때문에 여기에있는 것이 중요하다고 생각합니다.
나는 같은 수정이 입력 상자 및 다른 것들과 작동 할 것이라고 확신합니다. 터치 이벤트를 가로 채서 전파하거나 버블 링하지 않고 개별적으로 처리하고, Safari가 시퀀스를 키보드 트리거로 인식하지 못하도록 약간의 시간 초과 후 선택을 고려하십시오.
여기 사람들이 JavaScript 또는 뷰포트 기능을 사용하여 이상한 일을하고 수동으로 장치를 확대 / 축소하는 것을 봅니다. 내 생각에는 해결책이되어서는 안됩니다. 이 CSS 스 니펫을 추가하면 글꼴 크기를 16px와 같은 고정 숫자로 변경하지 않고 iOS에서 자동 확대 기능이 해제됩니다.
기본적으로 입력 필드에 93.8 % (15px) 글꼴 크기를 사용하고 CSS 스 니펫을 추가하면 93.8 %로 유지됩니다. 16px로 변경하거나 고정 번호로 만들 필요가 없습니다.
input[type="text"]:focus,
textarea:focus {
-webkit-text-size-adjust: 100%;
}
iPhone에서 자동 확대 (축소 제외) 기능이 계속 작동하므로 초점 / 흐림 작업에 대한 dlo의 제안을 기반으로하는 JavaScript가 있습니다.
입력을 그대로두면 텍스트 입력이 취소되고 다시 활성화되는 즉시 확대 / 축소가 비활성화됩니다.
참고 : 일부 사용자는 작은 텍스트 입력으로 편집 텍스트를 적절하게 표시하지 않을 수 있습니다! 따라서 개인적으로 편집하는 동안 입력 텍스트 크기를 변경하는 것을 선호합니다 (아래 코드 참조).
<script type="text/javascript">
<!--
function attachEvent(element, evtId, handler) {
if (element.addEventListener) {
element.addEventListener(evtId, handler, false);
} else if (element.attachEvent) {
var ieEvtId = "on"+evtId;
element.attachEvent(ieEvtId, handler);
} else {
var legEvtId = "on"+evtId;
element[legEvtId] = handler;
}
}
function onBeforeZoom(evt) {
var viewportmeta = document.querySelector('meta[name="viewport"]');
if (viewportmeta) {
viewportmeta.content = "user-scalable=0";
}
}
function onAfterZoom(evt) {
var viewportmeta = document.querySelector('meta[name="viewport"]');
if (viewportmeta) {
viewportmeta.content = "width=device-width, user-scalable=1";
}
}
function disableZoom() {
// Search all relevant input elements and attach zoom-events
var inputs = document.getElementsByTagName("input");
for (var i=0; i<inputs.length; i++) {
attachEvent(inputs[i], "focus", onBeforeZoom);
attachEvent(inputs[i], "blur", onAfterZoom);
}
}
if (navigator.userAgent.match(/iPhone/i) || navigator.userAgent.match(/iPad/i)) {
attachEvent(window, "load", disableZoom);
}
// -->
</script>
다음 코드는 요소에 포커스가있는 동안 입력의 텍스트 크기를 16 픽셀 (현재 줌 크기로 계산)로 변경합니다. 따라서 iPhone은 자동으로 확대되지 않습니다.
참고 : 확대 / 축소 비율은 window.innerWidth 및 320 픽셀의 iPhone 디스플레이를 기준으로 계산됩니다. 이됩니다 만 세로 모드에서 아이폰 유효.
<script type="text/javascript">
<!--
function attachEvent(element, evtId, handler) {
if (element.addEventListener) {
element.addEventListener(evtId, handler, false);
} else if (element.attachEvent) {
var ieEvtId = "on"+evtId;
element.attachEvent(ieEvtId, handler);
} else {
var legEvtId = "on"+evtId;
element[legEvtId] = handler;
}
}
function getSender(evt, local) {
if (!evt) {
evt = window.event;
}
var sender;
if (evt.srcElement) {
sender = evt.srcElement;
} else {
sender = local;
}
return sender;
}
function onBeforeZoom(evt) {
var zoom = 320 / window.innerWidth;
var element = getSender(evt);
element.style.fontSize = Math.ceil(16 / zoom) + "px";
}
function onAfterZoom(evt) {
var element = getSender(evt);
element.style.fontSize = "";
}
function disableZoom() {
// Search all relevant input elements and attach zoom-events
var inputs = document.getElementsByTagName("input");
for (var i=0; i<inputs.length; i++) {
attachEvent(inputs[i], "focus", onBeforeZoom);
attachEvent(inputs[i], "blur", onAfterZoom);
}
}
if (navigator.userAgent.match(/iPhone/i)) {
attachEvent(window, "load", disableZoom);
}
// -->
</script>
그것을 찾는 데 시간이 걸렸지 만 여기에 내가 찾은 최고의 코드가 있습니다 ... http://nerd.vasilis.nl/prevent-ios-from-zooming-onfocus/
var $viewportMeta = $('meta[name="viewport"]');
$('input, select, textarea').bind('focus blur', function(event) {
$viewportMeta.attr('content', 'width=device-width,initial-scale=1,maximum-scale=' + (event.type == 'blur' ? 10 : 1));
});
Stephen Walsh의 대답을 바탕으로 ...이 코드는 초점이 맞지 않는 입력의 글꼴 크기를 변경하지 않고 작동하며 (불충분하게 보입니다) FastClick 과 함께 작동합니다 . 필요에 따라 "뷰포트 너비"를 조정하십시오.
// disable autozoom when input is focused
var $viewportMeta = $('head > meta[name="viewport"]');
$('input, select, textarea').bind('touchend', function(event) {
$viewportMeta.attr('content', 'width=640, user-scalable=0');
setTimeout(function(){ $viewportMeta.attr('content', 'width=640, user-scalable=1'); }, 1)
});
font-size를 16px로 설정하는 것에 대한 최고 답변에 대한 해결책은 그것이 어떻게 해결책인지, 더 큰 / 작은 글꼴을 원하는지 어떻게 물었습니까?
나는 당신에 대해 모두 모르지만 글꼴 크기에 px를 사용하는 것이 가장 좋은 방법은 아닙니다 .em을 사용해야합니다.
텍스트 필드가 16 픽셀보다 큰 반응 형 사이트에서이 문제가 발생했습니다. 양식 컨테이너를 2rem으로 설정하고 입력 필드를 1.4em으로 설정했습니다. 모바일 쿼리에서 뷰포트에 따라 html 글꼴 크기를 변경합니다. 기본 HTML은 10이므로 데스크톱에서 입력 필드가 28px로 계산됩니다.
자동 확대를 제거하려면 입력을 1.6em으로 변경해야했습니다. 이것은 내 글꼴 크기를 32px로 늘 렸습니다. 약간 높고 눈에 띄지 않습니다. iPhone 4 & 5에서는 세로 방향으로 html 글꼴 크기를 15px로 변경하고 가로 방향으로 10px로 변경합니다. 해당 픽셀 크기의 스위트 스팟이 48px 인 것처럼 보였으므로 1.4em (42px)에서 1.6em (48px)로 변경되었습니다.
당신이해야 할 일은 글꼴 크기에서 스위트 스팟을 찾아서 rem / em 크기로 거꾸로 변환하는 것입니다.