我试图创建一个ul
菜单伸出li
元素以使用可用的宽度(100%)一个javascript算法智能流体。JavaScript的导航辅助
我在想这个流程的算法:
1. calculate the entire available with
2. substract the total elements width to see what's left
3. iterate the elements and substract 1px from the left width and assign
it to the smallest li until the iterator runs out of width
这是一个很好的方法还是将太laggy,因为这可能意味着几百次迭代?
编辑:评论/提供不持有一个好的答案,因为也许一个或多个元素一个答案举行冗长的文字,并且这些不应该得到任何额外的长度。这个问题需要作为唯一的最小元素可占的遗留像素的algoritmic解决方案每次迭代所以菜单有效strectched
更新后:对于那些困惑,这是我希望它伸展的方式:
1. A bank has a total bankroll of 100 dollars
2. Jack has a 40% cut, Dennis has 6%, Minny has 1%
3. The bank starts handing out moneyz, 1 dollar each time starting with the
poorest kid.
4. In the end Jack has 40% while Dennis and Minny have both 30%
Where the cuts stand for the number of characters in a li's child a node
注:我已阅读使用表显示在纯CSS的解决方案,但是这确实是没有任何好处作为底层<a>
元素似乎不这样父元素伸展。
你究竟想在这里做什么?你说延伸出来的菜单使用了可用的宽度_(原文如此),但这可以通过多种方式实现。最简单的方法是通过分割剩余宽度来为每个li元素添加边距或填充。如果你有三个元素,剩余400px,则400 /(3 * 2)= 66.6-ish左右填充每个li。 –
没有想到,这实际上是一个聪明的解决方案,如果你创建一个答案,我会接受它的感谢!事实上,这是行不通的,因为我有一个(或很多)一个元素(多个)与一个长文本,所以我不想给这些添加任何东西..它需要被algoritmicly设置 – user2298943
这太糟糕了,flexbox isn' t支持IE,否则这将是非常简单的。 – zzzzBov