CSS 布局
CSS layout - Learn web development | MDN
左侧定宽,右侧自适应
flex-grow: 1;
width: calc(100vw - 200px)
grid-template-columns: 200px 1fr;
table 结构化内容
- html 同样有表格标签,但不建议用,使用 css table 可以只使用需要的特性,灵活
- flex 也能实现,table 兼容性更好
- seo、性能有问题?
- 最常用场景,动态高度下,实现垂直居中。通过声明
table-cell
,使vertical-align
可用
css
.box {
display: table-cell;
vertical-align: middle;
text-align: center;
}
.box {
display: table;
margin: auto;
}
- 媒体查询,利用 table 属性,调整排序
css
/* 768px */
@media only screen and (max-width:48em) {
.boxes {
display:table;
width:100%;
}
.box {
display:block;
width:100%;
}
.three { display:table-caption; }
.four { display:table-header-group; }
.one { display:table-footer-group; }
}
The Anti-hero of CSS Layout - "display:table" | Colin TohSolved by Flexbox — Cleaner, hack-free CSS
列表水平排列带 gap wrap
css
.list {
display: flex;
justify-content: space-between;
flex-wrap: wrap;
}
.item {
width: calc(25% - 0.02rem);
}
Grid VS Flexbox
Flexbox 非常适合一维布局,但是对于其它一切,我只会使用使用 Flexbox 如果不能用 Grid 的话。
Flexbox 是内容驱动的。 渐进式渲染会在发现盒子时,给你提供不稳定的布局。 Grid 允许你预先定义布局,因此渐进式渲染可以保持稳定。
Grid 现在除了 IE,都有很好兼容性
Don't use flexbox for overall page layout - JakeArchibald.com