qq_35557632 2023-04-20 22:57 采纳率: 0%
浏览 24

vue+postcss-plugin-px2rem大屏页面问题

vue大屏页面 使用postcss-plugin-px2rem插件进行自适应
会出现这种问题 但是多刷新几次就会好 再刷新几次 就又会出现这种问题 这是什么原因?
还有 vue大屏自适应 一般采用什么方式?

img

  • 写回答

1条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-04-21 12:03
    关注
    不知道你这个问题是否已经解决, 如果还没有解决的话:
    • 看下这篇博客,也许你就懂了,链接:vue cli3+项目使用postcss-px2rem或者postcss-plugin-px2rem适配
    • 除此之外, 这篇博客: H5移动端插件中的 1、postcss-plugin-px2rem(vue中移动端自适应) 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:
      postcss-plugin-px2rem是PostCSS插件,可从px单位生成rem单位,响应式改变根元素的字体大小
      
    • 以下回答来自chatgpt:

      首先,我们需要添加一些prompt,以便chatgpt更好地理解您的问题。建议问题标题和内容应包含以下内容:

      问题标题:如何解决使用postcss-plugin-px2rem插件的vue大屏页面自适应问题?

      问题内容:我正在开发一个使用postcss-plugin-px2rem插件的vue大屏页面。这个插件可以将px单位转换为rem单位,以达到页面自适应的效果。但是,我发现有时候页面会显示不正确,需要多次刷新才能正常显示。我想知道这个问题的原因,并且想了解一下vue大屏页面自适应通常采用哪些方式解决这个问题。谢谢!

      接下来,我们来解决这个问题。首先,我们需要确定问题原因。这个问题可能是由于浏览器缓存导致的。为了解决这个问题,我们需要使用PostCSS插件来生成不同的文件名,以避免缓存问题。

      我们可以安装node-md5-file插件来生成不同的文件名。在webpack的配置文件中,我们需要对postcss-loader进行修改,添加postcss-md5,以确保文件名每次都不同。具体的代码如下:

      const md5File = require('md5-file');
      const postcssMd5 = require('postcss-md5');
      const cssFilePath = 'path-to-your-css-file';
      
      {
        loader: 'postcss-loader',
        options: {
          plugins: function() {
            return [
                require('postcss-plugin-px2rem')({
                    rootValue: 100,
                    minPixelValue: 2,
                    exclude: /node_module/,
                }),
                postcssMd5({
                  cssFilePath: cssFilePath,
                  createHash: md5File.sync
                })
            ];
          }
        }
      }
      

      还有一个方法是使用webpack的hash值作为文件名,这个方法也可以避免浏览器缓存问题。具体代码如下:

      {
        loader: 'postcss-loader',
        options: {
          plugins: function() {
            return [
                require('postcss-plugin-px2rem')({
                    rootValue: 100,
                    minPixelValue: 2,
                    exclude: /node_module/
                }),
                require('cssnano')({
                    preset: 'default',
                }),
            ];
          }
        }
      }
      
      output: {
        filename: '[name].[hash].js',
      }
      

      这两种方法都可以解决浏览器缓存问题,确保自适应在不同的设备上都能正常显示。

      Vue大屏页面自适应通常采用flex布局。这种布局方式可以让页面在不同设备上自适应,而不需要使用媒体查询。同时,我们还可以使用rem作为单位,这样可以避免在不同设备上的单位转换。通过设置根元素的字体大小,我们可以使用rem作为单位来开发页面。

      具体的代码如下:

      html {
        font-size: 16px; // 设置根元素的字体大小
      }
      
      .container {
        display: flex; // 使用flex布局
        justify-content: center; // 横向居中
        align-items: center; // 纵向居中
        width: 100%;
        height: 100%;
        background-color: #f0f0f0;
      }
      
      .item {
        flex: 1; //自适应宽度
        height: 100%;
      }
      

      以上就是解决问题的具体步骤和代码。


    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    评论

报告相同问题?

问题事件

  • 修改了问题 4月21日
  • 创建了问题 4月20日

悬赏问题

  • ¥15 Windows Script Host 无法找到脚本文件"C:\ProgramData\Player800\Cotrl.vbs”
  • ¥15 matlab自定义损失函数
  • ¥15 35114 SVAC视频验签的问题
  • ¥15 impedancepy
  • ¥15 求往届大挑得奖作品(ppt…)
  • ¥15 如何在vue.config.js中读取到public文件夹下window.APP_CONFIG.API_BASE_URL的值
  • ¥50 浦育平台scratch图形化编程
  • ¥20 求这个的原理图 只要原理图
  • ¥15 vue2项目中,如何配置环境,可以在打完包之后修改请求的服务器地址
  • ¥20 微信的店铺小程序如何修改背景图