我已經通過Chrome瀏覽器設置了div的寬度爲330px,然後手動設置寬度。當我用jQuery.css('width')
讀取寬度時,它返回爲329.77777767181396px。帶有浮點數或小數值的jQuery.css('寬度')
有沒有人知道爲什麼這是默認爲浮點,或不管它是什麼,而不是一個整數?
感謝
我已經通過Chrome瀏覽器設置了div的寬度爲330px,然後手動設置寬度。當我用jQuery.css('width')
讀取寬度時,它返回爲329.77777767181396px。帶有浮點數或小數值的jQuery.css('寬度')
有沒有人知道爲什麼這是默認爲浮點,或不管它是什麼,而不是一個整數?
感謝
你可以參考W3C規範之下,如果你真的很好奇這個
http://www.w3.org/TR/CSS21/syndata.html#length-units
當頁面呈現的浮點值四捨五入,確切值存儲在內存中並用於其子元素計算。例如,如果您的div爲105.4999px,則呈現爲105px,那麼寬度爲50%的子元素將計算爲.5 * 100.4999而不是.5 * 100。
完成這個整個的信息,他們被稱爲子像素,你可以有進一步約翰Resig的(jQuery的創建者)閱讀與子像素的問題,文章
感謝。當我嘗試將值保存在varchar 10字段中的用戶數據庫記錄中時,這會讓我陷入困境,因此下次登錄時它就是默認值。這只是令人費解的變化突然打破了這一點。 – Steve 2014-08-29 01:49:43
好吧,它真的很安全,因爲w3c的規格說明值爲 – 2014-08-29 01:50:57
是的。儘管如此,它並不是很乾淨,因爲這些.css()值最終會以'px'的形式返回。因此,對於每一個(大約25),我必須去掉'px',將原始數字轉換爲整數,執行Math.round,然後將其轉換回帶有'px'結尾的字符串。我會做的。我只是希望弄清楚改變了什麼,並將其改回來。我想我也可以增加數據庫字段長度來接受所有數字。 – Steve 2014-08-29 01:59:35
我沒有完全回答你的問題,但你可以使用'Math.round()',它完美的工作 – 2014-08-29 01:31:24
是的。我只是想知道翻了什麼,因爲它不習慣這樣做。 – Steve 2014-08-29 01:32:51
你可以參考我發佈的答案W3C文章 – 2014-08-29 01:40:46