如何保持CSS网格单元的最小和最大大小不变

时间:2019-02-18 19:07:13

标签: html css css-grid

我正在尝试使用CSS网格构建绝对固定的布局。 具有GUI元素和文本字段的嵌入式应用程序的layout。不应更改单元格的大小并重新调整其大小,并且如果文本字段的内容溢出,则会出现滚动条,否则整个GUI都会出错。 无论如何,我的细胞都会随着内容的增长/缩小而改变大小并重新调整。

设置:

*           Desired FIXED layout 
*    +------------------------+----------------------+
*    |                        |       2              |
*    |                        |----------------------|
*    |                        |       3              |
*    |                        |----------------------|
*    |                        |                      |
*    |                        |                      |
*    |                        |                      |
*    |         1              |                      |
*    |                        |       4              |
*    |                        |                      |
*    |                        |                      |
*    |                        |                      |
*    |                        |                      |
*    |                        |                      |
*    |                        |                      |
*    |                        |                      |
*    |------------------------+----------------------|
*    |                        |       6              |
*    |         5              |                      |
*    |                        |----------------------|
*    |                        |       7              |
*    +------------------------+----------------------+

这是我的MWE。根据先前的SX问题,我在容器中将minwidth和minheight设置为0,但这似乎没有效果(也在项目中尝试过,结果相同)。 (浏览器为FF 66开发版,如果有关系的话)

.container {
  display: grid;
  grid-template-row: 70px 70px 310px 110px 30px;
  grid-template-column: 450px 350px;
  background: #FAEBD7;
  height: 590px;
  width: 700px;
  min-height: 0;
  min-width: 0;
}

.item1 {
  grid-column-start: 1;
  grid-column-end: 2;
  grid-row-start: 1;
  grid-row-end: 4;
  background: #675443;
}

.item2 {
  grid-column-start: 2;
  grid-column-end: 3;
  grid-row-start: 1;
  grid-row-end: 2;
  background: #42676B;
}

.item3 {
  grid-column-start: 2;
  grid-column-end: 3;
  grid-row-start: 2;
  grid-row-end: 3;
  background: #466567;
}

.item4 {
  grid-column-start: 2;
  grid-column-end: 3;
  grid-row-start: 3;
  grid-row-end: 4;
  background: #BABBAB;
}

.item5 {
  grid-column-start: 1;
  grid-column-end: 2;
  grid-row-start: 4;
  grid-row-end: 6;
  background: #FFD700;
}

.item6 {
  grid-column-start: 2;
  grid-column-end: 3;
  grid-row-start: 4;
  grid-row-end: 5;
  background: #FF69B4;
}

.item7 {
  grid-column-start: 2;
  grid-column-end: 3;
  grid-row-start: 5;
  grid-row-end: 6;
  background: #ADFF2F;
}
<div class="container">
  <div class="item1">1 - Dark brown</div>
  <div class="item2">2 - Bluish gray Gray</div>
  <div class="item3">3 - Dark grey</div>
  <div class="item4">4 - Warm grayish</div>
  <div class="item5">5 - Gold (test)</div>
  <div class="item6">6 - Hot pink (test)</div>
  <div class="item7">7 - Green/Yellow (test)</div>
</div>

1 个答案:

答案 0 :(得分:0)

1)将grid-template-rowgrid-template-column更改为grid-template-rowsgrid-template-columns-在您更改这些大小之前,所有大小调整均不起作用。

2)将overflow : auto ;添加到每个项目CSS规则。如果需要滚动条,将为您提供滚动条;如果不需要滚动条,则将其隐藏。