因為螢幕能顯示的最小單位是1px,對於像773*50%=386.5這樣帶數字的長度必須有所取捨。
測試頁面,有些瀏覽器的截圖寬度也在裡面
IE:以四捨五入的方式計算。
Firefox:計算後的數值忽略小數部分,但會把多出的長度分配給裡面的各元素。如果只多出1px,例如2*386=772,剩下的1px會到其中一個元素,優先分配第一個元素,像773px分配給兩個50%時得到的是:387px和386px,分配給四個25%時得到的是:194px、193px、193px和193px; 而對於多出幾個px,如773*33.3%=257.409,773*33.33%=257.6409,由於忽略掉的小數不一樣,被忽略的原則不一樣,也不一樣,找不到相關資料,以下是我的猜想,三個元素的,按四捨五入的方式分配,四捨的優先分配給兩邊,五入的優先分配給前邊兩個,對於分配給三個元素以上的,多出部分自由分配,我找不到規律,但第一個一定會被分配到。
FF還有一些奇怪的地方。 Firefix測試頁面。 1024寬度不會自動分配,也許是因為外層也是帶小數的,導致1px沒分配,接著測試Firefox
Opera & Safari2:計算時忽略百分比的小數部分,計算後的值忽略小數部分,如果裡面的元素大於計算後的寬度不會導致後面的元素換行。
Netscape & Mozilla:計算後忽略小數,多出部分有點類似Firefox,但多出部分是比透明顯示,而且比較奇怪,例如33.33%*3=99.99% 小於100%,但卻大於100%,奇怪的瀏覽器,還好使用的人不多,不用太在意這兩個瀏覽器。
測試沒完成,有興趣的朋友幫忙測試,單獨的測試頁,有知道原因的朋友講一下下