62.5%, 1em = 10px
今天一天都在捣鼓KD03模版,现在大约完成了30%。其中花了很多时间去调整搜索框的大小位置,具体情况是这样的:搜索框和搜索按钮在Firefox和Opera下用css定义基本上是相同的,但是在IE下却总是大那么一点点。margin, padding, font什么的调了半天还是不对头,因为不清楚具体原因连放狗找哪方面内容也不清楚。幸好在看了半部影音不同步的银河系漫游指南后忽然就顿悟了orz。
情况是这样的,css里常用的两种定义字体大小的单位:em, px。
- em是一个相对数,比如1.1em就表示1.1个字符宽度,而这个字符宽度是根据font-size来初始化大小的。同时em还有继承父对象的特性,所以在不同位置的1.2em并不一定相等,不过这篇文章和这个没关系就不细说了。
- px是对于当前显示设备的解析度而言,虽然对于不同设备仍然会有大小差别,但是相对来说更加适合用在定义字体上。
而这个模版我没有特别定义搜索部分的字体大小,于是它就使用了父对象的font-size参数12px。而万恶的IE对字体的大小定义竟然和FF/Opera是不同的,默认情况下1em在IE下看起来要比其他浏览器大,所以需要在body部分加入以下定义:
[css]font-size:62.5%;
font-family:’Lucida Grande’, Verdana, Arial, Sans-Serif;[/css]
关键是第一句,它使得IE下的字体大小看起来是:1em=10px,这样就和FF/Opera差不多了。
6 Responses to “62.5%, 1em = 10px”
-
kDolphin是不是还记得Rin?那个模板的CSS从头到尾巴都没有定义px,全部都是em定义,而且不同位置同样em的字体大小也不一定,那么它是如何确定字符大小呢?
-
不是说em不可以用来确定字体大小,其实em还是比较推荐的,只是对于新手来说em比较复杂,主要是ie/ff/opera之间的区别,和继承父对象的问题比较麻烦。比如父对象设置1.2em,子也设置1.2em,这两个就不是一样大的。
-
>_<
-
我一般都用 px,表单域有时候需要拿到中文宽度时,用 em
-
thx a lot~~~
看个电影就能解决CSS问题,佩服。
一般下载的比较不错的主题,都定义了62.5%