css 布局难题:使用 flex 或 grid 排列 html 元素
考虑以下 html 结构:
<div>
<em>1</em>
<em>2</em>
<em>3</em>
<em>4</em>
</div>
我们希望在不改变 html 结构的情况下,使用 flex 或 grid 布局,将元素排列成如下效果:
- 1 和 4 自适应大小
- 2 和 3 成两行,占剩余空间
flex 布局
在 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;
}
- 将 div 设为 flex 容器,元素按 flex 布局排列。
- 1 和 4 设置为 flex 项目,flex-grow 允许它们自适应大小。
- 2 和 3 设置为嵌套的 flex 容器,flex-direction 为 column,指定垂直排列。
grid 布局
在 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;
}
- 将 div 设为 grid 容器,元素按 grid 布局排列。
- 设置 grid-template-columns 为 3 列,其中中间列为自适应大小。
- 1 和 4 占两行,2 和 3 占其中一行。
以上就是如何使用 flex 或 grid 布局将 HTML 元素排列成指定效果?的详细内容,更多请关注知识资源分享宝库其它相关文章!
版权声明
本站内容来源于互联网搬运,
仅限用于小范围内传播学习,请在下载后24小时内删除,
如果有侵权内容、不妥之处,请第一时间联系我们删除。敬请谅解!
E-mail:dpw1001@163.com
发表评论