比方说,我有一个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