当前位置: 首页 > 面试题库 >

CSS网格-自动调整高度行,调整内容大小

方子安
2023-03-14
问题内容

我在一个网格中嵌套了两个网格。不幸的是,右边的嵌套网格.grid-3设置行的高度,以使左边和右边的网格都具有相同的高度,额外的空间在class的div之间共享.right。如何设置右侧嵌套网格的行以调整内容的大小,使其与左侧嵌套行的高度相同?

div {

  border: 1px dotted black;

}

.grid-2 {

  display: grid;

  grid-template-columns: repeat(2, 1fr);

  grid-auto-rows auto;

}



.grid-3 {

  display: grid;

  grid-template-columns: 1fr 1fr 1fr;

  grid-auto-rows auto;

}



.left {

  background-color: red;

}



.right {

  background-color: green;

}


<div class="grid-2">

      <div class="grid-2">

        <div class="left">L</div>

        <div class="left">L</div>

        <div class="left">L</div>

        <div class="left">L</div>

        <div class="left">L</div>

        <div class="left">L</div>

        <div class="left">L</div>

        <div class="left">L</div>

        <div class="left">L</div>

        <div class="left">L</div>

        <div class="left">L</div>

        <div class="left">L</div>

        <div class="left">L</div>

        <div class="left">L</div>

        <div class="left">L</div>

        <div class="left">L</div>

        <div class="left">L</div>

        <div class="left">L</div>

     </div>

     <div class="grid-3">

         <div class="right">R</div>

        <div class="right">R</div>

        <div class="right">R</div>

        <div class="right">R</div>

        <div class="right">R</div>

        <div class="right">R</div>

        <div class="right">R</div>

        <div class="right">R</div>

        <div class="right">R</div>

        <div class="right">R</div>

        <div class="right">R</div>

        <div class="right">R</div>

        <div class="right">R</div>

     </div>

</div>

问题答案:

您可以尝试minmax(min-content, max-content) 参考

div {

  border: 1px dotted black;

}

.grid-2 {

  display: grid;

  grid-template-columns: repeat(2, 1fr);

  grid-auto-rows: minmax(min-content, max-content);

}



.grid-3 {

  display: grid;

  grid-template-columns: 1fr 1fr 1fr;

  grid-auto-rows: minmax(min-content, max-content);

}



.left {

  background-color: red;

}



.right {

  background-color: green;

}


<div class="grid-2">

      <div class="grid-2">

        <div class="left">L</div>

        <div class="left">L</div>

        <div class="left">L</div>

        <div class="left">L</div>

        <div class="left">L</div>

        <div class="left">L</div>

        <div class="left">L</div>

        <div class="left">L</div>

        <div class="left">L</div>

        <div class="left">L</div>

        <div class="left">L</div>

        <div class="left">L</div>

        <div class="left">L</div>

        <div class="left">L</div>

        <div class="left">L</div>

        <div class="left">L</div>

        <div class="left">L</div>

        <div class="left">L</div>

     </div>

     <div class="grid-3">

         <div class="right">R</div>

        <div class="right">R</div>

        <div class="right">R</div>

        <div class="right">R</div>

        <div class="right">R</div>

        <div class="right">R</div>

        <div class="right">R</div>

        <div class="right">R</div>

        <div class="right">R</div>

        <div class="right">R</div>

        <div class="right">R</div>

        <div class="right">R</div>

        <div class="right">R</div>

     </div>

</div>

您也可以只使用max-contentmin-content

div {

  border: 1px dotted black;

}

.grid-2 {

  display: grid;

  grid-template-columns: repeat(2, 1fr);

  grid-auto-rows: max-content; /* min-content*/

}



.grid-3 {

  display: grid;

  grid-template-columns: 1fr 1fr 1fr;

  grid-auto-rows: max-content; /* min-content*/

}



.left {

  background-color: red;

}



.right {

  background-color: green;

}


<div class="grid-2">

      <div class="grid-2">

        <div class="left">L</div>

        <div class="left">L</div>

        <div class="left">L</div>

        <div class="left">L</div>

        <div class="left">L</div>

        <div class="left">L</div>

        <div class="left">L</div>

        <div class="left">L</div>

        <div class="left">L</div>

        <div class="left">L</div>

        <div class="left">L</div>

        <div class="left">L</div>

        <div class="left">L</div>

        <div class="left">L</div>

        <div class="left">L</div>

        <div class="left">L</div>

        <div class="left">L</div>

        <div class="left">L</div>

     </div>

     <div class="grid-3">

         <div class="right">R</div>

        <div class="right">R</div>

        <div class="right">R</div>

        <div class="right">R</div>

        <div class="right">R</div>

        <div class="right">R</div>

        <div class="right">R</div>

        <div class="right">R</div>

        <div class="right">R</div>

        <div class="right">R</div>

        <div class="right">R</div>

        <div class="right">R</div>

        <div class="right">R</div>

     </div>

</div>


 类似资料:
  • 我目前正在做一个项目,我找不到任何解决方案。我希望Gridpane行的高度从该行中一个特定列的宽度动态计算。整个Gridpane必须可调整大小,其余可用空间应位于下面的另一行,以便根据该单元格内的元素保留该单元格的纵横比。孩子们,有什么想法吗? 我希望单元格1,0和1,1可以调整大小,并且通过增加其宽度,可以清楚地看到第0行和第1行的高度不应该平均增加。如果还剩下任何高度,我希望第3行可以承受,因

  • 问题内容: 现在,我有一个从外部页面读取的jQuery UI弹出对话框。此页面通过flowplayer从另一个具有视频的外部读取。 我正在使用iframe将视频嵌入到第一个视频中: 100%的宽度似乎没问题,但100%的高度无效。有没有解决的办法? 我在哪里以及如何嵌入代码以及ID内容。请任何人帮忙? 问题答案: 如果要使用100%而不是像素值,则必须使用某种JavaScript来动态调整ifra

  • 我有一个用flexbox制作的单杠。 如果有2个或更多的项目,我希望每个项目尽可能分开,所以我设置。 但是如果只有一个项目,我希望该项目放在末尾,因此我设置了。 这些物品是从左到右排序的。因此,设置将不起作用。 我如何结合第一,第二

  • 我正在使用Apache POI将值输入电子表格。这些值有换行符,我能够成功地使用这段代码: 不幸的是,虽然文本包装正确,但行的高度并不总是增长到足以显示内容。如何确保我的行始终保持正确的高度?

  • 如何制作此网格: 它不起作用,我明白了: 我发现了这个:点击 但GXT 3。*没有FitLayout 有什么想法吗?

  • 本文向大家介绍iframe如何自动调整高度?相关面试题,主要包含被问及iframe如何自动调整高度?时的应答技巧和注意事项,需要的朋友参考一下 未跨域时,在iframe中利用他的父窗口对象将本页面的滚动高度设置给iframe的height 跨域时,在iframe中将自己的的滚动高设置在本页面内的一个隐藏于父页面不跨域的iframe的hash值, 在隐藏的iframe中将值取出,同未跨域一样设置到要