を返すとき、私はwindow.getComputedStyle()
を使用していますFFに空の文字列を返します。getComputedStyle()はプロパティのCSS値を取得するために、代わりにクロームが計算値
- borderRadius
- のborderStyle
- borderWidth
- BORDERCOLOR
最新のFFが空の文字列を返すことに気付きましたが、代わりに計算されたまた、単位を持つ値:
FF:
"borderRadius":"","borderStyle":"","borderWidth":"","borderColor":""
クローム:
"borderRadius":"0px","borderStyle":"none","borderWidth":"0px","borderColor":"rgb(0, 0, 0)"}
私が知りたいのですが:
- 既知のバグによって引き起こされるこの矛盾はありますか?
- FFで強制的にChromeとして値を返す方法をご存知ですか? (私はいくつかの条件でデフォルトを追加できることを認識していますが、可能であればネイティブソリューションを使用することになります)。
(function (window) {
document.addEventListener('DOMContentLoaded', (event) => {
let elmTarget = document.querySelector('#target'),
elmResult = document.querySelector('#result');
let styles = window.getComputedStyle(elmTarget),
result = {
borderRadius: styles.borderRadius,
borderStyle: styles.borderStyle,
borderWidth: styles.borderWidth,
borderColor: styles.borderColor
},
resultStr = JSON.stringify(result);
console.log(resultStr);
elmResult.innerHTML = resultStr;
});
})(window);
#target {
background-color: blue;
width: 100px;
height: 50px;
}
<div id="target"></div>
<div id="result"></div>
おかげで....しかし何?? – GibboK
@GibboK、same: 'borderLeftColor'など。私は全部でスニペットを書いています。 radiusはもっと複雑です( 'borderTopLeftRadius') – Kaiido
あなたのコメントをお寄せいただきありがとうございます。私はFFでなぜこのような振る舞いがあるのか、さらに詳しい情報を追加しました。 – GibboK