关于px、rem、em、物理像素等
1. 物理像素
设备像素,每个设备物理像素出厂已经确定,固定不变
2. css像素px
(1)px在屏幕上确定好不会随网页大小改变而改变,相对于一台设备来说是固定的
(2)对各个屏幕显示器分辨率而言,px又是不同的,即相对的
3.rem
(1)相对于根元素来设定大小
(2)用法:根元素设置字体大小,其他元素以rem为单位,谷歌浏览器默认字体大小为16px,则1rem = 16px
(3)rem适配:让元素能在不同设备上与屏幕大小的比值相同
var width = document.documentElement.clientWidth //获取屏幕宽度 var htmlNode = document.querySelector('html') // 获取HTML根元素 htmlNode.style.fontSize = width + 'px'
4.em
(1)子元素的em相对的是父元素的字体大小(与rem的不同),如下:
i am son
.father{font-size: 20px}
.son{font-size: 2em;width:2em; height:2em; } /*font-size = 40px; width = 80px*/
.grandson{width:2em; height: 2em;} /*width = 80px*/
所以em会继承父元素font-size的大小,但会先查看自己元素上是否有font-size
总之em根据font-size大小决定,并向上邻近原则查询font-size,而rem只相对根元素font-size来决定
总结:(1)rem使用的好处:响应式改变单位值很方便,媒体查询只需改变根标签font-size即可
(2)对于只需要适配少部分手机设备,且分辨率对页面影响不大的,使用px即可 。
(3)对于需要适配各种移动设备,使用rem,例如只需要适配iPhone和iPad等分辨率差别比较挺大的设备