Html - 两个垂直div并排100%高度滚动背景未完全显示

时间:2016-08-22 18:02:14

标签: html css height

我的布局有两个并排的cloumns,两个高度为100%的div。内容不同。

示例:屏幕高度低于较长列。向下滚动时,下方的背景不会完全消失 - 它会缩短。

滚动时,如何在较长的列中获得两列相等的列?

这是代码:



body {
  width: 100%;
  height: 100%;
  margin: 0;
  padding: 0;
  background: orange;
  color: #000000
}
#container1 {
  width: 300px;
  background: #FFFFFF;
  position: absolute;
  min-height: 100%;
  top: 0
}
#container2 {
  width: 300px;
  background: #00FF00;
  position: absolute;
  min-height: 100%;
  top: 0;
  left: 300px
}

<div id="container1">
  <br>Content 1
  <br>
  <br>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata
  sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum.
  Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos
  et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna
  aliquyam erat, sed diam voluptua.
  <br>
  <br>
</div>

<div id="container2">
  <br>Content 2
  <br>
  <br>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata
  sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.
  <br>
  <br>
</div>
&#13;
&#13;
&#13;

3 个答案:

答案 0 :(得分:1)

您可以使用table显示来实现此目的。

container换入wrapper div并更改了容器的absolute显示。

检查一下,让我知道您的反馈。谢谢!

body {
  width: 100%;
  height: 100%;
  margin: 0;
  padding: 0;
  background: orange;
  color: #000000;
}
.wrapper {
  display: table;
  width: 600px;
  position: absolute;
  height: 100%;
}
#container1 {
  background: #FFFFFF;
  display: table-cell;
  width: 50%;
}
#container2 {
  background: #00FF00;
  display: table-cell;
  width: 50%;
}
<div class="wrapper">
  <div id="container1">
    <br>Content 1
    <br>
    <br>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea
    takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores
    et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.
    At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et
    dolore magna aliquyam erat, sed diam voluptua.
    <br>
    <br>
  </div>

  <div id="container2">
    <br>Content 2
    <br>
    <br>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea
    takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.
    <br>
    <br>
  </div>
</div>

备用解决方案:@Frits已在此处解答,您也可以使用flexbox轻松完成此操作,但旧浏览器不支持此功能。

body {
  width: 100%;
  height: 100%;
  margin: 0;
  padding: 0;
  background: orange;
  color: #000000;
}
.wrapper {
  width: 600px;
  display: flex;
  position: absolute;
  height: 100%;
}
#container1 {
  background: #FFFFFF;
  width: 50%;
}
#container2 {
  background: #00FF00;
  width: 50%;
}
<div class="wrapper">
  <div id="container1">
    <br>Content 1
    <br>
    <br>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea
    takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores
    et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.
    At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et
    dolore magna aliquyam erat, sed diam voluptua.
    <br>
    <br>
  </div>

  <div id="container2">
    <br>Content 2
    <br>
    <br>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea
    takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.
    <br>
    <br>
  </div>
</div>

答案 1 :(得分:1)

您实际上可以通过删除position:absolute;并使用display:flex;包装元素来极大地简化CSS。

See this fiddle here

我在这个例子中所做的就是删除绝对定位,在两个div周围添加一个包裹元素,并添加display:flex;规则。

这是代码

&#13;
&#13;
body {
  width: 100%;
  height: 100%;
  margin: 0;
  padding: 0;
  background: orange;
  color: #000000
}
#container1 {
  background: #FFFFFF;
}
#container2 {
  background: #00FF00;
}
#wrapper {
  display:flex;
}
&#13;
<div id="wrapper">
  <div id="container1">
    <br>Content 1
    <br>
    <br>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea
    takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores
    et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.
    At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et
    dolore magna aliquyam erat, sed diam voluptua.
    <br>
    <br>
  </div>

  <div id="container2">
    <br>Content 2
    <br>
    <br>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea
    takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.
    <br>
    <br>
  </div>
</div>
&#13;
&#13;
&#13;

答案 2 :(得分:0)

我找到了一个解决方案: - 包装器需要高度:100%和位置:绝对

<!DOCTYPE html>
<head>

<style>
body {width: 100%; height: 100%; margin: 0; padding: 0; background: orange; color: #000000;}
#wrapper {position: relative; height: 100%; display: table; width: auto;}
#container1 {background: #FFFFFF; display: table-cell; width: 300px;}
#container2 {background: #00FF00; display: table-cell; width: 300px;}
</style>

</head>

<body>
<div id="wrapper">
<div id="container1">
    <br>
    Content 1<br><br>
    Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.<br><br>
</div>

<div id="container2">
    <br>
    Content 2<br><br>
    Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.<br><br>
</div>
</div>
</body>
</html>