2012-08-23 55 views
0

我有兩個主div的佈局。每個div的寬度是45%。然而,當我檢查不同頁面寬度的div時,div通常是一個不同的像素。 639對640.我並不關心這個問題,唯一的問題是更小的div內的物品不能與其他物品正確對齊。它只發生在某些頁面寬度,但它被打破了,而不是正確的。看起來較大的div中的元素排列在任何窗口大小上,較小的div幾乎總是錯誤的,但在某些大小上是正確的。使用基於百分比的佈局時奇怪的數學

這裏發生了什麼,有沒有辦法強制小型股份公司像大型股份公司一樣行事?

+2

JSFiddle請。 – luqmaan

+0

通常這是由於邊距,填充,邊框或CSS樣式的其他部分(以及特定於瀏覽器的默認值)導致的差異。你應該嘗試使用CSS重置。 –

回答

4

這是一個錯誤/子像素問題。

I've asked a similar question a while back發現當涉及到百分比時,基於webkit的瀏覽器有一個四捨五入的問題。

Here's the link bookcasey與我分享回答我的問題。

+1

參見http://ejohn.org/blog/sub-pixel-problems-in-css/。它是從2008年開始的,但是很長時間以來,百分比寬度一直存在問題。 –

+0

^他說什麼:) –

+0

偉大的資源,是否有一個公認的修復?可能只允許某些尺寸很好地分開? – Lumpy

0

不要使用百分比,如果你這樣做,確保總寬度增加到100%以下。使用100%時,我總是遇到溢出和錯位問題。

我假設你有另一個div佔剩下的10%。所以,兩者都可能嘗試44%。

+1

溢出是由邊距,填充和某些瀏覽器邊框厚度引起的。 –

+0

我試過這個,但divs已經小於整個頁面,縮小百分比並沒有幫助。 – Lumpy

+1

@Lumpy JS小提琴請。 – luqmaan

4

寬度必須爲整數。

什麼是955的45%? 429.75px。不能有。所以他們中的一個必須比另一個更寬。

+0

但是爲什麼一個人將429.75轉換爲429,另一個轉換爲430.解決方法是什麼?我應該強制我的內容div被2 – Lumpy

+0

整除嗎?因爲這是唯一可以獲得90%總分的方法。我的例子可能無法正常工作,因爲90%的事情發生了一半,所以還有一些猜測。 – sachleen