flex布局

 只设置一个display:flex,此时存在的隐藏的默认属性有:

属性名默认属性样式
flex-directionrow沿主轴方向排布
flex-wrapnowrap单行排列
justify-contentflex-start与主轴方向对齐排布
align-itemnormal/stretch

如果交叉轴方向高度为auto,拉伸到与container同一高度

align-contentstretch?
order0按照文档中出现顺序排列
align-selfauto遵循align-items的设置
flex-grow0

设置display属性为flex或者inline-flex可以成为flex container

flex:flex container以block-level形式存在

inline-flex:flex container以inline-level形式存在 

 对box设置display:flex

 display: inline-flex; 

 主轴与交叉轴

主轴从左到右,交叉轴从上到下

flex相关的属性 

 flex-direction(是否沿主轴/交叉轴)

row(沿主轴方向,默认) 

row-reverse (逆主轴)

 column(交叉轴)

column-reverse(逆交叉轴)

 flex-wrap(单行还是多行)

默认是单行,如果添加盒子,无视内部item已经设置好的宽度,无限压缩

   flex-wrap: wrap;

wrap-reverse 

 flex-flow(flex-direction与flex-wrap的缩写)

 flex-flow(direction+wrap)

顺序都可 

 flex-flow: wrap row-reverse;

justify-content(主轴上对齐方式) 

 align-item(交叉轴上的对齐方式)

非normal/stretch情况下,不设置高度,则自动根据内容撑起高度

  align-content(多行内容主轴对齐)

 flex-item的属性order(手动设置排列顺序,从小到大分布)

    .item1 {
      order: 5;
    }
 
    .item2 {
      order: 3;
    }
 
    .item3 {
      order: 9;
    }

flex-item的属性align-self (内部交叉轴对齐方式)

    .container {
      width: 500px;
      height: 500px;
      background-color: orange;
 
      display: flex;
 
      align-items: center;
    }
 
    .item {
      width: 120px;
      /* height: 120px; */
    }
 
    .item1 {
      height: 90px;
    }
 
    .item2 {
      height: 150px;
 
      align-self: flex-start;
    }
 
    .item3 {
      height: 120px;
    }

 flex-item的属性flex-grow(如何拉伸??)

 当大于0时,且主轴有剩余,拉伸

flex-item属性flex-shrink(如何收缩?)

    .container {
      width: 500px;
      height: 500px;
      background-color: orange;
 
      display: flex;
    }
 
    .item {
      width: 120px;
      height: 120px;
 
      flex-shrink: 0;
    }
 
    .item1, .item2 {
      flex-shrink: 1;
    }
 
    .item1 {
      min-width: 100px;
    }

 flex-item属性-flex-basis(?)

 

解决space-between最后一行的问题

前:

后: 

  .container {
      width: 500px;
      background-color: orange;
 
      display: flex;
      flex-wrap: wrap;
      justify-content: space-between;
    }
 
    .item {
      width: 110px;
      height: 140px;
 
      /* margin-right: 20px; */
    }
 
    .container > i {
      width: 110px;
    }
 
    /* .item:nth-child(4n) {
      margin-right: 0;
    } */
  </style>
</head>
<body>
   
  <div class="container">
    <div class="item item1">1</div>
    <div class="item item2">2</div>
    <div class="item item3">3</div>
    <div class="item item1">1</div>
    <div class="item item2">2</div>
    <div class="item item3">3</div>
    <div class="item item1">1</div>
    <div class="item item2">2</div>
    <div class="item item3">3</div>
    <div class="item item3">3</div>
    <!-- 添加span的个数是列数减-2 -->
   <i></i><i></i>
  </div>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值