html - 包装时如何制作不同大小的弹性项目以填充父项
问题描述
我有以下模板:
<div id="row">
<div id="longer"></div>
<div id="shorter"></div>
</div>
当它们在同一行时,我希望longer
宽度是 的两倍shorter
,所以我应用了以下 CSS:
#row {
display: flex;
flex-wrap: wrap;
}
#longer {
flex: 1 0;
}
#shorter {
flex: 0.5 0;
}
这看起来工作正常,但是当shorter
被包装时,它只占用新行的 50%,即使它是该行中唯一的项目。
如果它是该行中唯一的项目,我想shorter
填充整行。
这是否可以在没有媒体查询的情况下实现?
解决方案
如果孩子的flex-grow
值之和小于 1,它们将不会填满整个父母的宽度,而只会填满相应的分数。
您可以将它们乘以相同的比例,使它们至少为 1:
#row {
display: flex;
flex-wrap: wrap;
}
#longer {
flex: 2 0;
}
#shorter {
flex: 1 0;
}
/* Just for demo */
#row div {
white-space: nowrap;
}
#row div:nth-child(1) {
background: green;
}
#row div:nth-child(2) {
background: red;
}
<div id="row">
<div id="longer">Lorem ipsum dolor sit amet, consectetur adipiscing elit.</div>
<div id="shorter">Lorem ipsum dolor sit amet, consectetur adipiscing elit.</div>
</div>
推荐阅读
- python - 返回数据帧的函数会覆盖先前的变量分配
- javascript - 如何在使用 ES6 模块时将函数分配给窗口对象?
- python - AUTH_USER_MODEL 指的是尚未安装的模型'core.User'
- c++ - 我不明白如何在 .txt 文件字符串输入中使用 toupper 和 isalpha
- php - 如何根据 HTML 输入值在 TCPDF 中设置 CSS 样式?
- swift - 如何正确应用在我的代码中捕获错误?Swift Xcode 清洁架构
- hl7-fhir - 在 FHIR 资源上添加对外部 PDF 的引用
- android - Android:如何在没有滚动功能的列表中显示所有项目
- python - Python Flask - “检查用户名是否存在于 MySQL 数据库中”
- android - 如何将 XP 积分添加到 Google Play 游戏?