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差不多了。

Technorati Tags: , , ,

6 Responses to “62.5%, 1em = 10px”

Leave a Reply to guoshuang

Note: Commenter is allowed to use '@User+blank' to automatically notify your reply to other commenter. e.g, if ABC is one of commenter of this post, then write '@ABC '(exclude ') will automatically send your comment to ABC. Using '@all ' to notify all previous commenters. Be sure that the value of User should exactly match with commenter's name (case sensitive).