我应该设置正文或HTML元素的默认字体大小?

我喜欢在创build网站的时候工作。 所以我在body元素上设置了100.01%的默认font-size

我的问题是我应该设置bodyhtml元素的默认font-size ? 两者的优点和缺点(如果有的话)有什么区别?

现在rem单元已经开始stream行起来,build议在根元素(html标签)上设置基本字体大小(rem代表root em)。

我不相信在htmlbody上设置基本font-size是有利的或者不利的,以允许用ems来resize; 他们都会有同样的效果。

与这个问题无关:

我会build议使用不同的默认font-size 。 我将它设置为:

 body { font-size: 62.5%; } 

这样做可以将默认的font-size16px降低到10px 。 这使得selectfont-size变得容易得多,因为不需要进行困难的计算。 这意味着1em等于10px ,所以计算px大小是乘以10的问题:

  • 1.0em = 10px
  • 1.4em = 14px
  • 1.8em = 18px
  • 2.2em = 22px

如果你真的想遵守规则,并保持灵活性,你应该考虑这一点:

  • html的字体大小是字体大小,这意味着它将被用作rem计算的基础,但就是这样,没有别的。 它不应该用于实际的文本大小计算:这只是一些浏览器的一种技巧。
  • body的字体大小是文本的默认字体大小:所有的文本应该有这个大小,除非重载的定义
  • 对象中的特殊元素应该具有大小,以像素为单位

所以这就是它在CSS中的样子:

 html { font-size: 100% /* or 62.5% or whatever you like, it doesn't matter, it's just a browser fix, however "rem" units will be based on that value, so make it confortable for calculations */ } body { font-size: 0.75em; /* That is your text's default font size. Here i chose 12px */ } h1 { /* or whatever element you want to change the font size of */ font-size: 20px; /* for browsers that don't understand the "rem" unit */ font-size: 1.25rem; /* which equals to 20px if html's font-size was set to 100% */ } 

请注意,尽pipe所有页面的元素都应该从body定义inheritance,但也可以使用全包含的定义,就像在HTML重置中常见的那样:

 a, html, body, div, span, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, abbr, address, cite, code, del, dfn, em, img, ins, kbd, q, samp, small, strong, sub, sup, var, b, i, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, figcaption, figure, footer, header, hgroup, menu, nav, section, summary, time, mark, audio, video { font-size: 0.75rem; } 

不过我不build议这个重置。 标准是为了帮助你避免这种伎俩。