【问题标题】:Form width increases on Safari for iPhoneiPhone 版 Safari 上的表单宽度增加
【发布时间】:2013-09-21 00:25:51
【问题描述】:

我不明白为什么 iPhone 版 Safari 上的表单宽度会增加。我试图修改我的 CSS,似乎是“字体大小”导致了这个问题。有什么解决办法吗?

这是代码:

HTML

<input type="text" id="form" class="newsletter_input" name="email"> 

CSS

.newsletter_input {
border: 0px solid #fff;
background: #fff;
color: #0ce980;
font-family: 'Lato', Arial;
font-weight: 300;
font-size: 42pt;
width: 855px;
height: 100px;
margin-left: 50px;
margin-top: 10px;
text-align: center; 
}

.newsletter_input:focus {
ouline: 0;  
}

【问题讨论】:

  • 在 safari 中字体大小会变成什么

标签: css forms width mobile-safari font-size


【解决方案1】:

Mobile Safari(如 Android 版 Chrome、Mobile Firefox 和 IE Mobile)会(始终)增加宽块的字体大小,这样如果您双击以放大该块(使该块适合屏幕宽度),文本将清晰易读。如果您设置 -webkit-text-size-adjust: 100%(或无),它将无法做到这一点,因此当用户双击放大宽块时,文本将难以辨认;用户可以通过捏拉放大来阅读它,但是文本会比屏幕宽,他们必须水平平移才能阅读每一行文本!

理想情况下,您可以通过使用响应式网页设计技术来解决此问题,使您的设计适应移动屏幕尺寸(在这种情况下,您将不再有任何非常宽的块,因此移动浏览器将不再调整您的字体大小)。

最后,如果您确实需要阻止 Mobile Safari 调整字体大小,您可以设置 -webkit-text-size-adjust: 100%,但这只能作为最后的手段,因为它可能会导致移动用户难以阅读您的文本,因为它要么太小,要么他们必须在阅读每一行后从一侧平移到另一侧。请注意,您必须使用 100% 而不是 none,因为 none 在桌面浏览器中具有令人讨厌的副作用。 Mobile Firefox 和 IE Mobile 也有等效的 -moz-text-size-adjust 和 -ms-text-size-adjust 属性。

编辑:例如,在您的情况下,最简单的可能是第二种选择,因此您可以尝试添加以下 CSS:

/* Mobile browsers only */
@media only screen and (max-device-width: 480px) {
   .newsletter_input {
        width: 855px;
    }
    .newsletter_input #form{
        font-size:42pt
    }
}

虽然像这样硬编码 855px 并不理想;您可以通过使用各种 CSS 媒体查询或从 JavaScript 获取设备宽度来改进这一点。

【讨论】:

    猜你喜欢
    • 2012-10-03
    • 1970-01-01
    • 2011-04-09
    • 2011-12-10
    • 2012-01-14
    • 2012-09-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多