html - Flexbox - 在自己的行上有项目,但只有 50% 宽
问题描述
我有一个表格,类似于这个布局:
.flex-parent {
display: flex;
flex-wrap: wrap;
}
.flex-child {
flex-basis: 50%;
}
.flex-child:nth-child(-n+3) {
flex: 1 0 100%;
}
.flex-child:nth-last-child(-n+3) {
flex-basis: 50%;
/* hacks to force element onto next line below */
/* margin-right: 1px; */
/* or */
/* flex-basis: 51% */
}
<div class="flex-parent">
<div class="flex-child">
<div style="background-color: #46DBFF;">1</div>
</div>
<div class="flex-child">
<div style="background-color: rgb(55, 165, 192);">2</div>
</div>
<div class="flex-child">
<div style="background-color: #46DBFF;">3</div>
</div>
<div class="flex-child">
<div style="background-color: rgb(55, 165, 192);">4</div>
</div>
<div class="flex-child">
<div style="background-color: #46DBFF;">5</div>
</div>
<div class="flex-child">
<div style="background-color: rgb(55, 165, 192);">6</div>
</div>
</div>
我想要的是第 5 项坐在第 4 项下而不是在它旁边没有任何狡猾的黑客
我不能过多地更改 html 或 css,但类 .flex-child:nth-last-child(-n+3) 中的某些东西会是理想的。
有没有一种很好的灵活方式来实现这一点?
有任何想法吗?
干杯
解决方案
您可以将 flex-parent 的 flex-direction 更改为 column,然后将 flex-child 元素的宽度更改为 50%。这样它就不是一个肮脏的黑客,你不必改变太多。
.flex-parent {
display: flex;
flex-wrap: wrap;
flex-direction: column;
}
.flex-child:nth-last-child(-n+3) {
width: 50%;
}
(我删除了所有不必要的 CSS 定义)
祝你好运!
推荐阅读
- spring-mvc - Saml 2.0 与 Spring MVC ui Extjs 的集成
- sql - 编辑 GeoJSON 解析代码以在 SQL 中解析 JSON 代码
- laravel - 发送事件时出错 - laravel websocket ssl
- swift - AppClip 如何从 URL 中获取查询项
- java - ResponseEntity 不接受文本/csv:SpringBoot
- amazon-web-services - AWS S3 + Cloudfront URL 验证 (CORS?)
- flutter - 颤振升级 - 未能在“/Users/.../.config/flutter”创建目录。- Flutter 守护进程已终止
- html - 如何确保 input:date 有效?
- osgi - 菲利克斯 v7.0.0 | 如果所需插件失败,ConfigAdmin v1.9.20 将无法使用
- javascript - Discord bot 有时不会向用户添加角色