flex布局咨询

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Title</title>
  <style>
    .p {
      display: flex;
      flex-direction: column;
      width: 800px;
      /*max-height: 200px;*/
      height: 200px;
      min-height: 0;
      background-color: #20a0ff;
    }

    .a {
      background-color: #97a8be;
      height: 20px;
      /*flex-shrink: 0;*/
    }

    .b {
      flex: 1;
      background-color: #42b983;
      overflow-y: scroll;
      /*height: 0;*/
      flex-shrink: 1;
      padding: 0 0 50px 30px;
    }

    .c {
      background-color: #ff0000;
      height: 20px;
      /*flex-shrink: 0;*/
    }
  </style>
</head>
<body>
<div class="p">
  <div class="a"></div>
  <div class="b">
    是是是<br>
    是是是<br>
    是是是<br>
    是是是<br>
    是是是<br>
    是是是<br>
    是是是<br>
    是是是<br>
    是是是<br>
    是是是<br>
    是是是<br>
    是是是<br>
    是是是<br>
    是是是<br>
    是是是<br>
    是是是<br>
    是是是<br>
    是是是<br>
    是是是<br>
    是是是<br>
  </div>
  <div class="c"></div>
</div>
</body>
</html>

如上面代码。DIV设置flex上下布局,父布局是固定高度,中间一个元素是flex:1;会出现padding-bottom失效,但是其他3个padding是正常的。请教如何修改?谢谢

8月30日补充:
想要的效果
图片.png

最外面是el-dialog flex布局,高度固定。上下蓝色的是header和footer区域、自适应高度,中间红色是body主体区域、flex:1占剩余高度,灰色为内容显示的区域。也就是说body需要设置padding,但是目前的效果是padding-left top right都正常,就是padding-bottom没效果
下面是实际效果。中间绿色框是Body,黑色是设置padding:20px;之后的实际显示区域
图片.png

阅读 1.7k
1 个回答

image.png

效果看上去没毛病啊。padding也没看出来你要干嘛,删了不就完事了。

你要的莫非是 margin?
image.png

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题