[英]Make a DIV cover entire page, but WITHOUT using CSS position [duplicate]
这个问题在这里已有答案:
我想制作一个background-color
为红色的div来覆盖我的整个页面,但我不想使用CSS position: absolute
。 这是我的CSS位置示例:
<div style="width: 100%; height: 100%; position: absolute; top: 0; left: 0;"></div>
CSS位置在很大程度上起作用,但是我无法创建多个这些div(由于top: 0
和left: 0
它们重叠或相互抵消)。 向下滚动时,我希望您看到其他div。
如果有一个纯CSS解决方案会很有帮助,但JavaScript和HTML也对我开放。 只是没有JQUERY。
使用视口高度和视口宽度怎么样?
我在这个JSFiddle中创建了一个例子。
body, html { margin: 0; padding: 0; } div { width: 100vw; height: 100vh; } .one { background-color: blue; } .two { background-color: green; } .three { background-color: yellow; }
<div class="one"></div> <div class="two"></div> <div class="three"></div>
如果你想让div占用整个空间,请使用vw和vh
因为单独制作div高度:100%和宽度:100%不会这样做
不使用视口单元
检查这个片段
div{ width: 100%; height:100%; background:red; } html,body{ height:100%; width:100%; }
<div ></div>
但是使html和body具有高度和宽度是一个坏主意,所以跳过它使用视图端口单位
用viewport unist检查这个
div { width: 100vw; height: 100vh; background: red; }
<div></div>
希望能帮助到你
只需更改top:
每个值。 第一个是0
,第二个是100%
,第三个是200%
,依此类推。 这是一个有效的例子:
<div style="width: 100%; height: 100%; position: absolute; top: 0; left: 0;background:red;"></div>
<div style="width: 100%; height: 100%; position: absolute; top: 100%; left: 0; background:blue;"></div>
<div style="width: 100%; height: 100%; position: absolute; top: 200%; left: 0; background:green;"></div>
通过使用内部div继承height和width属性值的单个绝对定位容器,可以支持IE7和8等较旧的浏览器, 而无需使用可视高度和宽度单位。
body {
margin: 0px; /* optional */
}
#box {
position:absolute;
height: 100%;
min-width: 100%;
}
.page {
padding: 5px; /* optional */
height: inherit;
}
<body>
<div id="box">
<div class="page" style="background-color: red">
<div style="width:25em; background-color: gray">25em</div>
</div>
<div class="page" style="background-color: green">2</div>
<div class="page" style="background-color: white">3</div>
</div>
</body>
更新:容器的width
属性已被IE7中引入的min-width
属性替换,以修复丑陋的水平滚动问题。 提供内部div
元素的width
是不必要的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.