div+css 父容器是自动高度,几个子容器也是自动高度,怎样兼容浏览器,父容器自适应高度?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了div+css 父容器是自动高度,几个子容器也是自动高度,怎样兼容浏览器,父容器自适应高度?相关的知识,希望对你有一定的参考价值。

参考技术A 高度自适应的,兼容什么浏览器?

是否可能有一个CSS网格……增大它的高度以动态适应父容器? [重复]

这不是建议的类似问题的重复,因为其他问题未考虑网格容器。

我试图查看是否可以增加网格的高度以填充父容器的高度。

我尝试过的:

  • 我已经尝试在网格容器和子div上设置100%的高度/最小高度。

  • 100vh不是解决方案,因为它不是动态的。

我对如何执行此操作有些犹豫,如果可能的话。

对此非常感谢。谢谢!

我创建了一个CodePen,试图在这里解决这个问题:

https://codepen.io/fylzero/pen/bGGvBPa

HTML

<div class="flex">
  <div class="grid">
    <div>content</div>
    <div>content</div>
    <div>content</div>
    <div>content</div>
  </div>
</div>

CSS

html, body 
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  min-height: 100%;


.flex 
  display: flex;
  padding: 10px;

  flex-direction: column;
  flex: 1 1 auto;
  min-height: 100%;
  outline: 1px solid red;


.grid 
  display: grid;
  padding: 10px;

  height: 100%; /* THIS DOESN'T DO IT */

  grid-template-columns: 1fr minmax(auto, 400px) minmax(auto, 800px) 1fr;
  grid-template-rows: 1fr;
  grid-column-gap: 0px;
  grid-row-gap: 0px;
  outline: 1px solid green;


.grid div 
  padding: 10px;
  outline: 1px solid blue;

答案

您是否试图将div在包装器内居中?如果是这样,只需对其应用justify-content: center

这里正在起作用:

<head> 
  <style>
  html, body 
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  min-height: 100%;


.flex 
  display: flex;
  padding: 10px;
  
  flex-direction: column;
  flex: 1 1 auto;
  min-height: 100%;
  outline: 1px solid red;


.grid 
  display: grid;
  padding: 10px;

  height: 100%; /* THIS DOESN'T DO IT */
  
  grid-template-columns: 1fr minmax(auto, 400px) minmax(auto, 800px) 1fr;
  grid-template-rows: 1fr;
  grid-column-gap: 0px;
  grid-row-gap: 0px;
  outline: 1px solid green;


.grid div 
  padding: 10px;
  outline: 1px solid blue;


.wrapper 
  outline: 1px solid orange;
  display: flex;
  
  flex-direction: column;
  flex: 1 1 auto;
  min-height: 100%;
  
  justify-content: center;

  </style>
</head>

<body>
<div class="flex">
  <div class="wrapper">
    <div class="grid">
      <div>content</div>
      <div>content</div>
      <div>content</div>
      <div>content</div>
    </div>
  </div>
</div>
</body>

以上是关于div+css 父容器是自动高度,几个子容器也是自动高度,怎样兼容浏览器,父容器自适应高度?的主要内容,如果未能解决你的问题,请参考以下文章

Div 高度自适应填充父容器

CSS如何让父容器的高度随着子容器的内容而自动变化!~求解

请教css高手:子容器高度占满父容器高度应该怎么做?

请教css高手:子容器高度占满父容器高度应该怎么做?

div css怎么让子容器超出父容器

请问:在css+div中,父容器宽度自适应,里面的子容器居右显示(向右浮动),怎么实现?谢谢!