简单区分
px
一个盒子是100px * 100px px指的是逻辑像素,也叫css像素
在适配时,使用px作为单位并不合适。
px特点
- IE无法调整那些使用px作为单位的字体大小;
- 国外的大部分网站能够调整的原因在于其使用了em或rem作为字体单位;
- Firefox能够调整px和em,rem,但是有大部分的国产浏览器使用IE内核
em
指的是一个汉字的宽度,2em表示两个汉字的宽度
1em = 1个font-size的大小
如:font-size:20px; 1em = 20px 10em = 200px
em不足:它是相对于父元素的font-size来说的。
适配使用em也不合适,因为它一直是相对于父元素的font-size来说的
em是一个相对长度的单位,是相对于当前对象内文本的字体尺寸。如过我们未设置当前文本的字体尺寸,那么em就会相对于浏览器的默认字体尺寸
在浏览器中默认字体尺寸为16px,换句话说1em=16px,一般我们在写自适应布局时经常会用到em为单位。通过在CSS中的body选择器中设置font-size值来简化代码,使得页面中所有的em都相对于body值。
em 是相对长度单位。相对于当前对象内文本的字体尺寸。如当前对行内文本的字体尺寸未被人为设置,则相对于浏览器的默认字体尺寸。(引自CSS2.0手册)
任意浏览器的默认字体高都是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特点:
- em的值并不是固定的;
- em会继承父级元素的字体大小。
所以我们在写CSS的时候,需要注意两点:
body选择器中声明Font-size=62.5%;
将你的原来的px数值除以10,然后换上em作为单位;
重新计算那些被放大的字体的em数值。避免字体大小的重复声明。
也就是避免1.2 * 1.2= 1.44 的现象。比如:
你在 #content 中声明了字体大小为1.2em,那么在声明 p 标签的字体大小时就只能是1em,而不是1.2em, 因为此em非彼em,它因继承 #content 的字体高而变为了1em=12px。
rem
r表示root root是根的意思 指html标签
1rem ==> html标签中的font-size的大小
1em ==> 父标签中的font-size的大小
rem是CSS3中新增的一个相对单位,它与em的区别在于使用rem为元素设定字体大小时,仍然是相对大小,但相对的只是HTML根元素。它的使用非常简单,通过改变根元素的大小就可以改变它的值
rem特点
- rem 相对单位,相对于根元素
<html>
; - 相对大小和绝对大小的优点于一身;
- 修改根元素就成比例地调整所有字体大小;
- 避免字体大小逐层复合的连锁反应.
选择使用什么字体单位主要由你的项目来决定,如果你的用户群都使用最新版的浏览器,那推荐使用rem,如果要考虑兼容性,那就使用px,或者两者同时使用。
在这里为大家提供一个px,em,rem单位转换工具,地址:http://pxtoem.com/
---------------------------------------
适配
在大屏上显示大盒子,在小屏上显示小盒子。
什么是适配?
如果是大屏,盒子或字体大上设置的大一点
如果是小屏,盒子或字体大小设置的小一点
10个字,在不同的手机,都是撑满一行。
---------------------------------------
使用媒体查询,实现适配:
媒体查询 类似于 编程语言中的if else
参考:
---------------------------------------
适配:
在大屏上显示大盒子,在小屏上显示小盒子。
什么是适配?
如果是大屏,盒子或字体大上设置的大一点
如果是小屏,盒子或字体大小设置的小一点
10个字,在不同的手机,都是撑满一行。
---------------------------------------
使用媒体查询,实现适配:
媒体查询 类似于 编程语言中的if else