垂直调整3个div中的1个以适应窗口?

时间:2018-01-05 18:36:04

标签: html css resize responsive

我试图创建一个简单的响应式页面,其中包含几个div,如下所示:

<div id="container"> maximum 1200 width and 1000 height
    <div id="vertically-static-top">20 pixes high</div>
    <div id="vertically-resizeable-middle">adjustable height</div>
    <div id="vertically-static-bottom">50 pixels high</div>
</div>

总体最大宽度和最大高度分别为1200和1000

垂直静态div只有在调整浏览器窗口大小时才能水平调整大小,但垂直方向需要始终固定高度

垂直可调整大小的div需要根据窗口尺寸调整其宽度和高度。

对于我的生活,我无法弄清楚如何让中间div垂直调整并将所有内容保存在浏览器窗口中!

非常感谢你!

2 个答案:

答案 0 :(得分:2)

我认为你必须使用位置 absolute 。请查看下面的代码段。

html,
body {
  font: 13px Verdana;
  margin: 0;
  height: 100%;
}

#container {
  max-height: 1000px;
  max-width: 1200px;
  background: red;
  color: #fff;
  height: 100%;
  position: relative;
}

#vertically-static-top,
#vertically-static-bottom,
#vertically-resizeable-middle {
  position: absolute;
  left: 0;
  right: 0;
}

#vertically-static-top {
  height: 20px;
  top: 0;
  background: black;
}

#vertically-static-bottom {
  height: 50px;
  bottom: 0;
  background: black;
}

#vertically-resizeable-middle {
  top: 20px;
  bottom: 50px;
}
<div id="container">
  <div id="vertically-static-top">20 pixes high</div>
  <div id="vertically-resizeable-middle">adjustable height</div>
  <div id="vertically-static-bottom">50 pixels high</div>
</div>

我希望这会奏效。

答案 1 :(得分:1)

这可以通过flexbox实现。以下是示例代码:

&#13;
&#13;
#container {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical!important;
  -webkit-box-direction: normal!important;
  -ms-flex-direction: column!important;
  flex-direction: column!important;
  height: 240px;
  margin: auto;
  max-height: 1000px;
  max-width: 1200px;
}

#vertically-static-top,
#vertically-static-bottom {
  background-color: #80bdff;
  border-radius: .25rem;
  color: #fff;
  padding: 1rem;
}

#vertically-resizeable-middle {
  background-color: #957bbe;
  border-radius: .25rem;
  color: #fff;
  flex-grow: 1;
  padding: 1rem;
}
&#13;
<div id="container"> maximum 1200 width and 1000 height
    <div id="vertically-static-top">20 pixes high</div>
    <div id="vertically-resizeable-middle">adjustable height</div>
    <div id="vertically-static-bottom">50 pixels high</div>
</div>
&#13;
&#13;
&#13;

调整#container(height: 240px;)的高度或改为100%以适应父元素的高度