博客列表 >1222 flex容器与项目的常用属性实例演示

1222 flex容器与项目的常用属性实例演示

老衲法号
老衲法号原创
2020年12月24日 11:55:35435浏览

dom结构

  1. <div class="container">
  2. <div>item1</div>
  3. <div>item2</div>
  4. <div>item3</div>
  5. <div>item4</div>
  6. <div>item5</div>
  7. <div>item6</div>
  8. </div>

基础样式

  1. * {padding:0;margin:0;box-sizing:border-box;}
  2. .container{
  3. display:flex;
  4. height:20em;
  5. border:1px solid red;
  6. padding:1em;
  7. }
  8. .container>div{
  9. width:5em;
  10. /*height:2em;*/
  11. background:black;
  12. }

一 . felx容器属性

  1. flex-flow : 主轴方向以及项目换行方式

    • 主轴为水平方向 不允许换行 超出后项目会压缩(默认)

      1. .container{
      2. flex-flow:row nowrap;
      3. }
    • 主轴为水平方向 允许超出后换行

      1. .container{
      2. flex-flow:row wrap;
      3. }
    • 主轴为垂直方向 不允许换行 超出后项目会压缩

      1. .container{
      2. flex-flow:column nowrap;
      3. }
    • 主轴为垂直方向 允许超出后换行

      1. .container{
      2. flex-flow:column nowrap;
      3. }
  2. justify-content : 项目在主轴上的对齐方式

    前提:在主轴上有剩余空间

    2-1 所有项目视为一个整体,在项目整体两边进行剩余空间的分配(3个)

    • 开始对齐
      1. .container{
      2. justify-content:flex-start;
      3. }
    • 末尾对齐
      1. .container{
      2. justify-content:flex-end;
      3. }
    • 居中对齐
      1. .container{
      2. justify-content:center;
      3. }

    2-2所有项目视为独立的个体,在项目之间进行分配

    • 两端对齐:首尾项目之间进行分配,即第一个和最后一个之间分配
      1. .container{
      2. justify-content:space-between;
      3. }
    • 分散对齐:在每个项目的两边平均分配
      1. .container{
      2. justify-content:space-around;
      3. }
    • 平均对齐:在每个项目之间平均分配
      1. .container{
      2. justify-content:space-evenly;
      3. }
  3. align-items: 单行容器中项目在交叉轴上的对齐方式
    • 默认拉伸 :填满整个空间(项目不能设置高度)
      1. .container{
      2. align-items:stretch;
      3. }
    • 开始对齐
      1. .container{
      2. align-items:flex-start;
      3. }
    • 末尾对齐
      1. .container{
      2. align-items:flex-end;
      3. }
    • 居中对齐
      1. .container{
      2. align-items:center;
      3. }
  4. align-content: 项目在多行容器交叉轴上的对齐方式

    • 默认拉伸 :填满整个空间
      1. .container{
      2. align-content:stretch;
      3. }
    • 开始对齐
      1. .container{
      2. align-content:flex-start;
      3. }
    • 末尾对齐
      1. .container{
      2. align-content:flex-end;
      3. }
    • 居中对齐
      1. .container{
      2. align-content:center;
      3. }
    • 两端对齐:首尾项目之间进行分配,即第一个和最后一个之间分配
      1. .container{
      2. align-content:space-between;
      3. }
    • 分散对齐:在每个项目的两边平均分配
      1. .container{
      2. align-content:space-around;
      3. }
    • 平均对齐:在每个项目之间平均分配
      1. .container{
      2. align-content:space-evenly;
      3. }

二 . felx项目属性

1 flex :设置某个项目是否放大缩小和 宽度(默认就是width),通常用在某一个项 目上
格式: flex:flex-grow(放大因子) flex-shrink(缩小因子) flex-basis

  1. .container>.item:first-of-type{
  2. flex:1 1 auto;/*允许放大缩小*/
  3. }
  1. 只设置一个的时候,指的是设置放大因子,即上面写法简写为:
  1. .container>.item:first-of-type{
  2. flex:1;/*允许放大缩小*/
  3. }

例子:设置第2第3个是第一个的4倍

  1. .container>.item:first-of-type{
  2. flex:1;
  3. }
  4. .container>.item:nth-of-type(2),.container>.item:nth-of-type(3){
  5. flex:4;
  6. }

2 align-self :设置某个项目在交叉轴上的对齐方式(stretch,flex-start,flex-end,center)
auto:默认值。元素继承了它的父容器的 align-items 属性。如果没有父容器则为 “stretch”。

  1. 例子:设置第一个居中 第二个开始末端对齐
  1. .container>.item:first-of-type{
  2. align-self:center;
  3. }
  4. .container>.item:nth-of-type(2){
  5. align-self:flex-end;
  6. }

3 order 设置某项目在主轴上的排列排序,支持负数,数值越小越靠前,越大越靠后,默认值是 DOM中的 顺序

  1. .container>.item:first-of-type{
  2. order:5;
  3. }
  4. .container>.item:nth-last-of-type(2){
  5. order:-1;
  6. }
  7. .container>.item:nth-last-of-type(3){
  8. order:-2;
  9. }
  10. .container>.item:last-of-type{
  11. order:1;
  12. }
声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议