这里扯一下实际像素问题,一般来说,px就是对应设备的物理像素,然而如果输出设备的解析度与电脑显示器大不相同,输出效果就会有问题。例如打印机输出到纸张上,其解析度比电脑屏幕要高许多,如果不缩放,直接使用设备的物理像素,那电脑上的照片由600DPI的打印机打出来就比用显示器看小了约6倍。所以很多时候在实际工作中,应该多考虑一点。
em是相对长度单位,相对于当前文本的字体尺寸。在CSS中,“em”实际上是一个垂直测量。一个em等于任何字体中的字母所需要的垂直空间,而和它所占据的水平空间没有任何的关系。
因此: 如果字体大小是16px,那么1em=16px。如果规定body字体为1em=16px;那么body {font-size:1em;}就是默认的16px;
在ie下,应该使用html{font-size:100%;};重要的事情说八遍。。。
附上一张表;16px=1em;所以应用的时候你会写很多小数点。。。
当然,目前已经有自动转行的插件了。
如果宽960px就是60em;
html {
font-size: 100%;
}
body {
font-size: 1em;
}
#container {
width: 60em;
}but,但是,在实际应用中,css会继承父级的css特性,这点好也不好,如果父级设置了一些字体大小,那么接下来的子元素在运用时就会遇到,1em等于几的问题,默认16,此时呢?
如果p标签内设置了一个字体大小12px,然后有个图片宽度36px,此时1em=12px; 图片宽度3em;如果多次遇见这样的问题,是不是很蛋疼,每次都要再算一次,好吧! 不想写了。
css3来了,然后有了rem这种好东西。rem相对于html根元素,rem为元素设定字体大小时,仍然是相对大小,但相对的只是HTML根元素。这个单位可谓集相对大小和绝对大小的优点于一身,通过它既可以做到只修改根元素就成比例地调整所有字体大小,又可以避免字体大小逐层复合的连锁反应。
css这种逆人类的思维模式,我觉得很可怕,不知道当年的css委员会都是些什么大神。可能当年只要显示就有人看,如今千万网站无人问。
就写到这吧! 本来也不是什么高深的技术。啰嗦的很够了。