前端开发

 首页 > 前端开发 > css教程 > rem布局获得分辨率方法

rem布局获得分辨率方法

分享到:
【字体:
导读:
         [导读] 不是所有元素都需要缩放的。 最容易举例的就是1px的border,无论什么屏,无论像素密度多少,都要准确的显示1物理像素 淘宝目前的做法即是,通过脚本检测设备的像素密度,再设置文...

不是所有元素都需要缩放的。

最容易举例的就是1px的border,无论什么屏,无论像素密度多少,都要准确的显示1物理像素

淘宝目前的做法即是,通过脚本检测设备的像素密度,再设置文档的根font-size与viewport的缩放值,从而让px能够准确的显示为物理像素。

我们的做法是:获取设备像素密度后,设置根节点的fontSize,然后文档中全部使用rem+px结合。

window.onload = function () {
    var nameAttr = document.createAttribute('name');
    nameAttr.value = 'viewport';
    var contentAttr = document.createAttribute('content');
    var dpr = window.devicePixelRatio || 1;
    contentAttr.value = 'width=device-width,initial-scale=' + (1 / dpr) + ',target-densitydpi=device-dpi,user-scalable=no';
    var element = document.createElement('meta');
    element.attributes.setNamedItem(nameAttr);
    element.attributes.setNamedItem(contentAttr);
    document.head.appendChild(element);
    document.getElementsByTagName('html')[0].style.fontSize = (16 * dpr) + 'px';
};

目前兼容良好。

分享到:
CSS3中REM使用详解
在页面中设置字体,我们知道有常见的两种,px 和 em. px 在Web页面制作中,我们一般使用“px”来设置我们的文本,因为他比较稳定和精确。但是这种方法存在一个问题,当用户在浏览器中浏览我们制作的Web页面时,他改变了浏览器的字体大小(虽然一般人不会去改变浏览器字体大小),这时会使用我们的Web页面布局被打破,这时...
CSS中link和@import的区别说明
我们都知道link与@import都可以引入css样式表,那么这两种的区别是什么呢?先说说它们各自的链接方式,然后说说它们的区别~~~   link链入的方式:    @import导入的方式:      @import url('index.css');      优先级:嵌入样式 > 内部样式表 > 导入样式表(链入样式表) 导入的方式与链入...
  •         php迷,一个php技术的分享社区,专属您自己的技术摘抄本、收藏夹。
  • 在这里……