css units
p { font-size: small; }
默认keyword:
xx-small
x-small
small
medium
large
x-large
xx-large
smaller (相对值,relative to parent)
larger (相对值,relative to parent)
不能精细(fine-grained)控制字体
px
在电脑屏幕上,没有什么能比一个像素更精确了。设置像素是设置文字的height.
但是在IE 6一下浏览器里,font-sizes set in pixels cannot be resized by the user.
em
em 恐怕是最难以理解的值了,大概因为它表示的内容很抽象和武断。
1em 等于当前元素的font-size,如果在页面的任何地方都没有设置font size,它就是浏览器默认的font-size,大概是16px。所以默认 1em = 16px
。如果对body设置font-size为20px,那么 1em = 20px.
使用em的通常方法是设置body font-size 为62.5%,因为浏览器默认font-size为16px,62.5%的大小就是10px。使用10可比使用16容易多了。比如你想要设置font size为18px,就设置font-size: 1.8em。
另外一点就是em是相对值,总是相对parent元素的font-size。(em values compound)
em不仅仅用于fonts,它也是一个用于其他长度的单位(height,width,等等)。
test:
默认情况下原因是我使用的{ body: 62.5%; }
后 firefox font-size: 5.86667px; chrome font-size: 6.25px;html, body { font-size: 62.5%; }
导致结果成了 ` font-zie = 62.5%*62.5%`。 chrome 可能受用户设置影响chrome://settings/fonts,最小font-size 12px,你可以手动修改它。
rem
rem的出现就是为了避免compounding问题。rem relative to the root html element, not the parent element.
%
如果parent font-size 20px, child font-size 50%, 那么child就是10px。 其中一个使用percentage的场景就是设置一个基础的font-size,然后child都使用percentage,然后通过改变一个地方从而将整个child都改变,例如常用的改变文章文字大小。
pt
pt(point values), Point values are only for print CSS! 72pts = one inch.