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: , , ,

Comments

看个电影就能解决CSS问题,佩服。

一般下载的比较不错的主题,都定义了62.5%

kDolphin是不是还记得Rin?那个模板的CSS从头到尾巴都没有定义px,全部都是em定义,而且不同位置同样em的字体大小也不一定,那么它是如何确定字符大小呢?

不是说em不可以用来确定字体大小,其实em还是比较推荐的,只是对于新手来说em比较复杂,主要是ie/ff/opera之间的区别,和继承父对象的问题比较麻烦。比如父对象设置1.2em,子也设置1.2em,这两个就不是一样大的。

>_<

我一般都用 px,表单域有时候需要拿到中文宽度时,用 em

thx a lot~~~

Post new comment

The content of this field is kept private and will not be shown publicly.
  • Web page addresses and e-mail addresses turn into links automatically.
  • Allowed HTML tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <blockquote>
  • Lines and paragraphs break automatically.

More information about formatting options

Syndicate content