Device Pixel Ratio 引起绝对定位位置异常

这两天做开发的过程中出现了一个问题。公司开发用的电脑的 device pixel ratio1.25

假设如下的HTML和CSS:

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <title>DPR Issue</title>
</head>
<body>
  <div class="tick"></div>
  <div class="tick"></div>
  <div class="tick"></div>
</body>
</html>
* {
  padding: 0;
  margin: 0;
  border: 0;
  box-sizing: border-box;
}

.tick {
  border: 1px solid red;
  display: block;
  position: relative;
  width: 18px;
  height: 18px;
  margin: 10px auto;
}

.tick::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 12px;
  height: 12px;
  background: blue;
}

想要实现的效果很简单,就是长宽都是18px.tick::after伪元素被绝对定位到.tick的左上角(即 top: 0; left: 0;)。

结果,在devicePixelRatio === 1.25 的机器上会出现如下图中的定位问题:

图片描述

devicePixelRatio1的电脑上就不会出现这个情况。

在此向诸位求教该问题出现的原因,以及是否存在任何的方式去解决或避免问题出现?

多谢各位!

阅读 1.8k
1 个回答

没有人遇到同样的问题吗?

目前来看感觉像是浏览器渲染引擎方面的问题。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题