ホームページ > 記事 > ウェブフロントエンド > object_html/css_WEB-ITnose の特定の CSS 属性の値を取得する JS に関する問題
function getStyle(obj,attr){ if(obj.currentStyle){ return obj.currentStyle[attr]; }else{ return getComputedStyle(obj,false)[attr]; }
このメソッドは非常に強力で、すべてのブラウザーと互換性があり、オブジェクトの特定の CSS プロパティを取得できます。
ただし、後でこのメソッドを使用すると、次のことが判明しました。 Firefox と IE では機能しませんでした。共通のバグがあります。つまり、境界線の値を取得すると、すべて空が返されます。
ブラウザーによって境界線のレンダリングが異なるため、境界線は 4 つにレンダリングされます。 Firefox の場合は、
そのため、境界線の値を取得するときは、
このようにして、境界線の値を取得する getStyle(obj,'borderLeftWidth') を個別に取得する必要があります。
実際、このメソッド自体には問題はありません。使用する際には、ブラウザ自体のいくつかの違いに注意する必要があります。
値が他の属性にもこの違いはあります。この違いは実際に使用する際に発見する必要があります。
さらに、インライン スタイルを取得する場合、このメソッドは汎用的ではありません。obj.style[attr]
を使用する必要があります。