CSS:100%字体大小 - 100%的什么?

时间:2011-07-23 20:12:17

标签: css font-size

many articlesquestionspercentage-sized vs other-sized字体。但是,我无法找出百分比值的引用应该是什么。我知道这在所有浏览器中都是“相同的尺寸”。我也读过这个,例如:

  

百分比(%):百分比单位与“em”单位非常相似,除了一些基本差异。首先,当前的字体大小等于100%(即12pt = 100%)。使用百分比单位时,您的文本仍然可以完全扩展到移动设备和可访问性。

来源:http://kyleschaeffer.com/best-practices/css-font-size-em-vs-px-vs-pt-vs/

但如果你说“ie 12 pt = 100%”,那么这意味着你首先必须定义font-size: 12pt。它是如何工作的?您首先在绝对度量中定义大小,然后将其称为“100%”?没有多大意义,因为许多样本说它很有用:

body {
  font-size: 100%;
}

通过这样做, WHAT 是相对于的字体大小?我注意到我在屏幕上看到的尺寸因每种字体而异。例如,Arial看起来比Times New Roman更大。另外,如果我这样做,体型= 100%,那么 意味着它在所有浏览器上都是一样的吗?或者只有我首先定义一个绝对值?

更新,SAT JUL 23

我到了那里,但请耐心等待。

因此,如果我理解正确,%值与默认浏览器字体大小相关。嗯,这很好,但又给了我几个问题:

  1. 对于每个浏览器版本,此标准大小是否始终相同,或者它们是否因版本而异?
  2. 我!发现(见下图)Google Chrome的设置(以前从未看过这个!),我看到标准的“serif”,“sans-serif”和“monospace”设置。但是我如何解释其他字体呢?假设我定义font: 100% Georgia;,浏览器的大小是多少?它会查找serif的标准大小,还是“Georgia”字体是浏览器的标准大小
  3. 在多个网站上read Sizing text and line-height in ems, with a percentage specified on the body [..], was shown to provide **accurate, resizable text across all browsers** in common use today之类的内容。但是从我现在正在学习的内容来看,我认为你应该在可调整大小的文本(使用%或em,就像他们在这个引用中推荐的那样)或者在浏览器中具有“准确,一致的字体大小”(通过使用px或以此为基础)。它是否正确?
  4. Google设置:

    Google Chrome Settinsg

    如果你没有用绝对值定义大小,这就是认为 的内容。

    enter image description here

9 个答案:

答案 0 :(得分:83)

Firefox的浏览器默认值类似于16pt,您可以通过进入Firefox选项,单击“内容”选项卡并检查字体大小来查看。您也可以为其他浏览器执行相同的操作。

我个人喜欢控制我网站的默认字体大小,因此在每个页面中都包含的CSS文件中,我会设置BODY默认值,如下所示:

body {
    font-family: Helvetica, Arial, sans-serif;
    font-size: 14px
}

现在我所有HTML标签的字体大小都将继承14px的字体大小。

假设我希望所有div的字体大小比正文大10%,我只是这样做:

div {
    font-size: 110%
}

现在任何浏览我的网页的浏览器都会自动使所有div比身体大10%,这应该是15.4px。

如果我希望所有div的字体大小减小10%,我会这样做:

div {
    font-size: 90%
}

这将使所有div的字体大小为12.6px。

另外你应该知道,由于继承了font-size,每个嵌套div的字体大小会减少10%,所以:

<div>Outer DIV.
    <div>Inner DIV</div>
</div>

内部div的字体大小为11.34px(12.6px的90%),这可能并非预期。

这有助于解释: http://www.w3.org/TR/2011/REC-CSS2-20110607/syndata.html#value-def-percentage

答案 1 :(得分:15)

我的理解是,当字体设置如下时

body {
  font-size: 100%;
}

浏览器将根据该浏览器的用户设置呈现字体。

规范说%渲染

  

相对于父元素的字体大小

http://www.w3.org/TR/CSS1/#font-size

在这种情况下,我认为这意味着浏览器的设置。

答案 2 :(得分:9)

font-size属性值的百分比是相对于父元素的字体大小。 CSS 2.1说得太模糊不清(指“继承的字体大小”),但CSS3文本says非常清楚。

body元素的父元素是根元素,即html元素。除非在样式表中设置,否则根元素的字体大小取决于实现。它通常取决于用户设置。

在许多情况下设置font-size: 100%是没有意义的,因为如果没有样式表设置自己的字体大小,则元素会继承其父级的字体大小(导致相同的结果)。但是,覆盖其他样式表(包括浏览器默认样式表)中的设置可能很有用。

例如,input元素通常在浏览器样式表中有一个设置,使其默认字体大小小于复制文本的字体大小。如果您希望字体大小相同,可以设置

输入{font-size:100%}

对于body元素,逻辑冗余设置font-size: 100%经常被使用,因为它被认为有助于防止某些浏览器错误(在浏览器中可能已经失去了它们的意义)。

答案 3 :(得分:4)

它与默认浏览器字体大小相关,除非您使用pt或px中的值覆盖它。

答案 4 :(得分:4)

很抱歉,如果我迟到了,但在你的编辑中你会对font: 100% Georgia发表评论,其他答案没有回复。

font: 100% Georgiafont-size:100%; font-family:'Georgia'之间存在差异。如果这是所有简写方法,那么font-size部分将毫无意义。但它也会将很多属性设置为默认值:行高变为normal(或大约为1.2),同样为样式(非斜体)和权重(非粗体)。

这就是全部。其他答案已经提到了其他一切。

答案 5 :(得分:3)

正如您令人信服地表明的那样,font-size: 100%;在所有浏览器中都不会呈现相同的内容。但是,您将在CSS文件中设置字体,因此在所有浏览器中都是相同的(或后备)。

我认为font-size: 100%;与基于em的设计相结合时非常有用。正如this article所示,这将创建一个非常灵活的网站。

什么时候有用?当您的网站需要适应访问者时#39;祝愿。例如,一位老人将其默认字体大小设置为24像素。或者是具有较大分辨率的小屏幕的人增加了他的默认字体大小,因为他不得不眯眼。大多数网站都会破坏,但基于em的网站能够应对这些情况。

答案 6 :(得分:1)

相对于为该字体定义的默认大小。

如果有人在网络浏览器上打开您的网页,则会使用默认字体和字体大小。

答案 7 :(得分:1)

根据所有约会的回溯到1996年font-size上的百分比值是指父元素的(计算)字体大小。

<style>
div {
  font-size: 16px;
}
span {
  font-size: 75%;
}
</style>
<div><span>this font size is 12px!</span></div>

就这么简单。

如果div声明相对字体大小,如em s,或者更糟糕的是,另一个百分比?请参阅上面的“computed”。无论相对单位转换为什么绝对单位。

剩下的唯一问题是当你在没有父元素的根元素上使用百分比值时会发生什么:

html {
  font-size: 62.5%; /* 62.5% of what? */
}

在这种情况下,请参阅此问题的the “duplicate”。 TLDR:根元素上的百分比是指浏览器默认字体大小,每个用户可能有所不同。

参考文献:

答案 8 :(得分:0)

据我所知,它可以帮助您的内容根据字体系列和字体大小的不同值进行调整。从而使您的内容可以扩展。至于继承字体大小的问题,我们总是可以通过为元素提供特定的字体大小来覆盖。