如何让一个元素占据另一个元素的高度

How to make an element to take another element height

我创建了 2 个响应框,第一个框内有图片,另一个框内有一些文字。 两者都有宽度:50%;第一个盒子高度:100%。但是.. 每当我调整 window 的大小时,我希望 2 号框的高度与 1 号框的高度相同。

我创建了这个 jquery 并且它可以工作,但是当我调整 window 的大小时它不起作用。我认为解决此问题的方法可能是每当我调整 window 大小时执行 jquery,但我不知道如何执行。这就是我所做的:

<script>
var Box = $('.theElement');
$('.theElement2').css({ height: Box.height() });
</script>

谢谢指教!最终解决方案如下所示:

var Box = $('.theElement');

$(window).load(function() {
$('.theElement2').css({ height: Box.height() });
});

$(window).resize(function() {
$('.theElement2').css({ height: Box.height() });
}).resize();

注意:我不得不引入加载功能,因为当我刷新页面时,jquery有时有效,有时无效。现在它完美地工作了!

使用 resize 事件:

$(window).resize(function() {
    var Box = $('.theElement');
    $('.theElement2').css({ height: Box.height() });
}).resize();

您可以做的是将高度设置包装在一个函数中,然后在 DOM 准备就绪以及 window 调整大小事件时调用它:

$(function() {
    var setHeight = function() {
        var Box = $('.theElement');
        $('.theElement2').css({ height: Box.height() });
    });

    // Run on DOM ready
    setHeight();

    // Run on window resize
    $(window).resize(setHeight);
});

一些优化后见之明:如果同时执行许多计算,您可能需要考虑限制 resize 事件。浏览器经常触发该事件 ;)