javascript - 使用 getComputedStyle().getPropertyValue() 获取边框值? (莫斯拉,FF)

标签 javascript css firefox shorthand

在某些浏览器(即 Firefox)中,getComputedStyle().getPropertyValue() 不会报告任何速记 CSS,例如 border。是否有一种非特定代码的方式来获取这些速记 CSS 值?我考虑过将速记 CSS 及其各自的速记 CSS 值列入白名单。但我意识到这样做既是一个巨大的痛苦,也是一种非向前兼容的设计。

最佳答案

我想知道,你想用 border: 1px solid #000 这样的 string 做什么?

假设你想复制一个元素 border 以便复制它 copyStyle(el2, el, "border"):

// Copies a set of styles from one element to another.
function copyStyle(dest, source, shorthand) {
  var computed = window.getComputedStyle(source, null);
  for (var i = computed.length; i--;) {
    var property = camelize(computed[i]);
    if (property.indexOf(shorthand) > -1) {
      console.log(property)
      dest.style[property] = computed[property];
    }
  }
}

// prototype.js
function camelize(text) {
  return text.replace(/-+(.)?/g, function (match, chr) {
    return chr ? chr.toUpperCase() : '';
  });
}

比较两个元素的给定样式集是否匹配可以用相同的方式完成。除此之外,我真的看不到使用字符串,如果你想用它计算任何东西,应该解析它。

关于javascript - 使用 getComputedStyle().getPropertyValue() 获取边框值? (莫斯拉,FF),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4230022/

相关文章:

javascript - 使用 React,如何重用 setState 函数而不是复制和粘贴?

html - 长页面高度和背景重复问题

java - 从一个 Selenium session 到另一个 Selenium session 长期保存 Cookie 的最佳方法?

javascript - Jquery Ajax 无法在 Firefox 中运行(在以前的版本中可以运行),但可以在 Chrome 中运行

javascript - CSS:如何在其正下方制作带有子导航菜单的导航菜单?

javascript - 如何在版本号上使用 Javascript 数学

javascript - 使用 rowspan 和 colspan 属性修复表头并可滚动

css - Google Web Toolkit - 具有 CSS 样式的 UiBinder

jquery - 将按钮元素直接放在输入元素上

c# - 使 div 看起来像 ListBox