《CSS文字大小单位说明》由会员分享,可在线阅读,更多相关《CSS文字大小单位说明(3页珍藏版)》请在金锄头文库上搜索。
1、CSS文字大小单位 px、pt、em老是被人问到 px、pt 和 em 的区别,自己有时候也会纠结到底该用什么单位,今天特意查了一些文章,下面这篇虽然很久远了,但解释的比较全面,转载收藏之。点击查看原文这里引用的是 Jorux 的“95%的中国网站需要重写 CSS”的文章,题目有点吓人,但是确实是现在国内网页制作方面的一些缺陷。我一直也搞不清楚 px 与 em 之间的关系和特点,看过以后确实收获很大。平时都是用 px 来定义字体,所以无法用浏览器字体放大的功能,而国外大多数网站都可以在 IE 下使用。 因为:1. IE 无法调整那些使用 px 作为单位的字体大小;2. 国外的大部分网站能够调整
2、的原因在于其使用了 em 作为字体单位;3. Firefox 能够调整 px 和 em,但是 96%以上的中国网民使用 IE 浏览器(或内核) 。px 像素(Pixel)是相对长度单位,像素 px 是相对于显示器屏幕分辨率而言的。 (引自 CSS2.0 手册)em 是相对长度单位,相对于当前对象内文本的字体尺寸。如当前对行内文本的字体尺寸未被人为设置,则相对于浏览器的默认字体尺寸。(引自 CSS2.0 手册)字体单位使用 em 能支持 IE6 下的字体缩放,在页面中按 ctrl+滚轮,字体以 px 为单位的网站没有反应。px 是绝对单位,不支持 IE 的缩放。em 是相对单位,网页中的文字能放
3、大和缩小。将行距(line-height),和纵向高度的单位都用 em。保证缩放时候的整体性。任意浏览器的默认字体高都是 16px。所有未经调整的浏览器都符合: 1em=16px。那么12px=0.75em,10px=0.625em。为了简化 font-size 的换算,需要在 css 中的 body 选择器中声明 Font-size=62.5%,这就使 em 值变为 16px*62.5%=10px, 这样 12px=1.2em, 10px=1em, 也就是说只需要将你的原来的 px 数值除以 10,然后换上 em 作为单位就行了。em 有如下特点:1. em 的值并不是固定的;2. em 会
4、继续父级元素的字体大小。所以我们在写 CSS 的时候,需要注意:1. body 选择器中声明 Font-size=62.5%;(Font-size=63%;用于 ie6 兼容)2. 将你的原来的 px 数值除以 10,然后换上 em 作为单位;3. 重新计算那些被放大的字体的 em 数值。避免字体大小的重复声明。也就是避免 1.2 * 1.2= 1.44 的现象。比如说你在 #content 中声明了字体大小为 1.2em,那么在声明 p的字体大小时就只能是 1em,而不是 1.2em, 因为此 em 非彼 em,它因继续#content 的字体高而变为了 1em=12px。但是 12px 汉
5、字例外,就是由以上方法得到的 12px(1.2em)大小的汉字在 IE 中并不等于直接用 12px 定义的字体大小,而是稍大一点。这个问题 Jorux 已经解决,只需在 body 选择器中把 62.5%换成 63%就能正常显示了。原因可能是 IE 处理汉字时,对于浮点的取值精确度有限。不知道有没有 其他的解释。单位 pt的说明在印刷排版中,point 是一个绝对值,它等于 1/72 英寸, 可以用尺子丈量的,物理的英寸。但是在 css 中 pt 含义却并非如此。因为我们的显示器 被分割为了一个个的像素,单个像素只能有一种颜色 (为了简化,这里暂不讨论次像素反锯齿技术),要在屏幕上显示,必须先把
6、以 pt 为单位的长度转换为以像素为单位的长度,这个转换的媒介,就是 DPI (事实上,这里的所谓的 DPI,是操作系统和浏览器中使用的术语,即为 PPI, pixels per inch,和扫描仪、打印机、数码相机中的 DPI 是不同的概念) 。例如,无论在哪个操作系统中,Firefox 浏览器默认的 DPI 都是 96,那么实际上 9pt = 9 * 1/72 * 96 = 12px。所以,虽然“DPI”中的“I”和“1pt 等于 1/72 inch”中的“inch”,都不代表物理上的英寸,但这两个单位互相之间是相等的,也就在相乘中约掉了。那么,真实的物理长度怎么计算呢?请拿出一把尺子,丈
7、量你的显示器的可见宽度 (我这里是 11.2992 英寸) ,除以横向分辨率 (我这里是 1024 像素),得到的就是每个像素的物理长度。现在我们可以回答这样一个问题,网页上 9pt 的字体究竟占用了多宽的空间?答案是:9 * 1/72 * 96 * 11.2992 / 1024 = 0.1324 英寸 = 0.3363 厘米。虽然 pt 是绝对单位,但是那只是针对输出设备而言的,在文字排版工具(word,abobe )中是非常有用的字体单位。不管显示器的分辨率是多少,打印在纸面上的结果是一样的。但是网页主要为了屏幕显示,而不是为了打印等其他需要的。而 px 能够精确地表示元素在屏幕中的位置和大小。当然。在 dpi 是 96 的情况下,9pt=12px。附 px、 em、 %和 pt 换算表px、 em、%和 pt 换算