0

真正的问题: 我有一个ulof ,它水平排列并使用css 技巧li.column自动换行到下一行。float:left(我希望这个技巧足够普遍,以至于你们中的大多数人都明白我在做什么?)

而且因为每个li实际上都包含相同宽度的图像链接,所以我强制 li 本身也具有相同的宽度,以便锚元素将其文本包裹起来,以防它太长。

现在,不幸的是我有一个<li><a>LONG TEXT</a></li>被包裹并且不可避免地增加了它的容器的高度li,然后破坏了下一行的 CSS 布局。

我想为所有人设置高度li.columns以匹配此高度,但想使用 jquery 以编程方式进行。

所以这是我的部分代码:

var allColumns = $('li.column');
allColumns
.css('width','225px')
.css('padding-right','20px').css('background-color','transparent');
$('li.column:nth-child('+numCol+'n)').css('padding-right','0px');

var maxHeight = 0;
allColumns.each( function(index, item) {
  var height = $(item).height();
  if ( height > maxHeight ) { maxHeight = height; }
} );
allColumns.height(maxHeight);

我能做些什么来避免each使用更原生(优化)的东西来获得 maxHeight 的循环吗?

4

1 回答 1

0

不幸的是,这个问题的答案是没有神奇的答案。这才是真正的方法。

但是,现在您似乎正在调整<li>元素以适应内容的大小。另一种方法是使您的内容适合您的<li>元素(这样做可能取决于您的项目要求)您可以尝试这些 css 规则。以下所有规则都将允许您控制列如何处理较长的文本量。如果你能摆脱它,你就不需要做任何 JQuery 工作

white-space:nowrap;

overflow:scroll;或者overflow:hidden;

于 2013-05-10T04:05:59.827 回答