2016-09-22 5 views
4

JSコードで、実行時(計算)幅ではなく、要素に適用される「元の」CSS幅プロパティを取得したいと考えています。
など。この場合要素のcss widthプロパティを取得する方法

.foo { 
    width: 50% /* or 123px, or 5em, ...*/ 
} 

、私は、実行時に計算さ"50%"はなく、ピクセル値を取得したいです。値がemで指定されている場合、結果としてemを取得したいと思います。 window.getComputedStyle(foo, null).getPropertyValue('width')は、ピクセル値を返します(少なくともgoogle chromeでは)。
実際、要素に適用されるCSSルールのテキスト値が必要です。

例えばJSでとても
+0

?あなたのブラウザの開発ツールでは、JavaScriptで...? –

+0

可能な複製http://stackoverflow.com/questions/324486/how-do-you-read-css-rule-values-with-javascript –

+0

@KilianStinson、それはほぼ重複していますが、http://彼は私の場合、私の要素に適用されたCSSの値を取得したいクラスのルールの値を取得したいと思っています#:324486/how-do-you-クラスに関係なく。基本的には、CSSエンジンを実行した後に値を取得したいと考えています –

答えて

0

foo.width in pixels/parentElement.width * 100 = foo.width in % :あなたはそれを取得したいん

var width = document.getElementById('foo').offsetWidth; 
var parentWidth = document.getElementById('parentOfFoo').offsetWidth; 

var fooWidthPercentage = width/parentWidth * 100; 
console.log(fooWidthPercentage); 
+1

質問の意味は、 'width'値が' 10em'ならば、OPが '10em'を返すようにします。同様に値が' 24vmin'であれば...問題ではないようです幅をパーセント値に変換する代わりに、割り当てられた値と単位を取得します(おそらく、それらの単位が何であるかを事前に知らなくても)。 –

+0

私はそれが問題を引き起こす方法を見ていないだろう、javascriptはピクセルで幅を測定する(または10em/24vminをピクセルに変換する)とにかくではないだろうか?とにかくJSを理解する方法です。 – Grey

+0

JavaScriptは間違いなく 'px'から' rem'(あるいは何でも)に変換できますが、変換を実行する必要があることを知るためには、変換する単位を最初に見つけ出す必要があります。それ自体はスタイルシートから元のプロパティ値s)、その時点で変換は不要となる。 –

関連する問題