html - 将元素高度设置为跟随显示 flex 行中的兄弟高度
问题描述
我的项目中有以下结构:
<div class="container">
<div class="super-child">
<div class="uneditable">
<div class="A"><div>
</div>
<div class="uneditable">
<div class="B"></div>
</div>
</div>
...
</div>
我对这种结构有以下限制:
- 容器类必须是显示 flex 并且处于列模式
- 超子类必须是 display flex 并处于 row 模式
- uneditable类根本无法接收任何样式,只是它们的高度和宽度为 100%
我要做的是设置这种结构的样式,以便A类的主要高度超过B,也就是说,如果A高度增加,B将有更多的高度来匹配A 的高度,如果A更小,B将具有相同的高度高度为A
我试图在A和B类中设置增长和收缩值。我也可以将显示更改为网格,但在我的情况下不是首选。
有没有办法在不使用 javascript 来设置元素样式的情况下使这种高度依赖?
[更新]
在这里找到了我的问题的答案。解决方案是对 super-child 的所有孩子使用以下样式,除了第一个。
height: 0;
min-height: 100%;
之所以有效,是因为高度定义的这种结合可以理解为“没有高度,只是足够扩展而不突破边界”
解决方案
...我会为此使用网格,而不是 flex并注意结束标记:),flex 将需要一些 js 来更新高度:
列中的示例,因为在一行中不应该是一个问题
.super-child {
display: grid;
grid-auto-rows: 1fr;
}
.super-child > .uneditable {
border: solid;
}
<div class="container">
<div class="super-child">
<div class="uneditable">
<div class="A">A <br> AA</div>
</div>
<div class="uneditable">
<div class="B"> B</div>
</div>
</div>
</div>
<hr>
<div class="container">
<div class="super-child">
<div class="uneditable">
<div class="A">A </div>
</div>
<div class="uneditable">
<div class="B"> B<br> BB</div>
</div>
</div>
</div>
...并排:
.super-child {
display: flex;
}
.super-child > .uneditable {
border: solid;
flex:1;
/* demo purpose to resize heights */
overflow-y:scroll;
resize:vertical
}
<div class="container">
<div class="super-child">
<div class="uneditable">
<div class="A">A <br> AA</div>
</div>
<div class="uneditable">
<div class="B"> B</div>
</div>
</div>
</div>
<hr>
<div class="container">
<div class="super-child">
<div class="uneditable">
<div class="A">A </div>
</div>
<div class="uneditable">
<div class="B"> B<br> BB</div>
</div>
</div>
</div>
推荐阅读
- idl-programming-language - 使用 idl 的曲线下面积
- r - 将预测值添加到原始 df
- python - 如何更改 kivy Graph 的背景颜色?
- javascript - 从输入中检索数据 - laravel
- xslt - 按类型分组的 xslt 字段
- java - 如何使用 CSS 选择器在元素之间进行选择
- error-handling - 无法在 Gerrit 中加载插件事件日志
- mongodb - 在 MongoDB 中获取文档的一部分
- android - 发生内部错误。[ MISSING_CLIENT_IDENTIFIER ]
- javascript - html5 文件输入 - 如何使用 javascript 更改文件文本的颜色?