【发布时间】:2018-04-19 04:01:32
【问题描述】:
所以我遇到了这个问题,我似乎无法弄清楚我应该如何使 lis 高度等于该行中的最高值。我让它工作了,但是它使所有 lis 的高度与最高的相同。这是我到目前为止的代码:https://codepen.io/benasl/pen/ooLrON?editors=1010
var max = -1;
var list = document.getElementsByTagName('li');
Array.prototype.forEach.call(list, function(child) {
max = max > child.style.height ? max : child.offsetHeight;
console.log(child.offsetHeight);
});
Array.prototype.forEach.call(list, function(child) {
child.style.height = max + 'px';
});
ul {
list-style: none;
padding: 0;
width: 100%;
}
li {
padding: 5px 10px;
display:block;
position:relative;
height: 100%;
}
p {
width: 100%;
}
<div class="row">
<div class="col-sm-4">
<ul>
<li><p>testt tte sttest testtesttesttes ttesttes ttesttesttest</p></li>
<li><p>test</p></li>
<li><p>test aaaaaaaa aaaaaaaaa a aaaa aaaaaaaa</p></li>
<li><p>test</p></li>
</ul>
</div>
<div class="col-sm-4">
<ul>
<li><p>testtesttestt esttesttesttes ttesttesttestte sttesttest</p></li>
<li><p>test</p></li>
<li><p>test aaaaaaaa aaaaaaaaa a aaaa aaaaaaaa</p></li>
<li><p>test</p></li>
</ul>
</div>
<div class="col-sm-4">
<ul>
<li><p>testtest testtes ttesttes ttesttesttestt esttestte assaas sasaas saassa sasasasaassa sttest</p></li>
<li><p>test</p></li>
<li><p>test aaaaaaaa aaaaaaaaa a aaaa aaaaaaaa</p></li>
<li><p>test</p></li>
</ul>
</div>
</div>
【问题讨论】:
-
必须是JS解决方案吗?只能是 CSS 吗?它使它们具有相同的高度,因为您没有按行对
li进行分组。你有一个大桶,下面的所有li都放在里面,所以它会找到最高的一个,然后把它们都做成这么大。 -
“仅在该行”是什么意思?您的示例中只有一行。另一个问题是选择器,它将选择文档中的所有 li。您是否尝试过使用行类作为选择器并遍历 li 的。
-
@dama ,里面有 3 个 ul,他想从这些 ul 中检索最高 li 的高度,并将最高值应用于每个 li。所以每一里的高度都是一样的。
-
@dama 有 3 个 ul,它们里面都有 4 个 lis,所以当所有三个 ul 在同一行时,所有行中的 lis 看起来就像它们在 4 个单独的行中。我想要做的是,如果所说的“行”中的一个 li 有更大的高度,则使该“行”中的所有 lis 更高
标签: javascript html css list styles