博客 / 詳情

返回

vue2中使用unocss,在ie11 不能正常顯示unocss的顏色設置

前景

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 生成的顏色了

user avatar
0 位用戶收藏了這個故事!

發佈 評論

Some HTML is okay.