小程序1rpx边框不完美

问题展示

原因

rpx类似rem,渲染后实际转换成px之后可能存在小数,在不同的设备上多多少少会存在渲染的问题。而1rpx的问题就更加明显,因为不足1个物理像素的话,在IOS会进行四舍五入,而安卓好像统一向上取整,这也是上面两种设备表现不同的原因

解决方法

我们采用的方法是采用translate:scale(0.5)的方法对边框进行缩放

css 复制代码
.select-box{
  position: relative;
  border-width: 0rpx !important;
  padding: 0.5rpx;
  z-index: 0;
}
.select-box::after{
  box-sizing: border-box !important;
  position: absolute;
  border-width: 2rpx !important;
  left: 0;
  top: 0;
  width: 200% !important;
  height: 200% !important;
  transform-origin: 0 0;
  transform: scale(0.5) !important;
  z-index: -1;
}
  • 给.select-box的元素设置边框宽度为0
  • 给::after伪元素宽高为两倍,边框设置2rpx,
  • 边框其他样式继承元素的设置
  • 然后再缩放0.5来达到边框为1rpx的效果

题外话

border: 1rpx solid #ccc = border-width、border-style、border-color

相关推荐
御形封灵10 小时前
纯CSS实现方块下落等待动画
前端·css
转角羊儿10 小时前
CSS补充重要知识
前端·css
凉辰11 小时前
uniapp实现生成海报功能 (开箱即用)
javascript·vue.js·小程序·uni-app
林九生11 小时前
【Vue3】解决 Tailwind CSS v4 + Vite 8 中 `@import “tailwindcss“` 不起作用的问题
前端·css
奶糖 肥晨11 小时前
微信小程序定位功能开发实战:实现自动定位、城市切换与地图导航
微信小程序·小程序
遗憾随她而去.13 小时前
高德地图自定义点标记: SVG vs HTML+CSS两种方案
前端·css
啪叽13 小时前
别再手写 if-else 选字体颜色了,CSS contrast-color() 来帮你处理
前端·css
Irene199115 小时前
CSS中层叠上下文的定义与触发条件
css·z-index·层叠上下文
kyriewen1116 小时前
Sass:让 CSS 从手工作坊迈入工业时代
前端·javascript·css·html·css3·sass·html5
CHU72903516 小时前
一蔬一饭总关情:生鲜买菜商城APP的生活美学
小程序·生活