基本概念
- 两个轴:主轴和侧轴。主轴是指x轴,侧轴是指y轴
- 两个点:起点和终点 主轴和侧轴都有起点和终点,用来定义子元素的对齐方式
- 两个对象:容器和子元素
父元素属性
- 父元素主要属性介绍(实现父元素效果时 子元素时不需要进行其他代码的操作的)
1. flex-direction:设置主轴的方向
2. justify-content:设置主轴上的子元素排列方式
3. flex-wrap:设置子元素是否换行(多行)
4. align-items:设置侧轴上的子元素排列方式(单行)
5. align-content:设置多行子元素的侧轴对齐方式
6. flex-flow:复合属性,相当于同时设置了flex-direction和flex-wrap
- flex-direction属性
flex-direction:row | row-reverse | column | column-reverse
效果依次为:
- justify-content属性 justify-content用来定义子元素在水平轴的排布方式
justify-content:flex-start | flex-end | center | space-around | space-between
效果分别是:
- flew-wrap属性 flex布局默认是不换行的,宽度不够会对盒子进行压缩,flew-wrap可以定义换行
flex-wrap:nowrap | wrap
效果分别是:
6. align-items属性
align-items只能定义单行子元素的侧轴对齐方式,多行使用时,结果会与预期不符
align-items: flex-start | flex-end | center | stretch
//code show
<style>
.body {
display: flex;
border: 1px solid green;
align-items: stretch;
width: 300px;
height: 500px;
}
.content {
border: 1px solid red;
width: 100px;
height: 100px;
}
</style>
<body>
<div class="body">
<div class="content">1</div>
<div class="content">2</div>
</div>
</body>
效果图如下
- align-content属性
align-content: flex-start | flex-end | center | space-around | space-between | strech
总上:align-item,用于单行文本的排布,一行中每一个元素都应用排布方式,在多行排布时会应用到每一行;
align-content,只能应用多行排布,对整行排布起作用,不影响行内的元素。单行排布不起作用。
子元素属性
!!注意:子元素的属性需要加在自身,不能加在父元素上。
- align-self:定义子项自身在侧轴的排布
- order:改变子元素顺序
- flex:定义子元素缩放和拉伸比例
- flex-grow定义元素拉伸比例
- flex-shrink定义压缩比例