JavaScript 仅显示浏览器特定的 CSS 前缀,即使添加了其他前缀也是如此

标签 javascript html css browser vendor-prefix

我通过 Javascript 将 CSS 规则直接添加到样式表:

document.styleSheets[0].cssRules[4].style.borderRadius="10px";
document.styleSheets[0].cssRules[4].style.webkitBorderRadius="10px";
document.styleSheets[0].cssRules[4].style.mozBorderRadius="10px";

稍后我需要显示这些规则:

document.write(document.styleSheets[0].cssRules[4].cssText);

但是每个浏览器只显示自己的前缀,例如,当我在 Chrome 上时,我只得到:

-webkit-border-radius:10px;

当我使用 Firefox 时,我只会得到:

-moz-boder-radius:10px;

无论我使用的是什么浏览器,我如何才能全部显示它们?

PS:我不能使用 document.getElementById("foo").style.width; 之类的东西来显示 CSS,使用 styleSheets[]cssRules[] 是必须的。

最佳答案

你不能,因为它们不存在。浏览器会忽略它不识别的样式,因此它们永远不会添加到样式表中。

关于JavaScript 仅显示浏览器特定的 CSS 前缀,即使添加了其他前缀也是如此,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14870249/

相关文章:

html - 为每个图像应用固定的 px 单位

javascript - 如何合并嵌套对象数组的内容?

javascript - 下载新的变量值 javascript

javascript - CSS 显示的性能提升 :none or $. remove()?

jquery - 使用 Jquery 数据表对数据排序属性中的值进行自定义排序

javascript - 如何将功能引导 JS 转换为加速移动元素 (AMP)

javascript - 如何平滑地更改背景颜色?

一个 html 页面上的 jQuery 简单多模态

html - 轮播滑动动画不适用于 Bootstrap 4.5.2

html - 用于页面或文档打印预览的 CSS 设计