我现在正在阅读将字体设置<body>
为62.5%的好习惯,以便稍后您可以使用像素单位的10分频转换.
但我想知道:为什么不设置<body>
为6.25%?假设默认浏览器字体大小为16像素,则可以使用与像素单位相同的em单位尺寸.
例如
body {
font-size: 6.25%; /* 1px */
}
p {
font-size: 12em; /* 12px */
}
Run Code Online (Sandbox Code Playgroud)
两个问题.
我似乎记得如果你使用像ems这样的相对单位设置你的初始字体大小很小,如果用户调整文本Internet Explorer的大小,字体大小将在设置之间发生很大的变化.
这是一个奇怪的现象,我不确定它是否仍然出现在IE中,也不是你担心IE中用户改变字体大小.
每次嵌套元素时,您都可能会谴责自己重新设置字体大小.
我写给另一个问题的答案尽力解释这一点,但简而言之,如果你在ems中做你的字体大小,你最好font-size
尽可能少地使用它,而不是让它变得如此简单font-size
当你这样做时使用.
例如:假设您希望<li>
网站上的所有内容都使用12像素的字体大小.
li {
font-size: 12em;/* 12px */
}
Run Code Online (Sandbox Code Playgroud)
如果您然后使用以下HTML:
<ul>
<li>
<ul>
<li>
...
Run Code Online (Sandbox Code Playgroud)
然后你需要这样做:
li li {
font-size: .083em;/* 12px */
}
Run Code Online (Sandbox Code Playgroud)
否则内部<li>
s将是12像素*12像素= 144像素!
Ems不是像素.Ems是指最近祖先的字体大小的百分比,而像素是指实际像素.在我看来,试图将ems变成像素比其他选择更令人困惑.您最好设置<body>
为网站上最常用的字体大小,只需在需要时更改,并在基于em的声明后将预期大小(以像素为单位)放在注释中.(那样,如果你出错了就更容易告诉以后.)
(当然,我们避免像素的唯一原因是因为当用户在浏览器中更改字体大小时,IE不会更改以像素为单位的文本大小.如果您不担心,那么只需使用像素.)