前景

ie11 不能正常显示unocss的颜色设置:“--un-text-opacity: 1 !important; color: rgba(213,147,197,var(--un-text-opacity));”

IE11 目前是无法支持 CSS 变量(自定义属性)和 rgba 中使用的 var() 函数。

为了在 IE11 中使用 UnoCSS,你需要执行额外的步骤来转换这些现代 CSS 特性为 IE11 可以理解的样式。

思路

解决方案办法,可以使用 PostCSS 插件,postcss-custom-propertiespostcss-color-function,来处理这些不兼容性。

步骤

  1. 安装需要的 PostCSS 插件:
    npm install postcss-custom-properties postcss-color-function --save-dev
  2. 更新 PostCSS 配置:
    如果你使用的是 postcss.config.js,则可以如下配置:
module.exports = {
  plugins: [
    require('postcss-custom-properties')(),
    require('postcss-color-function')(),
    // ... 其他 PostCSS 插件
  ],
};

如果使用 Vue CLI 并在 vue.config.js 中配置 PostCSS,也可以在那里添加这些插件。

  1. 重新构建项目
    重新构建项目。这将通过上述 PostCSS 插件处理你的 CSS,将现代的 CSS 特性转换为 IE11 可以理解的样式。

然后UnoCSS 生成的颜色应该能够在 IE11 中正常显示。

方案2

确保 UnoCSS 在 IE11 上的兼容性。

使用 Polyfill
ie11CustomProperties 设计的轻量级 polyfill,

安装 ie11CustomProperties:
npm install ie11-custom-properties

在项目入口文件中引入 polyfill,main.js文件的顶部引入
import 'ie11-custom-properties';

ie11-custom-properties polyfill 在任何使用了 CSS 自定义属性的样式表之前加载。

Vue 项目应该可以在 IE11 中正确显示 UnoCSS 生成的颜色了


小糖川越火线
-1 声望0 粉丝