postcss-pxtorem 超大屏变形?

发布于 2022-09-12 01:40:00 字数 1196 浏览 21 评论 0

需要适配3840*2160的屏幕,设计稿是1920 x 1080的,我使用的是postcss-pxtorem"rootValue": 192,,在1920屏幕以下都是正常并且可响应式缩放的,但是在3840 x 2160就出现了页面变形,只能显示一半内容的情况,代码如下:

// 设计稿以1920px为宽度
function setRem() {
  // 实际设备页面宽度和设计稿的比值
  const htmlWidth = document.documentElement.clientWidth || document.body.clientWidth;
  const htmlHeight = document.documentElement.clientHeight || document.body.clientHeight;
  const designRatio = 1920 / 1080;
  const realRatio = htmlWidth / htmlHeight;

  let baseSize = 192;
  let scale = htmlWidth / 1920;
  document.documentElement.style.fontSize = (baseSize * scale) + 'px';

  // 存在宽度够了,高度不够的情况
  if (realRatio > designRatio) {
    document.documentElement.style.fontSize = (baseSize * scale) * (designRatio / realRatio) + 'px'
  }
}

setRem();

window.addEventListener('resize', () => {
  setRem();
});

.postcssrc.js 配置:

module.exports = {
  "plugins": {
    // to edit target browsers: use "browserslist" field in package.json
    "autoprefixer": {},
    "postcss-pxtorem": {
      "rootValue": 192,
      "propList": ["*"],
      "selectorBlackList": ["weui-"]
    }
  }
}

求大神指教,不胜感激!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

水波映月 2022-09-19 01:40:00

已解决,并不是rem的问题,而是安卓5.0系统不能使用display:flex;

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文