0

要素を呼び出しwindow.getComputedStyle()て、文字列と数値の両方を持つことができる lineHeight などのプロパティを取得しようとすると、毎回数値を返す方法または別の関数はありますか?

私のline-height例はnormalキーワードを参照しています。その他の例としては、フォントの太さや境界線の幅などがあります。これらはすべてキーワードを使用しますが、数値にマップします。

4

2 に答える 2

0

戻り値に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 の間の「通常」の値を使用することをお勧めします。計算値は「通常」です。

これについての詳細なブログ投稿があります。

于 2014-04-16T12:49:54.957 に答える
0

いいえ。常にマッピングがあるとは限らないためです。

例:

<div></div>

JS:

alert(getComputedStyle(document.body.children[0]).width);
// alerts "auto"

さて...どの数値がそれを満たすでしょうか?

于 2014-04-16T13:01:15.257 に答える