CSS:100%字体大小 – 100%是什么?
有很多关于百分比大小和其他大小的字体的文章和问题 。 但是,我无法找出百分比值的参考值是什么。 我知道这在所有浏览器中都是相同的大小。 我也读过这个例子:
百分比(%):百分比单位非常像“em”单位,除了一些基本的差异。 首先,当前字体大小等于100%(即12pt = 100%)。 在使用百分比单位的同时,您的文字仍可完全扩展至移动设备和辅助function。
资料来源: 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%; }
所以通过这样做, 什么是相对于字体大小? 我注意到我在屏幕上看到的尺寸对于每种字体都不相同。 例如,Arial看起来比Times New Roman更大。 另外,如果我只是这样做,身体大小= 100%,这是否意味着它将在所有的浏览器相同? 或者只有当我第一次定义绝对值?
更新,SAT 7月23日
我到了那里,但请忍受我。
所以,如果我理解正确,%值与默认的浏览器字体大小有关。 那么,这是很好,但再给我几个其他问题:
- 这个标准尺寸对于每个浏览器版本都是一样的,还是在不同版本之间有所不同?
- 一世 ! Google Chrome的设置(以前从未看过!),我看到标准的“serif”,“sans-serif”和“monospace”设置。 但是我怎么解释这个字体呢? 说我定义
font: 100% Georgia;
,浏览器需要多大的尺寸? 它会查找serif的标准大小,还是使用“Georgia”字体作为浏览器的标准大小 - 在几个网站上,我阅读
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
比如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
。 但是从我现在学习的内容来看,我相信你应该在可resize的文本(使用%或em,比如他们在这个报价中推荐的)或者在不同的浏览器中使用'精确,一致的字体大小(通过使用px或作为基地)。 它是否正确?
Google设置:
这就是我认为,如果不用绝对值来定义大小,事情可能会是这样。
浏览器的默认值是Firefox的16pt左右,你可以进入Firefox选项,点击内容标签,检查字体大小。 您也可以为其他浏览器做同样的事情。
我个人喜欢控制我的网站的默认字体大小,所以在每个页面包含的CSS文件中,我将设置BODY默认值,如下所示:
body { font-family: Helvetica, Arial, sans-serif; font-size: 14px }
现在,我所有的HTML标签的字体大小将inheritance14px的字体大小。
假设我想要一个所有div的字体大小比身体大10%,我只需要:
div { font-size: 110% }
现在任何查看我的页面的浏览器都会自动使所有的div比body的大10%,这应该是15.4px。
如果我想所有的div的字体大小要小10%,我可以这样做:
div { font-size: 90% }
这将使所有div的字体大小为12.6px。
你也应该知道,由于字体大小是inheritance,每个嵌套的div将减less10%的字体大小,所以:
<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
我的理解是,当字体设置如下
body { font-size: 100%; }
浏览器将根据该浏览器的用户设置呈现字体。
规范说,%呈现
相对于父元素的字体大小
http://www.w3.org/TR/CSS1/#font-size
在这种情况下,我认为是指浏览器设置为。
font-size
属性值的百分比是相对于父元素的字体大小 。 CSS 2.1说这个模糊和混淆(指“inheritance字体大小”),但CSS3文本说得很清楚。
body
元素的父元素是根元素,即html
元素。 除非在样式表中设置,否则根元素的字体大小取决于实现。 它通常取决于用户设置。
在许多情况下,设置font-size: 100%
是毫无意义的,因为如果没有样式表设置自己的字体大小,元素会inheritance父级的字体大小(导致相同的结果)。 但是,覆盖其他样式表(包括浏览器默认样式表)中的设置可能很有用。
例如, input
元素通常在浏览器样式表中有一个设置,使其缺省字体大小小于复制文本的字体大小。 如果你想使字体大小相同,你可以设置
input{font-size:100%}
对于body
元素,逻辑上的冗余设置font-size: 100%
被相当频繁地使用,因为它被认为有助于防止一些浏览器错误(在可能已经失去其重要性的浏览器中)。
这是相对于默认浏览器的字体大小,除非你用pt或px中的值覆盖它。
对不起,如果我迟到了派对,但是在编辑时你会对font: 100% Georgia
做一个评论font: 100% Georgia
,其他答案没有回应。
font: 100% Georgia
之间有一个区别font: 100% Georgia
和font-size:100%; font-family:'Georgia'
font-size:100%; font-family:'Georgia'
。 如果这是所有速记方法所做的,字体大小的部分就没有意义了。 但是它也将很多属性设置为它们的默认值:线条高度变为normal
(约1.2),对于样式(非斜体)和重量(非粗体)也是如此。
就这样。 其他的答案已经提到了其他的一切。
正如你令人信服地显示的那样, font-size: 100%;
不会在所有浏览器中呈现相同的内容。 但是,您将在CSS文件中设置您的字体,所以在所有浏览器中这将是相同的(或后退)。
我相信font-size: 100%;
将其与基于em
的devise相结合可能非常有用。 正如本文所示,这将创build一个非常灵活的网站。
什么时候这有用? 当您的网站需要适应访客的愿望。 以一个老人为例,他的默认字体大小为24像素。 或者是一个大屏幕分辨率的小屏幕,可以增加他的默认字体大小,因为他不得不斜视。 大多数网站会中断,但是基于em的网站能够应对这些情况。
相对于为该字体定义的默认大小。
如果有人在networking浏览器上打开您的页面,则会使用默认的字体和字体大小。
至于我的理解,它可以帮助您的内容适应不同的字体系列和字体大小的值,从而使您的内容具有可扩展性。 至于inheritance字体大小的问题,我们总是可以通过为元素提供特定的字体大小来覆盖。
根据1996年的所有规格date, font-size
百分比值是指父元素的(计算)字体大小。
<style> div { font-size: 16px; } span { font-size: 75%; } </style> <div><span>this font size is 12px!</span></div>
这很容易。
如果div
声明一个相对的字体大小,比如em
,或者甚至更糟,另外一个百分比呢? 请参阅上面的“计算” 。 无论相对单位转换为什么绝对单位。
剩下的唯一问题是在根元素(没有父元素)上使用百分比值时会发生什么情况:
html { font-size: 62.5%; /* 62.5% of what? */ }
在这种情况下,请看这个问题的“重复” 。 TLDR:根元素的百分比是指浏览器的默认字体大小,每个用户可能会有所不同。
参考文献:
- CSS 1规范(1996)
- CSS 2.1规范(2011)
- CSS字体级别3规范(2013)
- CSS字体Level 3编辑草案(2017)