移动端1像素的解决方案?

文章介绍了三种处理小数值像素在高分辨率屏幕显示问题的方法:1)使用JavaScript检测设备像素比并动态调整;2)创建渐变背景模拟1px边框;3)结合viewport和rem调整缩放比例。每种方法有其优缺点,第一种兼容性较差,后两种提供更灵活的解决方案。
摘要由CSDN通过智能技术生成

1、小数值px

解决思路:

<body>
	<div id="main" style="border: 1px solid #000000;"></div>
</body>
<script type="text/javascript">
if (window.devicePixelRatio && devicePixelRatio >= 2) {
	var main = document.getElementById('main');
	main.style.border = '.5px solid #000000';
}
</script>

优点:

简单,好理解

缺点:

兼容性差,目前之余IOS8+才支持,在IOS7及其以下、安卓系统都是显示0px。

2、background-img渐变

设置1px的渐变背景,50%有颜色,50%透明

.border {
    background:
    linear-gradient(180deg, black, black 50%, transparent 50%) top    left  / 100% 1px no-repeat,
    linear-gradient(90deg,  black, black 50%, transparent 50%) top    right / 1px 100% no-repeat,
    linear-gradient(0,      black, black 50%, transparent 50%) bottom right / 100% 1px no-repeat,
    linear-gradient(-90deg, black, black 50%, transparent 50%) bottom left  / 1px 100% no-repeat;
}

3、viewport和rem结合

viewport结合rem解决像素比问题

比如在devicePixelRatio=2设置meta

<meta name="viewport" content="initial-scale=0.5, maximum-scale=0.5, minimum-scale=0.5, user-scalable=no">
在devicePixelRatio=3设置meta

<meta name="viewport" content="initial-scale=0.3333333333333333, maximum-scale=0.3333333333333333, minimum-scale=0.3333333333333333, user-scalable=no">
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值