比方說,我有一個765px寬530px高的容器div。基於外部尺寸的內部分隔尺寸的公式?
我想用30個小的div動態地填充那個div的大小。由於容器div是一個矩形,所以填充div應該也是一個矩形。基本上,我不想要正方形,我想填補空白。
公式是什麼?
謝謝!
比方說,我有一個765px寬530px高的容器div。基於外部尺寸的內部分隔尺寸的公式?
我想用30個小的div動態地填充那個div的大小。由於容器div是一個矩形,所以填充div應該也是一個矩形。基本上,我不想要正方形,我想填補空白。
公式是什麼?
謝謝!
隨着30你可以做一個5乘6的網格,所以用6和寬度除以5,或高度乘以5和6乘以寬度。如果divs必須有整數大小,你將無法填充寬度或高度與6雖然,因爲都不能被6整除...
因此,要找到每個片的寬度和高度,其中N是你有的片數(在這種情況下30),H是盒子的高度,以填補(530在這種情況下),W是框的寬度,以填補(765在這種情況下)...
eachPieceWidth = floor(W/ceil(sqrt(N)))
eachPieceHeight = floor(H/(N/ceil(sqrt(N)))
導致...
eachPieceWidth = floor(765/ceil(sqrt(30)))
eachPieceHeight = floor(530/(30/ceil(sqrt(30)))
導致...
eachPieceWidth = 127
eachPieceHeight = 106
如果您假定外部尺寸接近平方,那麼該公式就可以工作。但是,我詳細闡述了一些細節,讓實際的子分區儘可能接近正方形,這可能更重要。例如,如果你有一個40x800的盒子,並且你想用20個div來填充它,你可能需要1x20的網格,而不是4x5的網格。 – 2013-02-20 22:04:57
讓我看看,如果我能在你的問題爲您擴展位。
您有一個容器寬度爲w
,高度爲h
,並且您想用n
填充相等大小的矩形。你想找到x
,y
,這樣x * y = n
,但你想w/x
約等於h/y
,這樣你的小矩形儘可能接近正方形(因爲如果他們是1xn
切片,這可能是相當無用的)和你希望它們美觀。
首先,如果n
是一個素數,你可能需要稍微放鬆一下你的假設,否則你最終會得到一堆薄片。否則,我會遍歷所有因子n
,並且對於每個因子x
計算y=n/x
,然後計算w/x
和h/y
。然後選擇|w/x - h/y|
最小的那一對,並且您將擁有最多的「方形」div,您可以將它放在容器的網格中。
在你的情況。 w
= 765和h
= 530。 30的因素是1,2,3,5,6,10,15,30。我們認爲,以下對,這將導致以下的div尺寸(四捨五入):
在這種情況下,有一對(127, 106)
差異最小的是你想出了用公式一樣的,但你能想象,這將不會是如果案件你有一個長而細的容器,或者出於某種原因,你更喜歡有不同長寬比的子div,而不是正方形。在這種情況下,你會選擇最合適的部門。
什麼是30個小divs的尺寸? – SergeyS 2013-02-20 20:16:18
這就是我需要的公式。這30個div應該填充這個主空間有多大? – Layne 2013-02-20 20:21:34
30個div應該都有相同的大小? – SergeyS 2013-02-20 20:28:24