【问题标题】:div max-height set dynamically using javascriptdiv max-height 使用javascript动态设置
【发布时间】:2025-11-24 23:35:01
【问题描述】:

我有一个使用母版页和内容页的 Web 应用程序(参见附图)。我需要根据浏览器窗口大小动态设置内容页面中一个 div 的最大宽度(以便整个应用程序停留在页面上,无需滚动)。我无法仅使用 html 和 CSS 找到 sloution(或无法复制结果)。所以我想用javascript来做。但问题是,我从来没有使用过它,所以我真的不知道该怎么做。如果有人花几分钟时间编写能够做到这一点的函数,我真的很感激。正如我所看到的,我应该获取页眉底部边缘和页脚顶部边缘之间的高度差,并减去搜索栏和按钮栏的高度值。

编辑: 感谢 maxedison 提供该代码。但是,我该如何使用它? :D 我是个菜鸟。我有一个问题,因为我使用母版页和内容页。我把那个代码放在哪里?

编辑 2 - 答案:

我进一步研究了如何使用 jQuery,并在这里搜索了一些,我找到了一个解决方案。下次我开始开发应用程序时,我将从下往上使用 jQuery……它只是将一些事情简化了很多。 :)

所以对于解决方案:它类似于 maxedison 的建议,但我改变了它,我用 CSS 设置高度,我只是添加了一个固定值从 window.height 中扣除。

<script type='text/javascript'>
    $(function () {
        $('.myStyle').css({ 'height': (($(window).height()) - 350) + 'px' });

        $(window).resize(function () {
            $('.myStyle').css({ 'height': (($(window).height()) - 350) + 'px' });
        });
    });
</script>

【问题讨论】:

  • @MrLister - 我不确定这在 CSS 中是否可行。我还寻求一种纯 CSS 解决方案来使 div 扩展以适应可用的垂直高度,但没有成功。
  • @Mr Lister - 我尝试了几乎所有我能找到的 CSS 解决方案......没有一个符合我的要求。所以我想我会试试 javascript 或 jQuery。

标签: javascript asp.net html css


【解决方案1】:

使用 jQuery,它看起来像:

function resetHeight(){
    var newHeight = $(window).height() - $('.header').outerHeight() - $('.searchBar').outerHeight() - $('.buttons').outerHeight() - $('.footer').outerHeight();
    $('.content').height(newHeight);
}

$(function(){
    newHeight();

    $(window).resize(function(){
        resetHeight();
    });
});

【讨论】:

  • 太好了,非常感谢!现在只是为了学习,我应该把这段代码放在哪里。 :D 我将第一次使用它,所以祈祷,我可以让它工作。 :) 我应该把它放在我的内容页还是母版页中?再次感谢。
  • 哦,我忘了说。我正在使用 .NET 2,因为我需要考虑一些限制。这会有效吗,还是适用于 .net 上的较新版本?
  • @user1080533 .NET 版本与 jQuery(即 javascript)无关,因为它是客户端。您应该将此代码放在您的&lt;head&gt; 标记中,即&lt;script&gt; 标记中。
  • @Nate 谢谢,我用谷歌搜索并阅读了一些 jQuery 教程,我设法得到了我想要的东西。我用答案更新了我的问题。 :)