59309">
不同分辨率下需要的字号
可以看出笔记本和台式机的尺寸相差很大,为方便使用,使用各分辨率的主流尺寸或平均尺寸计算出指定字号在每个分辨率下所需的字号。(下图去掉了基本只用在笔记本上的那些分辨率),以4.32mm、3.77mm、3.25mm为例(17寸1280*1024分辨率下的16、14和12号字):
为保持固定物理尺寸,各主流显示器下所需字号与分辨率的关系
由于在未开启cleartype的情况下,一些中文字体在非偶数字号下的显示效果欠佳,所以一般建议使用12、14、16、18、22px等偶数字号。也就是对某个分辨率选择离它最近的偶数字号。例如:屏幕横向分辨率在1100以下的采用14px,1100到1500采用16px,1500以上采用18px,依此类推。
到人眼的距离
虽然笔记本的字号远小于台式机,可是实际并没有给我们带来那么大的不便,这是因为:一般使用笔记本时人眼到屏幕的距离比使用台式机时要近一些。当上网本越来越小时(极端的例子就是手机),人们使用的时候可能会拿的更近,这样视角更大。反之,当显示器越来越大时(24寸甚至更大),出于整体视角等方面考虑,人们也可能离屏幕远些,从而减小了视角。
定量来说:由于文字大小h(4~5mm)相对人眼到文字的距离d(30~60cm)非常小,可近似认为视角θ正比于h,并与d成反比(θ≈tgθ=h/d)。也就是说,同样大小的文字,距离二尺时看到的只有距离一尺时的一半大小。
也就是说,显示器只能传达一个大概的尺寸,每个用户在具体操作时仍会通过不自觉地调节到屏幕的距离来调整所看到的实际效果。面对越来越多的笔记本用户(请参照上一篇:笔记本电脑的市场份额),前端设计师们只能给出一个针对笔记本和台式机平均尺寸的页面效果,具体就靠用户去自我调整了。
用JS实现不同分辨率下自动调整字号
例如网页正文所在div的id为content——
<script>
window.onload=function(){
var sw=window.screen.width;
if(sw<1100) {document.getElementById("content").style.fontSize = "0.875em"}
else if (sw<1500) {document.getElementById("content").style.fontSize = "1em"}
else {document.getElementById("content").style.fontSize = "1.125em"};
}
注:为保证各浏览器下文字均可缩放,字号单位使用em而不是px,一般来说,浏览器默认1em=16px,0.875em\1em\1.125em即为14\16\18px。
使用字号缩放时请注意:对该div内的标题等字号单位最好使用百分比,而不是固定字号,以便随正文同步缩放。
附:本文图表所引用的主要数据
data source