HTML的dpr

HTML的dpr只是为了自己以后查找方便 看不懂勿怪 DPI PPI 屏幕像素密度或屏幕每英寸的像素数量 dips 手机尺寸或独立像素物理像素 手机分辨率 dpr nbsp window devicePixelR js 可以拿到 css 定义 psd 转换 rem 单位 rem px 基准值基准值 手机宽高 dpr 10 乘以 dpr 是因为页面有可能缩放除以 10 是为了取整

只是为了自己以后查找方便,看不懂勿怪

DPI、PPI:屏幕像素密度或屏幕每英寸的像素数量

dips:手机尺寸或独立像素

物理像素 = 手机分辨率

dpr = window.devicePixelRatio(js可以拿到)

css定义

psd转换rem单位

rem = px / 基准值

基准值 = 手机宽高 * dpr / 10

乘以dpr是因为页面有可能缩放

除以10是为了取整,方便计算(可以是任何值)

以下是js设置meta的缩放和font-size

var dpr, rem, scale; 
var docEl  = document.documentElement; 
var fontEl = document.createElement('style'); 
var metaEl = document.querySelector('meta[name="viewport"]'); 
dpr = window.devicePixelRatio || 1;
scale = 1 / dpr; 
rem = docEl.clientWidth * dpr / 10; 
// 设置viewport,进行缩放,达到高清效果 
metaEl.setAttribute('content', 'width=' + dpr * docEl.clientWidth + ', initial-scale=' + scale + ',maximum-scale=' + scale + ', minimum-scale=' + scale + ',user-scalable=no'); 
// 设置data-dpr属性,留作的css hack之用 
docEl.setAttribute('data-dpr', dpr); 
// 动态写入样式 
docEl.firstElementChild.appendChild(fontEl); 
fontEl.innerHTML = 'html{font-size:' + rem + 'px!important;}'; 
// 给js调用的,某一dpr下rem和px之间的转换函数 
window.rem2px = function(v) { 
 v = parseFloat(v);   return v * rem;  };  window.px2rem = function(v) {   v = parseFloat(v);   return v / rem;  }; window.dpr = dpr;  window.rem = rem;



版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/232677.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • springboot的启动_springboot启动加载

    springboot的启动_springboot启动加载总括:@SpringBootApplication包含@Configuration所以启动类是一个xml注解除了有标志作用,还需有复杂类的切面作用可以用@import@Import(EnableAutoConfigurationImportSelector.class)将配置中的类ioc实例化到容器,然后创建上下文,将实例化的bean放入上下文正文说springboot的启动流程当然少不了springboot启动入口类@SpringBootApplicationpub..

    2022年8月20日
    7
  • vue项目刷新当前页面的方法

    vue项目刷新当前页面的方法尝试了几种刷新页面的方法,比如1、浏览器直接刷新(会出现短暂的白页面现象)2、设置一个空白页面,需要刷新的时候跳转到空页面再从空页面跳回来(些许麻烦)3、使用provide/inject(目前觉得最实用,主讲此方法)…

    2022年8月31日
    4
  • redissonredlock_redisson lock

    redissonredlock_redisson lock1.现在错误的用法:RLocklock=redisson.getLock(String.format(LOCK_KEY,2));try{if(lock.tryLock()){//处理logger.info(“aaaaaaaaaaaaaaaaaa”);}catch(Exceptione){//处理异常}finally{…

    2022年10月15日
    4
  • audio标签的使用方式

    audio标签的使用方式audio 标签的所有常见属性 audio 可以在标签内部添加文字从而达到当一些浏览器不支持时 直接展示文字 常用的标签属性 autoplay 自动播放 Controls 这个属性展示播放条 loop 标签会自动循环播放 Preload 音屏在加载时 就进行加载准备开始自动播放了 audio

    2025年9月23日
    4
  • SPSS-聚类分析[通俗易懂]

    SPSS-聚类分析[通俗易懂]聚类分析(层次聚类分析(Q型聚类和R型聚类)、快速聚类分析)聚类分析的实质:是建立一种分类方法,它能够将一批样本数据按照他们在性质上的亲密程度在没有先验知识的情况下自动进行分类。这里所说的类就是一个具有相似性的个体的集合,不同类之间具有明显的区别。聚类分析的特点:聚类分析是一种探索性的分析,在分类的过程中,人们不必事先给出一个分类的标准,聚类分析能够从样本数据出发,自动进行分类。1.层次…

    2022年10月18日
    2
  • 用Python的turtle库画太极图

    用Python的turtle库画太极图作为一名中医药大学的学生,对太极图那是情有独钟,这不,我刚开始学Python不久,便想着用turtle库画一个太极图,对turtle库的使用还不熟练,代码量可能有点多……代码:importturtler=200#太极半径turtle.pensize(2)#画笔尺寸#将太极的圆心调整至坐标原点turtle.right(90)turtle.penup()#拿起画笔turtle.fd(r)turtle.pendown()#落下画笔turtle.right(90)#调整海

    2022年5月18日
    43

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号