2011-08-08 5 views

答えて

12

string interpolationを使用することが可能である:

@myvar: ((480/1366)*100); 
width: ~"@{myvar}%"; 

あなたはそれを四捨五入する場合は、出力

width: 35.13909224011713%; 

はまた、あなたがround()を使用することができるようにします。

+0

とにかく私はvarなしですることができますか?試しました 幅: "@ {(237/768)* 100}%"; しかし、それは動作していないようです... – Joel

+0

ねえ、もう一度私です!このようにすると文字列になります。数字が必要です。つまり、最終結果は「35.13909224011713%」です。だから私はこれがうまくいかないのではないかと心配しています。 – Joel

+0

また、文字列をエスケープする必要があることがわかります!だからここに〜記号の正しい解があります: @myvar :((480/1366)* 100); 幅:〜 "@ {myvar}%"; – Joel

7

この質問はかなり古くても、私は追加に関するいくつかの例を追加したいと思います。あなたのユニットは、操作されているものすべてに設定されます。

10px + 20px 

意志出力30px

(20/200) * 100% 

意志出力10%

ですから、ユニットの測定を連結する必要がいけないのユニットで。

私は、0を追加すると単位価値がわからないときに役立つことが分かりました。

.mixin(@x, @y){ 
    @result: (@x/@y) * 100; 
} 

.my_class { 
    .mixin(20, 100); 
    width: @result + 0%; // you can use any unit here 
} 

上記のクラスの幅は20%です。 pxを追加した場合、20ピクセルになります。

1

何らかの理由で、最も冗長で最も明白な方法がここでは欠落しています(実際はリチャード・テスタニの答えですが、間違った方向につながるコードが残っています)。だから... ... オリジナルの答え:

width: (480/1366*100%); 

percentageのスピーキング:

width: ((480/1366)*100)+'%'; 

がするのと同じくらい簡単です

それトリックはあまりにも個人的に私はその冗長と非可読性のためにそれを使用しないだろう。速いスキャンではpercentage(480/1366)はちょうどpeekabooze(480/1366)のように読めるので、手がかりを得るためにそれを止めて凝視しなければなりません。逆に、%の明示的な外観が480/1366*100%(または480/1366 * 100%)にあると、より簡単に目立つようになります。

+0

トピックを少しは削除しましたが、コンパイラオプションとして精度値を公開する計画はありますか? – Harry

+1

@Harry、nope(ユースケースなし、[#1909](https://github.com/less/less.js/pull/1909)を参照)。 –

関連する問題