前景
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-properties 和 postcss-color-function,來處理這些不兼容性。
步驟
- 安裝需要的 PostCSS 插件:
npm install postcss-custom-properties postcss-color-function --save-dev - 更新 PostCSS 配置:
如果你使用的是postcss.config.js,則可以如下配置:
module.exports = {
plugins: [
require('postcss-custom-properties')(),
require('postcss-color-function')(),
// ... 其他 PostCSS 插件
],
};
如果使用 Vue CLI 並在 vue.config.js 中配置 PostCSS,也可以在那裏添加這些插件。
- 重新構建項目
重新構建項目。這將通過上述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 生成的顏色了