移动设备的最佳实践字体大小

Posted

技术标签:

【中文标题】移动设备的最佳实践字体大小【英文标题】:best practice font size for mobile 【发布时间】:2012-02-28 18:53:40 【问题描述】:

我在 SO 上看到过这个问题:

What are the most common font-sizes for H1-H6 tags 这是 H 标签的推荐字体大小:

h1  font-size: 2em; 
h2  font-size: 1.5em; 
h3  font-size: 1.17em; 
h5  font-size: .83em; 
h6  font-size: .75em; 

是否有针对手机的“最佳做法”? -说 iphone 屏幕尺寸?

【问题讨论】:

我能给出的唯一建议是,是的,ems 是要走的路,而不是另一个问题所暗示的像素。但这取决于。例如,如果 h1 中的文本很大(比如一个完整的句子),我觉得 2em 有点过于庞大,我会选择更小的尺寸。 嗯,你知道 em 是一个相对度量,对吧?所以没有基础的 1em 没有任何意义。 @FlorianRachor 不正确,抱歉。 【参考方案1】:

您问题中的字体大小是每个标题相互比较的比例示例,而不是它们本身的大小(以像素为单位)。

所以在回答您的问题“对于这些手机是否有'最佳实践'?-比如 iphone 屏幕尺寸?”,是的,可能有 - 但你可能会发现有人说什么是“最佳实践”不适用于您的布局。

但是,为了帮助您走上正轨,this article about building responsive layouts 提供了一个很好的示例,说明如何计算与设备屏幕尺寸相关的以像素为单位的基本 font-size

该文章建议的屏幕分辨率的建议字体大小如下:

@media (min-width: 858px) 
    html 
        font-size: 12px;
    

 
@media (min-width: 780px) 
    html 
        font-size: 11px;
    

 
@media (min-width: 702px) 
    html 
        font-size: 10px;
    

 
@media (min-width: 624px) 
    html 
        font-size: 9px;
    

 
@media (max-width: 623px) 
    html 
        font-size: 8px;
    

【讨论】:

它说使用rem 而不是emem 继承自父级,而 rem 直接来自 html.. 可以在我制作的小提琴中看到 jsfiddle.net/5qb4x 我宁愿说低于 12px 已经很糟糕了。好吧,即使是 8px 也是可读的,但它不像 12px 或类似的那样容易阅读。用户应该看到文字大小,这将使他有机会阅读文字,而无需缩放或将手机靠近眼睛。 内容是客户在我们网站上寻找的内容,而不是带有小写字母的白色背景;) 媒体查询不错,可以根据实际媒体宽度设置自己的规则 应该是 624 而不是 724 像素。【参考方案2】:

根据我对已接受答案的评论,通过声明小于12px 的字体大小可能会遇到很多潜在的陷阱。通过声明导致计算出的字体大小小于12px 的样式,如下所示:

html 
  font-size: 8px;

p 
  font-size: 1.4rem;

// Computed p size: 11px.

您会遇到浏览器问题,例如带有中文语言包的 Chrome,它会自动将在 12px 下计算的任何字体大小呈现为 12px。所以,以下是正确的:

h6 
    font-size: 12px;

p 
   font-size: 8px;

// Both render at 12px in Chrome with a Chinese language pack.   
// How unpleasant of a surprise.

我还认为,出于可访问性的原因,您通常不应使用小于 12 像素的尺寸。您可能可以为字幕等提供理由,但同样要准备好在某些浏览器设置下感到惊讶,并准备让您的祖母在尝试阅读您的内容时眯起眼睛。

我会选择这样的东西:

h1 
    font-size: 2.5rem;


h2 
    font-size: 2.25rem;


h3 
    font-size: 2rem;


h4 
    font-size: 1.75rem;


h5 
    font-size: 1.5rem;


h6 
    font-size: 1.25rem;


p 
    font-size: 1rem;


@media (max-width: 480px) 
    html 
        font-size: 12px;
    


@media (min-width: 480px) 
    html 
        font-size: 13px;
    


@media (min-width: 768px) 
    html 
        font-size: 14px;
    


@media (min-width: 992px) 
    html 
        font-size: 15px;
    


@media (min-width: 1200px) 
    html 
        font-size: 16px;
    

您会发现 tons of sites 必须关注可访问性使用相当大的字体大小,即使对于 p 元素也是如此。

附带说明,将margin-bottom 设置为等于font-size 通常也很有吸引力,即:

h1 
    font-size: 2.5rem;
    margin-bottom: 2.5rem;

祝你好运。

【讨论】:

我如何强制计算字体大小低于 12px 呢?如果我将它设置为 10 像素,我希望它是 10 像素而不是 12 像素。? 在某些浏览器中,您不能。我认为中文版 Chrome 这样做是因为中文文本 【参考方案3】:

对 em 来说,大小是相对于底数的。所以我想说你可以通过改变基础来保持字体大小。

示例:如果您的 base 为 16px,而 p 为 0.75em(即 12px),则您必须将 base 提高到大约 20px。在这种情况下,p 将等于大约 15px,这是我个人对手机的最低要求。

【讨论】:

但这与基本字体大小无关。如果是的话,我会说让它取决于屏幕宽度。你知道,使用@media 规则。这是关于标头与正常的比例,然后你不能比使用 em 做得更好。 抱歉,您不同意自己的观点。 “标头与正常比例” - 正常大小是多少?确切地说是基数,以 px 为单位,因为媒体由像素组成。如果你想使用em,你必须设置一个base(16px在大多数浏览器中是标准的)。 那你不明白这个问题。问题不在于最好的,比如说,体型是什么。这是关于标题的大小,相对于正常大小。并且 em 与您必须首先设置的某个未定义大小无关,它与父级(在本例中为主体)中的大小相关。如果您没有为正文设置大小,浏览器将使用其默认值。所以浏览器总是知道 em 有多大(以像素为单位),即使您不强制用户使用基本尺寸。 很抱歉,我一直觉得您不理解 em 的概念。你基本上写的和我一样,但一直告诉我我错了。如果您不设置大小,浏览器将使用 16px。如果 h1-h6 尺寸是屏幕上的最佳 p/h 比,那么它很可能是手机的最佳选择。您只需根据媒体调整底座。关于 em 的全部内容是相对于基数的大小。所以你改变的是基数而不是比率。 @FlorianRachor “如果您不设置大小,浏览器将使用 16 像素。”这不完全是事实。虽然许多浏览器的出厂默认值可能约为 16 像素,但用户可以将其更改为他们选择的大小。无论如何,我的回答是对你说的“没有基础的 1em 没有任何意义”,这没有意义。即使您没有在网页中指定任何内容,也始终存在“基本”大小,因此 em 在特定情况下始终是特定数量的像素。它与父级中的字体大小有关,而不是与必须显式设置才能具有值的某些“基本”大小有关。

以上是关于移动设备的最佳实践字体大小的主要内容,如果未能解决你的问题,请参考以下文章

移动设备的最佳实践身份验证

同时从移动设备和 Web 刷新 JWT 令牌的最佳实践

架构最佳实践:Rails 和移动/Web 应用程序

移动端布局最佳实践(viewport+rem)

设计 Angularjs Material 移动网站的最佳实践 - 视口问题

移动端列表查询最佳实践