> 文章列表 > Nextjs 处理 css3 前缀兼容

Nextjs 处理 css3 前缀兼容

Nextjs 处理 css3 前缀兼容

Nextjs 处理 css3 前缀兼容

虽然css3现在浏览器支持率已经很高了, 但有时候需要兼容一些低版本浏览器,需要给css3加前缀,可以借助插件来自动加前缀, postcss-loader就是来给css3加浏览器前缀的,安装依赖:

npm i postcss-loader autoprefixer -D
  • postcss-loader:处理css时自动加前缀
  • autoprefixer:决定添加哪些浏览器前缀到css

修改next.config.js, 在解析cssless的规则中添加配置

/** @type {import('next').NextConfig} */
const nextConfig = {// reactStrictMode: true,webpack: (config, { buildId, dev, isServer, defaultLoaders, webpack }) => {// Important: return the modified configconfig.module.rules.push({test: /.(css|less)$/, //匹配 css和less 文件use: ["style-loader", "css-loader", "postcss-loader"],});return config;},
};module.exports = nextConfig;

配置完成后,需要有一份要兼容浏览器的清单,让postcss-loader知道要加哪些浏览器的前缀,在根目录创建 .browserslistrc文件

IE 9 # 兼容IE 9
chrome 35 # 兼容chrome 35

postcss.config.jspostcss-loader的配置文件,会自动读取配置,根目录新建postcss.config.js

module.exports = {plugins: ["autoprefixer"],
};

以兼容到ie9chrome35版本为例,配置好后,执行npm run build:dev打包,可以看到打包后的css文件已经加上了ie和谷歌内核的前缀

Nextjs 处理 css3 前缀兼容

提取postcss-loader配置后,再次打包,可以看到依然可以解析css, less文件, css3对应前缀依然存在。
包,可以看到依然可以解析css, less文件, css3对应前缀依然存在。