获取iPhone字体大小与其他浏览器相同

时间:2011-06-07 07:50:43

标签: iphone html css cross-browser font-size

很久以前,我读了a great article,它描述了使用CSS调整文本大小的跨浏览器友好方式。所描述的策略是这样的:

body {
    font-size:100%;
    line-height:1.125em; /* 16×1.125=18 */
}
.bodytext p {
    font-size:0.875em; /* 16x.875=14 */
}
.sidenote {
    font-size:0.75em; /* 16x0.75=12 */
}

这种策略适用于除iPhone上的Safari之外的所有浏览器,这些浏览器似乎总是放大某些文本。是否有任何策略可以防止这种情况发生?

通常我的解决方案是添加-webkit-text-size-adjust: none;以阻止iPhone扩大文字大小,但我最近遇到this article,其中描述了它不允许用户放大在任何Safari浏览器上的文本 - 显然是一个问题。我知道那里有一个只有CSS的解决方案,但我找不到它。我只是想知道如何设置字体大小,以便它们在所有浏览器上显示相同的内容,包括iPhone。

更新:为了显示示例,如果您在iPhone上查看this,您会发现段落中的文字明显大于网站周围的其他文字。为什么这篇文章被挑出来了,有什么方法可以通过查看将要发生的代码来判断?

2 个答案:

答案 0 :(得分:13)

你有一种你很满意的技术,但有一个缺点:

  

这种策略在每一个方面都很有效   浏览器除了iPhone上的Safari,   这似乎总是放大一些   一些文字。是否有任何策略   防止这种情况发生?

     

...

     

通常我的解决方案是添加   -webkit-text-size-adjust:none;防止iPhone扩大   文字的大小,但我最近来了   横跨this article,描述   它不允许用户放大   在任何Safari浏览器上的文字 -   显然是个问题。我知道那里   是一个只有CSS的解决方案,但是   我找不到了。

http://html5boilerplate.com/mobile/

查看style.css
/* Prevent mobile zooming while remain desktop zooming.
   github.com/shichuan/mobile-html5-boilerplate/issues/closed#issue/14
 */
body {
    -webkit-text-size-adjust: 100%;
        -ms-text-size-adjust: none;
}

这听起来就像你正在追求的,特别是当你阅读the comment in the link时:

  

只是一个建议,似乎是一个   设置好主意   -webkit-text-size-adjust改为100%而不是none。将其设置为none   防止在桌面上缩放字体   WebKit浏览器,看起来像一个   可访问性问题。移动Safari的   默认值超过100%,即   为什么文字更大 - 所以如果你设置它   到100%而不是没有,字体保持不变   移动设备上的正确尺寸但可以   仍然可以在桌面上放大。

答案 1 :(得分:0)

根据我的经验,使用像素而非点数,Mac和PC以不同方式显示点,而像素或多或少相同(说实话,总是有差异,但有像素,它不太明显)。

此外,line-height,遗憾的是总是存在差异(甚至在Mac上的Safari和Firefox之间),但是你总是可以使用Internet Explorer的条件样式,如果需要,可以使用Firefox的JavaScript解决方案line-height

最后,某些字体可以以不同的方式显示跨浏览器,这是一个测试问题。