IE 11 css-vars-ponyfill 只支持 :root 变量,不支持行内变量
IE 11 css-vars-ponyfill only support :root variable, but not support inline varible
内联变量在 IE 11 中不工作,甚至 :root 变量在 'css-vars-ponyfill' 的帮助下工作,但内联变量在 IE 11 中仍然不工作
:root {
--bg-color: black;
}
.main{display:inline-block;
background:var(--bg-color);width:200px;height:200px;}
<script src="https://cdn.jsdelivr.net/npm/css-vars-ponyfill@2"></script>
<div style="--bg-color:red" class="main">
</div>
CSS自定义属性(var function) does not support IE browser.
您可以尝试添加 css-vars-ponyfill polyfill 以便在 IE 浏览器中使用它,代码示例如下:
<script src="https://unpkg.com/css-vars-ponyfill@2/dist/css-vars-ponyfill.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/js-beautify@1/js/lib/beautify-css.min.js"></script>
<script>
cssVars({
// Treat all browsers as legacy
onlyLegacy: false,
});
</script>
<style >
:root {
--bg-color: green;
}
.main {
display: inline-block;
background: var(--bg-color);
width: 200px;
height: 200px;
}
</style>
<div style="--bg-color:red" class="main">
aa
</div>
结果如下:
可能你发现了,在使用这个 Polyfill 的时候,Polyfill 不会扫描内联 CSS 变量,这似乎与 polyfill 有关,你可以查看 this issue .
通用元素可以使用根声明,特殊元素可以直接使用内联样式和background-color:red
样式。
IE11不支持自定义变量。
并且填充它并不容易,尤其是内联样式,因为无法使用 javascript 读取样式属性的原始应用值 - 相信我,我已经尝试了所有方法。
有一个 ie11 的 polyfill,几乎完全支持自定义变量。
https://github.com/nuxodin/ie11CustomProperties/
但是你必须像这样添加内联样式:
<div style="--bg-color:red" ie-style="--bg-color:red">
内联变量在 IE 11 中不工作,甚至 :root 变量在 'css-vars-ponyfill' 的帮助下工作,但内联变量在 IE 11 中仍然不工作
:root {
--bg-color: black;
}
.main{display:inline-block;
background:var(--bg-color);width:200px;height:200px;}
<script src="https://cdn.jsdelivr.net/npm/css-vars-ponyfill@2"></script>
<div style="--bg-color:red" class="main">
</div>
CSS自定义属性(var function) does not support IE browser.
您可以尝试添加 css-vars-ponyfill polyfill 以便在 IE 浏览器中使用它,代码示例如下:
<script src="https://unpkg.com/css-vars-ponyfill@2/dist/css-vars-ponyfill.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/js-beautify@1/js/lib/beautify-css.min.js"></script>
<script>
cssVars({
// Treat all browsers as legacy
onlyLegacy: false,
});
</script>
<style >
:root {
--bg-color: green;
}
.main {
display: inline-block;
background: var(--bg-color);
width: 200px;
height: 200px;
}
</style>
<div style="--bg-color:red" class="main">
aa
</div>
结果如下:
可能你发现了,在使用这个 Polyfill 的时候,Polyfill 不会扫描内联 CSS 变量,这似乎与 polyfill 有关,你可以查看 this issue .
通用元素可以使用根声明,特殊元素可以直接使用内联样式和background-color:red
样式。
IE11不支持自定义变量。
并且填充它并不容易,尤其是内联样式,因为无法使用 javascript 读取样式属性的原始应用值 - 相信我,我已经尝试了所有方法。
有一个 ie11 的 polyfill,几乎完全支持自定义变量。
https://github.com/nuxodin/ie11CustomProperties/
但是你必须像这样添加内联样式:
<div style="--bg-color:red" ie-style="--bg-color:red">