使用flex布局的自定义控件放入表格后文本输入框无法自适应宽度怎么办
解决方案
需要补充三处配置即可实现自适应拉伸:
- 给flex容器
.useFlex添加width: 100%属性,确保容器先撑满父元素td的宽度:flex容器默认宽度仅由内部内容撑开,不会自动占满父容器宽度。 - 给TextInput组件的根元素添加
flex: 1属性,让输入框自动占用flex容器内除Icon之外的所有剩余宽度,同时补充min-width: 0、width: 100%属性,避免输入框默认内容宽度撑破弹性布局,保证它在分配的弹性空间内自适应。 - 给外层宽度100%的Table添加
table-layout: fixed属性,固定表格布局规则,避免单元格宽度随内容自动收缩,保证td的宽度符合预期。
修改后完整代码如下:
组件代码
return ( <div className="useFlex"> {/* 若使用组件库的TextInput,可直接通过style属性传入样式 */} <TextInput style={{flex: 1, minWidth: 0, width: '100%'}}></TextInput> <div> <Icon></Icon> </div> </div> );
样式代码
.useFlex { display: flex; width: 100%; /* 可选:调整输入框和图标之间的间距 */ gap: 8px; } /* 外层表格样式补充 */ table { width: 100%; table-layout: fixed; }
内容的提问来源于stack exchange,提问作者V R
相关产品推荐
相关产品推荐

