flex布局

什么是flex

使用flex的元素就叫做容器,容器默认存在2条轴线,主轴线(main axis)和垂直的交叉轴线(cross axis)。轴线开始的位置被叫做main/cross start,结束的位置被叫做main/cross end。项目是沿着主轴线开始、结束方向排列的。

知识点

1、flex-direction

设置容器的主轴方向和主轴的起点

flex-direction: row;                           // (默认值)主轴为水平方向,起点在左侧
flex-direction: row-reverse;             //  主轴为水平方向,起点在右侧
flex-direction: column;                    //  主轴为垂直方向,起点在顶部
flex-direction: column-reverse;       //  主轴为垂直方向,起点在底部
2、flex-wrap

设置如果一条轴线上排满了是否换行,是否在来一条轴线

flex-wrap: nowrap;                      //  (默认值)设置不换行,就挤着
flex-wrap: wrap;                          //  换行,按顺序第一行从交叉轴线起点端开始排列
flex-wrap: wrap-reverse;             //  换行,但是被后来居上了,第一行从交叉轴线结束端开始排列
3、justify-content

设置项目在主轴方向的排列方式

justify-content: flex-start;                //(默认值)主轴线起点对齐
justify-content: flex-end;                //  主轴线终点对齐
justify-content: center;                   //  主轴线中心对齐
justify-content: space-between;     //  主轴线两端对齐,项目间距相等
justify-content: space-around;        //  项目两侧间距相等,所以项目间距是两端间距2倍
justify-content: space-evenly;         //  项目间距相等,与两端间距也相等
4、align-items

设置项目在交叉轴上的排列对齐方式

align-items: flex-start;    //交叉轴的起点对齐
align-items: flex-end;    //交叉轴的终点对齐。
align-items: center;      //交叉轴居中对齐。
align-items: baseline;  //项目的第一行文字的基线对齐。
align-items: stretch;     //如果项目未设置高度或设为auto,将占满整个容器的高度。
5、align-content

设置多轴线的在交叉轴线上的对齐方式,只对多轴线起作用

align-content: flex-start;              //与交叉轴的起点对齐。
align-content: flex-end;              //与交叉轴的终点对齐
align-content: center;                //与交叉轴中心对齐
align-content: space-between;  //与交叉轴两端对齐
align-content: space-around;    //每根轴线两侧的间隔都相等。所以,轴线之间的间隔比轴线与边框的间隔大一倍。
align-content: stretch;              //(默认值)轴线占满整个交叉轴
6、flex-grow

用来定义项目的放大比例,也就是对剩余空间的分配能力。默认值是0,表示不参与分配。如果是2则表示比1的多分配1倍。

flex-grow: number; // default 0 
7、flex-shrink

定义项目的缩小比例,如果项目空间不足,将会默认缩小,默认值为1.设置为0则不会缩小,负数无效等价于1。如果设置成2时,压缩效果翻倍。

flex-shrink: number; // default 1
8、flex-basis

定义了在分配多余空间之前,项目占据的主轴空间(main size)。浏览器根据这个属性,计算主轴是否有多余空间。它的默认值为auto

flex-basis: length | auto; // default auto
9、flex

flex-grow、flex-shrink、flex-basis三个属性的缩写

flex: none | [ <'flex-grow'> <'flex-shrink'> <'flex-basis'> ]

示例

<ul class="list">
    <li>111111</li>
    <li>2</li>
    <li>3</li>
    <li>4</li>
    <li>5</li>
</ul>
 * {
  margin: 0;
   padding: 0;
   list-style: none;
}
.list {
   height: 400px;
   border: 5px solid #555;
   /*
       display: flex:
           开启弹性布局
       flex: 1;
             均分宽度
     */
   display: flex;
   /*
       flex-direction:
           指定主轴方向,起点在左端|水平方向,起点在右端|垂直方向,起点在上沿|垂直方向,起点在下沿
           row | row-reverse | column | column-reverse;
   */
   flex-direction: column;
     /*
           justify-content:    主轴方向对其方式 默认值左对齐
             左对齐|      右对齐|     居中|     两端对其,项目之间间隔相等|  每个项目两侧的间隔相等
             flex-start | flex-end | center | space-between | space-around;
     */
     justify-content: center;
     /*
         align-items:        和主轴交叉方向对齐方式,
             起点对齐|     终点对齐|   中点对齐|  基线对齐|  默认值
             flex-start | flex-end | center | baseline | stretch;
     */
     align-items: center;
 }
 .list li {
     height: 40px;
     flex: 1;

 }
 .list li:nth-child(1) {
     background-color: #00a3ed;
 }
 .list li:nth-child(2) {
     background-color: #9198e5;
 }
 .list li:nth-child(3) {
     background-color: #e66465;
 }
 .list li:nth-child(4) {
     background-color: #9198e5;
 }
 .list li:nth-child(5) {
     background-color: #00a3ed;
 }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值