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