如何设置 div 的高度匹配响应内容?

Posted

技术标签:

【中文标题】如何设置 div 的高度匹配响应内容?【英文标题】:How can I set a div's height matching to responsive content? 【发布时间】:2013-03-21 22:08:07 【问题描述】:

我尝试执行以下操作: 单击时重新调整与 div 内容高度匹配的 div 高度(内容通过“overflow:hidden”隐藏) div 的内容是响应式的(意味着如果窗口宽度改变,div 的内容高度也会改变。

点击更改 div (.video) 高度以匹配 div 内容 (.video-container) 高度:

$('.video').click(function()

    $(this).animate(
    
        height:$('.video .video-container').height()
    );
);

这很好用,但如果我调整窗口大小,.video-container 的高度会发生变化,我需要再调整 .video 的大小。

这是我已经得到的一切:

视频:

<div class="video">
    <div class="video-container">
        <div class="flowplayer">
            <video preload='none'>
                <source type="video/mp4" src="video.mp4"/>
            </video>
        </div>
    </div>
</div>

javascript

$(document).ready(function()

    $('.video').click(function()
     
        $(this).animate(
        
            height:$('.video .video-container').height()
        ); 
    );

链接已删除 - (找到解决方案,现在一切正常)

如果您单击它扩展的第一个黑色容器,之后您会注意到,如果您重新调整浏览器的大小,视频会变小,但容器会保持较大。我希望这能澄清问题。

【问题讨论】:

【参考方案1】:

根据您发布的新信息,我想出了这个:

小提琴示例:http://jsfiddle.net/YSqAX/4/

我使用了调整大小插件,因为原生 jquery resize 不会检测到元素何时调整大小。

Ben Alman jquery resize plugin

//animate height
$.fn.animateHeight = function (container) 
    var thisHeight = $(container).map(function (i, e) 
        return $(e).height();
    ).get();

    return this.animate(
        height: thisHeight
    );
;

$(".video").on("click", function () 
    $(this).animateHeight(".video-container");
);

$(".video").resize(function (e) 
    $(this).animateHeight(".video-container");
);

【讨论】:

好吧,我猜你误会了:你说的已经在$('.video').click(function()$(this).animate(height:$('.video .video-container').height()););这行完成了,问题是.video-container 的高度会通过调整窗口大小而改变,所以我需要用新的高度更新所有扩展的 div。我会用更多信息更新第一篇文章。 @memylo 谢谢。额外的信息有所帮助。答案已更新。 工作,只是添加了一个检查它是否已经扩展:if ( $(this).height() &gt; 170)$(this).animateHeight(".video-container");

以上是关于如何设置 div 的高度匹配响应内容?的主要内容,如果未能解决你的问题,请参考以下文章

将max-height设置为兄弟div的最低高度

如何设置元素的高度以匹配另一个元素的高度?

如何正确设置 100% DIV 高度以匹配文档/窗口高度?

jquery在加载后设置高度

如何设置与内部内容匹配的颤动底部工作表高度?

css外层高度600px,里面div如何自适应填满高度?