要素を呼び出しwindow.getComputedStyle()
て、文字列と数値の両方を持つことができる lineHeight などのプロパティを取得しようとすると、毎回数値を返す方法または別の関数はありますか?
私のline-height
例はnormal
キーワードを参照しています。その他の例としては、フォントの太さや境界線の幅などがあります。これらはすべてキーワードを使用しますが、数値にマップします。
要素を呼び出しwindow.getComputedStyle()
て、文字列と数値の両方を持つことができる lineHeight などのプロパティを取得しようとすると、毎回数値を返す方法または別の関数はありますか?
私のline-height
例はnormal
キーワードを参照しています。その他の例としては、フォントの太さや境界線の幅などがあります。これらはすべてキーワードを使用しますが、数値にマップします。
戻り値にpx
または他の単位を含めることができるという事実に言及している場合は、次のparseInt
関数を使用できます。
function getTheStyle(elem,property)
{
var theCSSprop = window.getComputedStyle(elem,null).getPropertyValue(property);
return parseInt(theCSSprop);
}
var element = document.getElementById('test');
alert(getTheStyle(element,"height"));
ここにフィドルがあります。返す代わりに100px
返す100
次のようにユニットを抽出できます。
var str = "100em";
var matches = str.match(/([a-z]+)$/gi);
alert(matches);
編集:
どうやら、normal
ユーザーエージェントによって「妥当な」値に設定でき、フォント固有であり、仕様では 1.0 から 1.2 の間であることが推奨されています。したがって、おそらくそのプロパティを計算する方がよいでしょう。height
normal
要素のフォントに基づいて、使用される値を「妥当な」値に設定するようユーザー エージェントに指示します。値は < number >と同じ意味です。1.0 から 1.2 の間の「通常」の値を使用することをお勧めします。計算値は「通常」です。
これについての詳細なブログ投稿があります。
いいえ。常にマッピングがあるとは限らないためです。
例:
<div></div>
JS:
alert(getComputedStyle(document.body.children[0]).width);
// alerts "auto"
さて...どの数値がそれを満たすでしょうか?