我写了一些jquery来给同一页面上的多个元素赋予相同的高度。盒子内的内容看起来不错。它适用于页面加载,但问题是当窗口调整大小时,框内的文本开始溢出开箱即用,而不是重新计算其必要高度的框。
以下是一个示例:http://jsfiddle.net/hV5AG/
使用您的浏览器并将其水平调整为较小,以查看我正在谈论的内容。
我尝试添加:
$( window ).resize(function() {
equalHeight($(".equalheight"));
});
但那没用。
答案 0 :(得分:0)
手动设置一次高度后,<div>
不再自动调整大小。在equalHeight
函数中,在计算最大高度之前将行为重置为'auto'
:
group.css('height','auto');
var tallest = 0;
group.each(function() {
var thisHeight = $(this).height();
if(thisHeight > tallest) {
tallest = thisHeight;
}
});
group.height(tallest);
当然,您需要记住在调整窗口大小时调用您的函数。这是一个工作小提琴:http://jsfiddle.net/MGfMh/
答案 1 :(得分:0)
您可以使用:
p {font-size: 2vw;}
视口百分比长度是相对于的大小 初始包含块。当初始的高度或宽度 包含块被更改,它们会相应缩放。然而, 当根元素上的溢出值为auto时,任何滚动 假设条不存在。注意初始包含 块的大小受到滚动条的存在的影响 视口。
答案 2 :(得分:0)
您可以在重新检查之前将这些框重置为自动
jQuery(function($) {
function equalHeight(group) {
var tallest = 0;
group.css('height','auto').each(function() {
var thisHeight = parseInt($(this).css('height'), 10);
if(thisHeight > tallest) {
tallest = thisHeight;
}
});
group.height(tallest);
}
equalHeight($(".equalheight"));
$( window ).resize(function() {
equalHeight($(".equalheight"));
});
});
稍微缩小一点,看起来像这样
function equalHeight(group) {
group.css('height','auto').height(Math.max.apply(null, group.map(function(_,el) {
return $(el).height();
})));
}