请教一下CSS布局排列写法?
<div>
<em>1</em>
<em>2</em>
<em>3</em>
<em>4</em>
</div>
不改变HTML下如何使用flex或grid,将其排列成下列效果?1和4自适应,2与3成上下两行,占剩余空间。
回复
1个回答

test
2024-06-27
用flex布局:
div {
display: flex;
justify-content: space-between;
}
em:nth-child(2), em:nth-child(3) {
flex-grow: 1;
display: flex;
flex-direction: column;
justify-content: space-between;
}
grid布局:
div {
display: grid;
grid-template-columns: auto 1fr auto;
grid-template-rows: auto auto;
}
em:nth-child(1) {
grid-column: 1;
grid-row: 1 / span 2;
}
em:nth-child(2) {
grid-column: 2;
grid-row: 1;
}
em:nth-child(3) {
grid-column: 2;
grid-row: 2;
}
em:nth-child(4) {
grid-column: 3;
grid-row: 1 / span 2;
}
回复

适合作为回答的
- 经过验证的有效解决办法
- 自己的经验指引,对解决问题有帮助
- 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
- 询问内容细节或回复楼层
- 与题目无关的内容
- “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容