2

document.defaultView... やその他のプロパティをチェックせずに、PrototypeJS の要素の計算されたスタイルを取得する簡単なクロスブラウザの方法はありますか? ...コードが次のようになるように

var elt = $$('.xyz')[k],
    border = elt.getComputedStyle('border-bottom-width')

PrototypeJs は、計算された寸法を返すgetDimensions-Width、およびメソッドを提供しますが、境界線、背景などの他の計算されたスタイルを取得する方法はありません。-Height

getComputedStyleのスタンドアロン実装をいくつか見つけましたが、それを行う PrototypeJS のパッチ/プラグインがあるのではないでしょうか?

4

2 に答える 2

4

Prototype のgetStyleメソッドは、探しているクロスブラウザーの計算されたスタイル作業のほとんどをカプセル化します。

var bgColor = $(element).getStyle('background-color');

ドキュメントから:

このメソッドは、要素がインラインで適用されたか、スタイルシートで適用されたかにかかわらず、要素の CSS プロパティを検索します。float、0 (完全に透明) と 1 (完全に不透明) の間の値を返す不透明度、位置のプロパティ (左、上、右、下)、非表示の寸法 (幅または高さ) を取得するときのブラウザーの不一致を回避します。要素。

ただし、このメソッドは Internet Explorer <= 8 のスタイルシートに適用されたスタイルを返しません。これは、バージョン 8 以前では正しくないメソッドである getComputedStyle() メソッドを使用しているためです: http://www.quirksmode.org/dom /w3c_css.html

于 2010-01-13T12:16:57.620 に答える
1

私が知っていることではありません。

これはおそらく、「計算されたスタイルを取得」の実装が非常に異なっているため、均一な結果を保証することがほとんど不可能であるためです (クロスブラウザー フレームワークでは役に立たなくなります)。

たとえば、この質問で学んだように、クロスブラウザーで計算されたフォント サイズを取得できるとは限りません。

于 2010-01-13T11:39:33.173 に答える