CSS布局之flex弹性布局

1、Flex简介

Flex 是 Flexible Box的缩写, 意思是"弹性布局", 用来为盒状模型提供最大的布局灵活性,任何一个容器都可以设置为Flex布局模式。

/* 块元素可以设置为Flex容器 */
.container {
  display: flex;
}

/*内联元素也可以设置为Flex*/
span {
  display: inline-flex;
}

/* WebKit内核浏览器,如Safari, 需要加前缀*/
div {
  display: -webkit-flex;	/*Safari*/
  display: lfex;
}

2.基本术语

2.1.Flex容器(flex container)

采用flex布局的元素, 称为flex容器, 简称容器

2.2.Flex项目(flex item)

Flex容器中的所有成员(子元素)会自动成为该容器的成员,称为flex项目,简称项目。
flex项目都支持宽高设置, 哪怕它之前是内联元素,类似于浮动元素。

<style>
  /*flex容器*/
  .contaier {
    display: flex;
  }
  /*flex项目*/
  .item {
    ...
  }
</style>
...
<div class="container">
  <span class="item">item1</span>
  <span class="item">item2</span>
  <span class="item">item3</span>
</div>

2.3.主轴(main axis)

主轴也叫水平轴, 横轴,x轴

  • main start: 起始位置
  • main end: 结束位置
  • main size: 单个项目占据的主轴空间

2.4.交叉轴(cross axis)

交叉轴也叫垂直轴,坚轴,y轴

  • cross start: 起始位置
  • cross end: 结束位置
  • cross size: 单个项目占据的交叉轴空间

3.Flex容器属性

容器属性汇总:

序号 属性描述
1flex-direction主轴方向(即项目排列方向)
2flex-wrap当多个项目在一行排列不下时,如何换行
3flex-flowflex-direction,flex-wrap的简写,默认:row nowrap
4justify-content项目在主轴上对齐方式
5align-items项目在交叉轴上的对齐方式
6align-content  

项目在多根轴线上的对齐方式,只有一根轴线无效

3.1.flex-direction 

功能: 决定项目在主轴上的排列方向

序号 属性描述
1row 默认值主轴为水平方向,起点在左边
2row-reverse主轴为水平方向, 起点在右边(反转)
3column主轴为垂直方向, 起点在上边
4column-reverse主轴为垂直方向, 起点在下边

CSS语法:

.container {
  display: flex;
  flex-direction: row | row-reverse | column | column-reverse;
}

3.2.flex-wrap

功能: 多个项目默认排列在一根轴线上,该属性定义了当一根轴线排列不下时,多作的项目的换行方式

序号 属性描述
1nowrap 默认值不换行
2wrap自动换行, 第一行排列不下, 自动转到下一行
3wrap-reverse自动反向换行, 第一行显示在下方, 与wrap相反

CSS语法

.container {
  display: flex;
  flex-wrap: nowrap | wrap | wrap-reverse;
}

3.3.flex-flow

lex-flow属性是flex-direction属性和flex-wrap属性的简写形式,默认值为row nowrap

.container {
  display: flex;
  flex-flow: [flex-direction] || [flex-wrap];
  /*默认*/
  flex-flow: row nowrap;
}

3.4. justity-content

功能: 设置项目在主轴上的对齐方式

CSS语法:

.container {
  display: flex;
  justify-content: flex-start | flex-end | center | space-between | space-around;
}
序号 属性描述
1flex-start默认值左对齐
2flex-end右对齐
3       center居中对齐
4space-between两端对齐: 项目之间间隔相等
5space-around项目两侧间隔相等,即项目之间间隔是项目到两端的二倍
6space-evenly平均分配主轴上的剩余空间

3.5. align-items 

功能: 该属性设置项目在交叉轴上的对齐方式

CSS语法:

.container {
  display: flex;
  align-items: flex-start | flex-end | center | baseline | stretch;
}
序号 属性描述
1flex-start与交叉轴起点对齐, 即: 顶对齐 / 上对齐
2flex-end与交叉轴终点对齐, 即: 底对齐 / 下对齐
3center与交叉轴中间线对齐, 即: 居中对齐
4baseline与项目中第一行文本的基线对齐, 即文本的下边线
5stretch默认值自动伸展到容器的高度(项目未设置高度或将高度设置为auto有效)

3.6. align-content

  • align-items和align-content有相同的功能,不过不同点是它是用来让每一个单行的容器居中而不是让整个容器居中
  • align-content属性只适用于多行的flex容器,并且当交叉轴上有多余空间使flex容器内的flex线对齐
  • align-items属性适用于所有的flex容器,它是用来设置每个flex元素在交叉轴上的默认对齐方式
  • 该属性的重点,在于多行项目, 这是与align-items最重要的区别

CSS语法:
 

.container {
  display: flex;
  align-content: flex-start | flex-end | center | space-between | space-around | stretch;
}
序号 属性描述
1flex-start与交叉轴起点对齐
2flex-end与交叉轴终点对齐
3center与交叉轴中间点对齐
4space-between与交叉轴两端对齐, 轴线之间间隔相等
5sapce-around每根轴线间隔相等,轴线间隔比轴线到边框大一倍
6stretch默认值轴线占满整个交叉轴

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值