我想少用CSS來做到以下幾點:如何將數字值轉換爲百分比(或)將百分比符號追加到數字中?
width: ((480/1366)*100)+'%';
的問題是,雖然輸出變爲:
width: 35.13909224011713 '%';
如何使它能夠發揮作用?即:
width: 35.13909224011713%;
我想少用CSS來做到以下幾點:如何將數字值轉換爲百分比(或)將百分比符號追加到數字中?
width: ((480/1366)*100)+'%';
的問題是,雖然輸出變爲:
width: 35.13909224011713 '%';
如何使它能夠發揮作用?即:
width: 35.13909224011713%;
它可以使用string interpolation:
@myvar: ((480/1366)*100);
width: ~"@{myvar}%";
這將輸出
width: 35.13909224011713%;
此外,如果你希望它是圓的,你可以使用round()
。
即使這個問題很老,我想添加一些關於添加的例子。減少將你的單位設置爲正在操作的任何東西。
10px + 20px
將輸出30像素
(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,它將是20px。
出於某種原因,最簡單和最明顯的方法是在這裏失蹤(它實際上是Richard Testani的答案,但是在那裏它會阻礙進一步的代碼導致錯誤的方向)。所以...... 答案原文:
width: ((480/1366)*100)+'%';
很簡單,只要:
width: (480/1366*100%);
說起
percentage
:
它也做了這個伎倆,但我個人從來沒有使用它的冗長和不可讀性。在快速掃描
percentage(480/1366)
就像peekabooze(480/1366)
,所以你必須停下來盯着它才能得到線索。相反%
在480/1366*100%
(或480/1366 * 100%
)中的顯式外觀使其更易於引人注目。
有點偏離主題,但是有計劃將精度值作爲編譯器選項公開嗎? – Harry
@Harry,nope(沒有用例,參見[#1909](https://github.com/less/less.js/pull/1909))。 –
無論如何,我可以做到沒有var?我試過 寬度:「@ {(237/768)* 100}%」; 但它似乎沒有工作... – Joel
嘿,這又是我!當你這樣做時,它變成了一個字符串。我需要一個數字......即最終的結果是寬度:「35.13909224011713%」;所以我恐怕這是行不通的。 – Joel
原來你也需要逃離字符串!所以這裏是〜號的正確解決方案: @myvar:((480/1366)* 100); width:〜「@ {myvar}%」; – Joel