1物理像素

螺旋上升者
• 阅读 1312

第一种思路

用js算出来当前手机端的dpr值,如果是2,则缩放为0.5,如果是3,则缩放为0.333,这样你写的px是1px,这个1px是相对单位,在dpr为2的时候相当于2个物理像素,在dpr为3的时候相当于3物理像素,但是由于缩放了视口,所以又变回了1物理像素
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <!-- 这一行不写,由js动态生成 -->
    <!-- <meta name="viewport" content="width=device-width, initial-scale=1.0"> -->
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <script>
        function setViewport() {
            var dpr = window.devicePixelRatio
            var scale = (1 / dpr).toFixed(5)
            var metaNode = document.createElement('meta')
            metaNode.setAttribute('name', 'viewport')
            metaNode.setAttribute('content', `width=device-width, initial-scale=${scale},user-scalable=no,maximum-scale=${scale},minimum-scale=${scale}`)
            document.head.appendChild(metaNode)
        }
        window.onresize = setViewport
        setViewport()
    </script>
    <style>
        .demo{
            margin-top: 100px;
            width:400px;
            height:1px;
            background:black;
        }
    </style>
</head>

<body>
    <div class="demo"></div>
</body>

</html>

第二种思路

使用媒体查询+-webkit-min-device-pixel-ratio属性
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0,user-scalable=no,maximum-scale=1.0,minimum-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <style>
        .demo{
            margin-top: 100px;
            width:400px;
            height:1px;
            background:black;
        }
        @media screen and (-webkit-min-device-pixel-ratio:2){
            .demo{
                transform:scaleY(0.5)
            }
        }
        @media screen and (-webkit-min-device-pixel-ratio:3){
            .demo{
                transform:scaleY(0.3333333)
            }
        }
    </style>
</head>

<body>
    <div class="demo"></div>
</body>

</html>
点赞
收藏
评论区
推荐文章
blmius blmius
4年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
美凌格栋栋酱 美凌格栋栋酱
7个月前
Oracle 分组与拼接字符串同时使用
SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(
Karen110 Karen110
4年前
一篇文章带你了解JavaScript日期
日期对象允许您使用日期(年、月、日、小时、分钟、秒和毫秒)。一、JavaScript的日期格式一个JavaScript日期可以写为一个字符串:ThuFeb02201909:59:51GMT0800(中国标准时间)或者是一个数字:1486000791164写数字的日期,指定的毫秒数自1970年1月1日00:00:00到现在。1\.显示日期使用
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
待兔 待兔
1年前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Jacquelyn38 Jacquelyn38
4年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
Wesley13 Wesley13
3年前
SQL条件语句(IF, CASE WHEN, IF NULL)
1.IF  表达式:IF(expr1,expr2,expr3)  expr1条件,条件为true,则值是expr2,false,值就是expr3SELECTo.id,u.account,catagory.name,orderTime,detail.amount,periodtime,if(direc
Wesley13 Wesley13
3年前
HTML&CSS基础学习笔记1.29
像素和相对长度前面的html博文,我们提到过用属性width、height来设置图片的尺寸,它们的单元都是”px(像素)”。长度单位总结一下,目前比较常用到px(像素)、em、%百分比,要注意其实这三种单位都是相对单位。1、像素像素为什么是相对单位呢?因为像素指的是显示器上的小点(CSS规范中假设“90像素1英寸”)。实际情
Stella981 Stella981
3年前
Django中Admin中的一些参数配置
设置在列表中显示的字段,id为django模型默认的主键list_display('id','name','sex','profession','email','qq','phone','status','create_time')设置在列表可编辑字段list_editable
Python进阶者 Python进阶者
1年前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这
IT全栈视野 IT全栈视野
1年前
全面剖析像素单位 px、vp、fp
一、像素单位pxpx是像素(Pixel)的缩写,是最常见的屏幕分辨率单位。它是一个绝对单位,表示屏幕上的一个物理像素点。例如,在一个分辨率为1920×1080的屏幕上,一个宽度为100px的元素,就会占据屏幕宽度的100/1920部分。优点:直观易懂,在不
螺旋上升者
螺旋上升者
Lv1
少而不学,老而无识。少壮不努力,老大徒伤悲。
文章
5
粉丝
0
获赞
0