css_flex布局

一、flex简介

Flexible Box 、伸缩盒模型、弹性盒子。

二、使用
  display:flex;
  /*基本使用*/
  display: inline-flex;
  /*行内元素也可以使用 Flex 布局*/
  display: -webkit-flex; 
  /* Webkit 内核的浏览器,必须加上-webkit前缀 */
三、容器和项目

采用 flex 布局的元素,称为 flex 容器(flex container),它的所有子元素自动成为flex项目(flex item)。

五、轴线

在这里插入图片描述

main axis:主轴,默认水平,从左到右
cross axis:交叉轴,默认垂直,从上到下

四、容器属性
  1. flex-direction(决定主轴的方向,即项目的排列方向)
取值含义
row(默认值)主轴为水平方向,起点在左端
row-reverserow相反方向
column主轴为垂直方向,起点在上沿
column-reversecolumn相反方向
  1. flex-wrap(默认情况下,项目都排在一条线上。flex-wrap属性定义,如何换行。)
取值含义
nowrap(默认值)不换行
wrap换行,自上而下
wrap-reverse自下而上
  1. flex-flow(flex-direction和flex-wrap的简写)

  2. justify-content(定义了项目在主轴上的对齐方式)

取值含义
flex-start(默认值)左对齐
flex-end右对齐
center居中
space-between两端对齐,空白间距相等
space-around项目左右两侧留白相等
  1. align-items(定义项目在交叉轴上如何对齐)
取值含义
stretch(默认值)如果项目未设置高度或设为auto,将占满整个容器的高度。
flex-start交叉轴的起点对齐
flex-end交叉轴的终点对齐
center交叉轴的中点对齐
baseline项目的第一行文字的基线对齐
  1. align-content(定义了多根轴线在交叉轴的对齐方式。如果项目只有一根轴线,该属性不起作用)
取值含义
stretch(默认值)如果项目未设置高度或设为auto,将占满整个容器的高度。
flex-start交叉轴的起点对齐
flex-end交叉轴的终点对齐
center交叉轴的中点对齐
space-between与交叉轴两端对齐,轴线之间的间隔平均分布
space-around每根轴线两侧的留白间隔都相等
五、项目属性
  1. order(定义项目的排列顺序。数值越小,排列越靠前,默认为0)
	order: <integer>;
  1. flex-grow(flex-grow属性定义项目的放大比例,默认为0,即如果存在剩余空间,也不放大。)
     放大后宽度=原宽度+放大总宽度/项目数
	 flex-grow: <number>; /* default 0 */
  1. flex-shrink定义了项目的缩小比例,默认为1,即如果空间不足,该项目将缩小。设置为0,项目不缩小
     缩小后宽度=原宽度-缩小比例*(缩小前宽度/所有项目所占宽度)*缩小总宽度
     /*最小缩小到容纳项目内容宽度*/
    flex-shrink: <number>; /* default 1 */
  1. flex-basis基准长度,定义了在分配多余空间之前,项目占据的主轴空间。
	flex-basis: <length> | auto; /* default auto */
  1. flex(flex-grow, flex-shrink 和 flex-basis的简写,默认值为0 1 auto)
flex简写含义
flex:auto;flex:1 1 auto;,可以伸缩,不设置基准长度
flex:1;flex:1 1 0;可以伸缩,基准长度为0
flex:none;flex:0 0 auto;不可伸缩,不设置基准长度
flex:0 auto;flex:0 1 auto;默认值,不能拉伸,可以收缩,不设置基准长度
	flex: none | [ <'flex-grow'> <'flex-shrink'>? || <'flex-basis'> ]
  1. align-self(align-self属性允许单个项目有与其他项目不一样的对齐方式,可覆盖align-items属性。默认值为auto,表示继承父元素的align-items属性,如果没有父元素,则等同于stretch。该属性可能取6个值,除了auto,其他都与align-items属性完全一致。)
	order: <integer>;
六、flex水平垂直居中
  1. 第一种
  .class1{
    display:flex;
    justify-content:center;
    align-items:center;
  }
  1. 第二种
  .class1 {
    display:flex;
  }
  .class2 {
    margin:auto;
  }
  /*class2是class1项目*/
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值