如何将容器高度作为窗口大小

Posted

技术标签:

【中文标题】如何将容器高度作为窗口大小【英文标题】:How to put the container height as the window size 【发布时间】:2011-10-16 06:40:16 【问题描述】:

这是我的问题:我网站的某些部分不是那么长(在高度方面),我喜欢将容器延伸到屏幕底部。问题是每台计算机的窗口大小可能不同(由于显示器分辨率)。所以像min-height 这样的技巧会失败。我该如何尝试?用javascript?或者也许定位 absolute+div clear 并扩展容器?任何帮助将不胜感激!

我的意思是:背景颜色必须在this example 上占据整个屏幕。

【问题讨论】:

尝试高度:100%?示例代码会很好。 【参考方案1】:
html,body 
    height:100%;
    padding:0;

#container 
    min-height:100%;

工作演示:http://jsfiddle.net/AlienWebguy/cruT5/5/

【讨论】:

这个答案+1。 @markzzz:您的 JSFiddle 不包含 AlienWebguy 的所有代码。 jsfiddle.net/cruT5/2/。我不喜欢在 Safari 中看到的垂直滚动条,但这是另一个问题。 是的。在下次关闭之前尝试一下:jsfiddle.net/AlienWebguy/cruT5/5 margin:0; padding:0; 添加到html,body 似乎可以解决滚动条的小问题。 AlienWebguy,想知道您是否知道在 IE 中这项功能可以使用多久? 到底是谁投了反对票?这是迄今为止最好的答案。【参考方案2】:

您可以使用 100% 值来解决此问题或使用 JavaScript。与其写一些长篇故事,我建议你看看这个......

Make Iframe to fit 100% of container's remaining height

【讨论】:

【参考方案3】:

在处理类似要求时,我使用以下方法获取尺寸:

// You can just copy and paste this function:

function getViewportDimensions() 

    var viewport = ;

    // the more standards compliant browsers (mozilla/netscape/opera/IE7) use window.innerWidth and window.innerHeight

    if (typeof window.innerWidth != 'undefined') 
        viewport.Width = window.innerWidth;
        viewport.Height = window.innerHeight;
    

    // IE6 in standards compliant mode (i.e. with a valid doctype as the first line in the document)

    else if (typeof document.documentElement != 'undefined' && typeof document.documentElement.clientWidth != 'undefined' && document.documentElement.clientWidth != 0) 
        viewport.Width = document.documentElement.clientWidth;
        viewport.Height = document.documentElement.clientHeight;
    

    // older versions of IE

    else 
        viewport.Width = document.getElementsByTagName('body')[0].clientWidth;
        viewport.Height = document.getElementsByTagName('body')[0].clientHeight;
    

    return viewport;

那么你可以这样使用它:

// Obviously, you'll need to include jQuery...

function resizeViewportItems() 

    var viewport = getViewportDimensions();

    $('#some-element').css('height', viewport.Height);
    $('#another-element').css('width', viewport.Width);

【讨论】:

-1 这在没有 JavaScript 的情况下很容易做到,而且问题中不仅没有 JavaScript 标签,而且您偶尔使用 JQuery。 document.getElementsByTagName('body') 可以简单地替换为 $('body') @AlienWebguy - 如果您真的阅读了他的问题,他表示他确实对 JavaScript 解决方案持开放态度。还有,jQuery 的零星使用和中国的茶叶价格有什么关系?考虑到它毫无根据,我真的不欣赏你的反对票...... 中国茶叶价格?你在说什么WTF?哈哈。我的基础是,这是一个可怕而混乱的解决方案,如果您实际上为所有这些选择器使用了 JQuery,您可以大大缩短它 如果您使用 jQuery,为什么不直接使用 height() 和 width() 来跨浏览器获取视口的尺寸。这不是 jQuery 的重点吗? 是的,你让我了解了 $('body') 的普遍奥秘。这是一个讽刺性的 +1

以上是关于如何将容器高度作为窗口大小的主要内容,如果未能解决你的问题,请参考以下文章

Java AWT 图形界面编程Frame 窗口标题栏大小问题 ( Container 容器的空白边框 Insets | 通过调用 frame.getInsets().top 获取窗口标题栏高度 )

如何在调整窗口大小时锁定纵横比?

如何在css中动态调整图像大小?

如何在 df.groupby 之后将数据框列值作为窗口大小传递?

WPF 不同DPI下,窗口大小的处理

如何在 Chart.js 2.9.3 中绘制具有动态厚度的水平条(在浏览器窗口高度调整大小时自动调整大小)?