css - 使 div 在 flexbox 中可滚动并将 textarea 的大小调整为空间
问题描述
您好,我有一个带有三个孩子的 Flexbox 容器。第一个有一个textarea
类似的指示。但是textarea
,子元素的 超过了父元素。它只应该在子元素的父元素内。
其次,我想让内容在孩子 2 和 3 中可滚动。许多小时的搜索无法给我任何解决方案。
你是否有一个?
提前感谢您提供有用的答案。
.flex-rows {
display: flex;
flex-direction: column;
}
.flex--1 {
flex: 1 1 auto;
}
.parent {
height: 250px;
width: 100%;
}
.child1,
.child2,
.child3 {
float: left;
display: inline-block;
height: 100%;
margin: 0px;
padding: 0px;
}
.child1 {
background-color: blue;
width: calc(100% - 253px);
}
.child1>*,
.child1>*>* {
width: 100%;
display: block;
height: 100%;
}
.child2 {
background-color: green;
width: 100px;
}
.child3 {
background-color: red;
width: 150px;
}
<div class="parent flex-rows">
<div>
<button class="button button1">10px 24px</button>
<button class="button button2">12px 28px</button>
</div>
<div class="flex--1">
<div class="child1">
<div><textarea></textarea></div>
</div>
<div class="child2"></div>
<div class="child3"></div>
</div>
</div>
解决方案
为了使内容.child2
可.child3
滚动,您需要在每个元素上设置高度height: 250px;
和。overflow-y: scroll;
此外,您textarea
超出了父级,因为它的填充给了它一些额外的高度。设置box-sizing: border-box;
为.child3 textarea
使填充包含在元素的高度中。请参阅:https ://developer.mozilla.org/en-US/docs/Web/CSS/box-sizing
.flex-rows {
display: flex;
flex-direction: column;
}
.flex--1 {
flex: 1 1 auto;
}
.parent {
height: 250px;
width: 100%;
}
.child1,
.child2,
.child3 {
float: left;
display: inline-block;
height: 100%;
margin: 0px;
padding: 0px;
}
.child1 {
background-color: blue;
width: calc(100% - 253px);
}
.child1>*,
.child1>*>* {
width: 100%;
display: block;
height: 100%;
}
.child2 {
background-color: green;
width: 100px;
}
.child3 {
background-color: red;
width: 150px;
}
.child2, .child3 {
height: 250px;
overflow-y: scroll;
}
.child1 textarea {
box-sizing: border-box;
}
<div class="parent flex-rows">
<div>
<button class="button button1">10px 24px</button>
<button class="button button2">12px 28px</button>
</div>
<div class="flex--1">
<div class="child1">
<div><textarea></textarea></div>
</div>
<div class="child2">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quisque auctor ultricies eros id accumsan. Quisque at leo leo. Sed metus quam, dictum nec auctor at, hendrerit et felis. In molestie pulvinar lectus eget feugiat. Curabitur ligula quam, ullamcorper ut pharetra non, vestibulum at nulla. Curabitur vehicula at neque bibendum mattis. Ut cursus libero odio, ac molestie tortor eleifend in. Phasellus quis velit eu metus tristique tincidunt id a nisi. Sed ac massa dignissim eros consequat iaculis et non mi. Suspendisse magna metus, convallis at sollicitudin sed, fringilla eget mi.</div>
<div class="child3">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quisque auctor ultricies eros id accumsan. Quisque at leo leo. Sed metus quam, dictum nec auctor at, hendrerit et felis. In molestie pulvinar lectus eget feugiat. Curabitur ligula quam, ullamcorper ut pharetra non, vestibulum at nulla. Curabitur vehicula at neque bibendum mattis. Ut cursus libero odio, ac molestie tortor eleifend in. Phasellus quis velit eu metus tristique tincidunt id a nisi. Sed ac massa dignissim eros consequat iaculis et non mi. Suspendisse magna metus, convallis at sollicitudin sed, fringilla eget mi.Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quisque auctor ultricies eros id accumsan. Quisque at leo leo. Sed metus quam, dictum nec auctor at, hendrerit et felis. In molestie pulvinar lectus eget feugiat. Curabitur ligula quam, ullamcorper ut pharetra non, vestibulum at nulla. Curabitur vehicula at neque bibendum mattis. Ut cursus libero odio, ac molestie tortor eleifend in. Phasellus quis velit eu metus tristique tincidunt id a nisi. Sed ac massa dignissim eros consequat iaculis et non mi. Suspendisse magna metus, convallis at sollicitudin sed, fringilla eget mi.</div>
</div>
</div>
推荐阅读
- android - 无法正确处理房间迁移
- firebase - Firebase onCall 函数可以执行重试吗?
- c# - 如何捕获 URL 输入并将其附加到剃须刀页面中的文本框?
- git - scm 仅检查具有匹配正则表达式模式的特定分支
- c# - 从非托管 C DLL 转换混合类型返回数据?
- html - 无法与 django 代码一起运行 Vue.js 3
- python - 试图求解一个线性方程组,其中我的一个输出是未知的,但我知道它需要最大化
- amazon-web-services - 是什么导致 EC2 实例停止?
- html - 为什么我的 insertBefore() 只添加 1 个元素?
- parse-platform - Parse JS - 如何获取用户有权访问的 ACL 列表?