花了我一段时间,但这里是小提琴和 JS 代码:
我的解决方案将考虑元素的关系大小并按比例拉伸它们。例如:一个占据了 50% 空间的 div 在拉伸 ul 后仍然会占据 50%。
(但是在添加填充和边框时会出现问题。如果有解决方案,我也会感兴趣!)
JS:
$(function() {
var $allUl = $('ul');
setNewPercentages($allUl);
function getTallestUl($uls) {
var max = 0;
var $ulTallest;
$uls.each(function(i,e) {
console.log( $(this).height() > max);
if( $(this).height() > max) {
$ulTallest = $(this);
max = $(this).height();
}
});
return $ulTallest;
};
function adjustPercentages($ul) {
$ul.find('li').each( function(i,e) {
var $this = $(this)
, ulHeight = $ul.height()
, liHeight = $this.height()
, percentage = (liHeight / ulHeight * 100);
$this.css('height', percentage + '%');
});
};
function setNewPercentages($uls) {
var $tallest = getTallestUl($allUl).addClass('tallest');
var heightTallest = $tallest.height();
$uls.not('.tallest').each(function(i,e) {
adjustPercentages($(this));
$(this).css('height', heightTallest);
});
};
});
小提琴