移动端1px

2021-06-07  本文已影响0人  my木子

起因

物理像素(DP)

逻辑像素(DIP)

设备像素比(DPR)

解决方案

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>

<style>
  /* 四条border样式设置 */
  .scale {
    position: relative;
    margin-bottom: 20px;
    border: none;
  }

  .scale:after {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    border: 1px solid red;
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
    width: 200%;
    height: 200%;
    /* 设置 X 轴Y 轴以中心点缩放 0.5 倍 */
    -webkit-transform: scale(0.5);
    transform: scale(0.5);
    /* 以左上角为原点,因为 scale 的缘故,位置要移动到左上角 */
    -webkit-transform-origin: left top;
    transform-origin: left top;
  }

  /* 单条水平border样式设置,如果是垂直border, 设置width为1px, height: 100% */
  .scale {
    position: relative;
    border: none;
  }

  .scale:after {
    content: '';
    position: absolute;
    bottom: 0;
    background: red;
    width: 100%;
    height: 1px;
    /* 设置Y 轴以中心点缩放 0.5 倍 */
    -webkit-transform: scaleY(0.5);
    transform: scaleY(0.5);
    /* 以左上角为原点,因为scale的缘故,位置要移动到左上角 */
    -webkit-transform-origin: left top;
    transform-origin: left top;
  }
</style>

<body>
  <div> cell <div>
</body>
<script>
  // 判断是否 Retina 屏
  if (window.devicePixelRatio && devicePixelRatio >= 2) {
    console.log('Retina 屏')
    document.querySelector('div').className = 'scale';
  }
</script>

</html>
// Install
npm i -S amfe-flexible

// Import
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, minimum-scale=1, user-scalable=no">
<script src="./node_modules/amfe-flexible/index.js"></script>

// 2 DPR
<meta name="viewport" content="initial-scale=0.5, maximum-scale=0.5, minimum-scale=0.5, user-scalable=no">

// 3 DPR
<meta name="viewport" content="initial-scale=0.3333333333333333, maximum-scale=0.3333333333333333, minimum-scale=0.3333333333333333, user-scalable=no">
上一篇下一篇

猜你喜欢

热点阅读