在移动端1px渲染成2px的问题是由于高清屏幕像素密度的问题导致的。可以通过下列方法解决:
- 使用viewport的meta标签将页面缩小到1:1比例:
<meta name="viewport" content="width=device-width,initial-scale=1.0,maximum-scale=1.0,user-scalable=no" />
- 使用CSS中的scale缩小元素:
.elem { transform: scale(0.5); transform-origin: left top; }
这种方法适用于不需要点击的元素,因为缩放后点击区域会变小。
- 使用伪元素模仿边框:
.elem:before { content: ""; position: absolute; top: -1px; left: -1px; right: -1px; bottom: -1px; border: 1px solid #000; }
这种方法适用于需要边框的元素,但是会增加页面的DOM结构。
- 使用伪元素加transform缩放模拟1px:
.elem:before { content: ""; position: absolute; top: 0; left: 0; width: 200%; height: 200%; border: 1px solid #000; transform: scale(0.5); transform-origin: left top; }
这种方法适用于需要边框的元素,而且对DOM结构没有影响。
通常情况下,使用第一种方法是最简单有效的。