首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使一个网格列中的一个组件相对于单个列中的其他两个组件的高度进行调整?

如何使一个网格列中的一个组件相对于单个列中的其他两个组件的高度进行调整?
EN

Stack Overflow用户
提问于 2020-01-07 17:46:20
回答 1查看 60关注 0票数 0

我有两个网格列。第一个网格列有两个项目(div-1和div-2)。第二列有一项(div-3)。我想让div-3的高度随着div-1div-2的变化而调整。

这样两列的高度将与下面的css相同。

代码语言:javascript
复制
<Grid>
<GridItem>
  <Grid>
   <GridItem >
     <SomeComponent className="div-1"/>
   </GridItem>
   <GridItem >
     <SomeComponent className="div-2"/>
   </GridItem>
  </Grid>
</GridItem>
<GridItem >
  <Grid>
   <GridItem>
     <SomeComponent className="div-3"/> 
   </GridItem>
  </Grid>
</GridItem>
</Grid>

当前css:

代码语言:javascript
复制
.div-1 {
  max-height: 19rem;
  min-height: 6rem;
  overflow-x: hidden;
  overflow-y: auto;
}

.div-3 {
  max-height: 30rem;
  overflow-x: hidden;
  overflow-y: auto;
}

我尝试在react中使用useRef,但在组件之间传递状态时遇到了问题。有些项目需要显示滚动条,我不想删除它。

EN

回答 1

Stack Overflow用户

发布于 2020-01-07 18:15:49

这是CSS网格的一个经典用例。

它不是react,但将其转换为您的项目应该不会太难。

代码语言:javascript
复制
<div class="grid">
  <div class="item item1">1<br />asdqwe</div>
  <div class="item item2">2</div>
  <div class="item item3">3</div>
</div>

而神奇的事情发生在CSS中

代码语言:javascript
复制
.grid {
  display: grid;
  grid-template-columns: 1fr 1fr; /* create grid with 2 dynamic columns */
}
.item3 {
  grid-row: 1 / span 30; /* span 30 rows just to be sure the 3rd item really spans all rows */
  grid-column-start: 2; /* set it to show up in the second column */
}

演示代码为:https://jsfiddle.net/7vga2yqc/2/的JSFiddle

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59625845

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档