2


0

getComputedStyle()。getPropertyValue()で境界値を取得しますか? (モジラ、FF)

一部のブラウザ(つまり、Firefox)では、 `getComputedStyle()。getPropertyValue()`は、 `border`のような短縮CSSについて何も報告しません。 これらの短縮CSS値を取得する非特定コードの方法はありますか? ショートハンドCSSとそれぞれのロングハンドCSS値のホワイトリストを作成することを検討しました。 しかし、それを行うことは大きな苦痛であり、前方互換性のない設計であることに気付きました。

1 Answer


2


「border:1px solid#000」のような* string *で何をしたいのでしょうか?

`copyStyle(el2、el、" border ")`をコピーするために、elems `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() : '';
  });
}

2つの要素の指定されたスタイルセットが同じ方法で一致するかどうかを比較します。 それ以外は、文字列の使用を実際に見ることができません。文字列を使用して何かを計算する場合は、解析する必要があります。