【发布时间】:2011-03-17 14:46:00
【问题描述】:
对于我的 Web 应用程序,我希望主 div 为全屏(宽度和高度 = 100%),并且无论内容如何,我都希望它保持该大小。也就是说,如果内容不多,就不应该收缩,如果内容太多,就不应该推这个主div。
我该怎么做?
(我对应用于此 div 的 hack 没问题,只要它不会让内容受到 hack)
【问题讨论】:
标签: css fullscreen
对于我的 Web 应用程序,我希望主 div 为全屏(宽度和高度 = 100%),并且无论内容如何,我都希望它保持该大小。也就是说,如果内容不多,就不应该收缩,如果内容太多,就不应该推这个主div。
我该怎么做?
(我对应用于此 div 的 hack 没问题,只要它不会让内容受到 hack)
【问题讨论】:
标签: css fullscreen
这是我的解决方案,我认为最好使用vh(视口高度)和vw(视口宽度),单位与当前视口的height 和width 有关
function myFunction() {
var element = document.getElementById("main");
element.classList.add("container");
}
.container{
height: 100vh;
width: 100vw;
overflow: hidden;
background-color: #333;
margin: 0;
padding: 0;
}
<div id="main"></div>
<button onclick="myFunction()">Try it</button>
【讨论】:
#fullDiv {
height: 100%;
width: 100%;
left: 0;
top: 0;
overflow: hidden;
position: fixed;
}
【讨论】:
我使用这种方法来绘制模态叠加层。
.fullDiv { width:100%; height:100%; position:fixed }
我认为这里的区别在于 position:fixed 的使用,它可能适用于您的用例,也可能不适用。
我也加了z-index:1000; background:rgba(50,50,50,.7);
然后,模态内容可以存在于该 div 中,并且页面上已经存在的任何内容在背景中仍然可见,但在滚动时被覆盖完全覆盖。
【讨论】:
请注意其中大多数只能在没有 DOCTYPE 的情况下使用。我正在寻找相同的答案,但我有一个 DOCTYPE。但是,有一种方法可以使用 DOCTYPE,尽管它不适用于我网站的样式,但它适用于您要创建的页面类型:
div#full-size{
position: absolute;
top:0;
bottom:0;
right:0;
left:0;
overflow:hidden;
现在,这在前面提到过,但我只是想澄清一下,这通常与 DOCTYPE 一起使用,height:100%;只能在没有 DOCTYPE 的情况下工作
【讨论】:
使用 HTML
<div id="full-size">
<div id="wrapper">
Your content goes here.
</div>
</div>
并使用 CSS:
html, body {margin:0;padding:0;height:100%;}
#full-size {
height:100%;
width:100%;
position:absolute;
top:0;
left:0;
overflow:hidden;
}
#wrapper {
/*You can add padding and margins here.*/
padding:0;
margin:0;
}
确保 HTML 位于根元素中。
希望这会有所帮助!
【讨论】:
#fullDiv {
position: absolute;
margin: 0;
padding: 0;
left: 0;
top: 0;
bottom: 0;
right: 0;
overflow: hidden; /* or auto or scroll */
}
【讨论】:
right:0 和 bottom:0 描述符是不必要的;他们将覆盖top 和left 描述符。这过去一直让我着迷; CSS 在这方面不像 Windows 窗体或 XAML。
<html>
<div style="width:100%; height:100%; position:fixed; left:0;top:0;overflow:hidden;">
</div>
</html>
【讨论】:
甚至只是:
<div id="full-size">
Your contents go here
</div>
html,body{ margin:0; padding:0; height:100%; width:100%; }
#full-size{
height:100%;
width:100%;
overflow:hidden; /* or overflow:auto; if you want scrollbars */
}
(html、body 可以设置为 like.. 95%-99% 或一些这样的值,以解决页边距的轻微不一致等问题。)
【讨论】: