容器属性:flex-direction(主轴方向)、flex-wrap(是否换行)、justify-content(主轴对齐)、align-items(交叉轴对齐)、align-content(多行对齐)、gap(项目间距)
子项属性:flex-grow(放大比例)、flex-shrink(缩小比例)、flex-basis(初始大小)、align-self(单独对齐)、order(排列顺序)
常见组合:display:flex; align-items:center; justify-content:center; 实现完美的水平和垂直居中。这是Web开发中最常用的flexbox用法。
简单原则:如果只需要一行或一列排列,用Flexbox;如果需要二维网格(同时控制行和列),用Grid。Flexbox适合导航栏、标签列表、居中布局、卡片横向排列等。Grid适合整体页面布局、图片画廊、仪表板等。
gap在Flexbox中的支持从2021年起已得到所有现代浏览器的支持(Chrome 91+、Firefox 63+、Safari 14.1+)。如果需要兼容更老的浏览器,可以使用margin来模拟间距效果。
flex:1 是 flex-grow:1 flex-shrink:1 flex-basis:0% 的简写。表示项目会等分剩余空间,所有设置flex:1的项目将平分容器宽度。是等分布局最常用的写法。
align-items控制单行内项目的对齐方式。align-content控制多行/多列整体在交叉轴上的对齐方式,只在flex-wrap:wrap且有多行时生效。简单说:align-items控制每行内部,align-content控制行与行的整体分布。
纯前端应用,加载后断开网络也能正常使用。所有计算在浏览器本地完成。