Flex Box(c3盒子)

109 阅读2分钟
  • 一、什么是flex box?

flex box 是c3的一种新的布局模式。
  传统的布局方案是基于盒状模型,依赖display属性+定位属性(position)+浮动属性(float)。缺点是对于特殊布局过程繁琐,例如——垂直居中就不容易实现。
  flex布局就可以简便、完整、响应式地实现各种页面布局。目前,几乎所有浏览器都支持

微信图片_20220812212803.png

(MDN-Flex浏览器支持查询)

  • 二、关于flex的两个基本概念
  1. 容器:需要添加弹性布局的父元素,设置了弹性盒子(display:flex;)的这个盒子叫弹性容器(Flex container)
  2. 元素:flex布局中的每一个子代(直系子元素才是),称为弹性子元素(Flex item)。
  • 三、关于flex的两个方向
  1. 主轴:在flex布局中,系统默认规定水平方向为主轴;垂直方向为侧轴
    设为Flex布局后,子元素的float、clear、以及vertical-align属性将失效
  • flex布局核心代码
#container{
  //加入flex布局模式
  display:flex;
  //沿主轴居中排列,
  //
  justify-cntent:center;
  //侧轴居中对齐
  //
  align-items:center;
}
  • 三、容器属性
  1. flex-direction
    // 四个可选项( row(默认值):主轴为水平方向,起点在左端。
    row-reverse:主轴为水平方向,起点在右端。
    column:主轴为垂直方向,起点在顶端。
    column-reverse:主轴为垂直方向,起点在底部。)
  2. flex-wrap(是否换行)
    > 默认情况下元素是按主轴排成一条线,如果排不下就用这个属性定义如何换行
    .box{ flex-wrap: nowrap(默认:不换行) | wrap(换行) | wrap-reverse(换行,第一行在下方); }
  3. justify-content flex-start(默认值):左对齐
    flex-end:右对齐
    center: 居中
    space-between:两端对齐,项目之间的间隔都相等。
    space-around:每个项目两侧的间隔相等。所以,项目之间的间隔比项目与边框的间隔大一倍。
    space-evenly: 两个项目之间的距离相等(每个项目左右边的空隙相等)
  4. align-items
    flex-start:交叉轴的起点对齐。
    flex-end:交叉轴的终点对齐。
    center:交叉轴的中点对齐。
    baseline: 项目的第一行文字的基线对齐。 (文字的基线:是指文字的最底部的文字)
  • 四、元素属性 align-sele

定义元素在侧轴的排列方式。这个属性是属于单个元素属性
.item { align-self: auto | flex-start | flex-end | center | baseline | stretch; }