CSS-flex布局

目录

flex布局组成  (flexible box弹性布局)

display属性值:flex 

justify-content      (主轴对齐方式)

flex-start 

flex-end

​编辑 flex-center

space-between 

侧轴对齐方式

stretch

center 

flex-end 

flex-direction  (修改主轴方向)

row (默认状态) 

column 

flex   (弹性伸缩比)

 flex-wrap  (弹性盒子换行)

align-content   (行对齐方式)

flex-start

​编辑 flex-end

​编辑 center

space-between

space-around

​编辑 space-evenly


flex布局组成  (flexible box弹性布局)

flex布局又称之为flex容器,它的所有元素自动成为容器成员,称为flex item

  • 它的子元素称之为flex item,子元素可以自动挤压或拉伸
  • 容器存在两根轴:水平的主轴(Main axis)和垂直的交叉轴(Cross axis)。
  • 主轴的开始位置叫Main start,结束位置叫Main end
  • 交叉轴的开始位置叫Cross start,交叉轴的结束位置叫Cross end
  • 单个flex项目占的主轴空间叫Main size,占的交叉轴空间叫Cross size
  • flex item沿着主轴方向展开

display属性值:flex 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        *{
            padding: 0px;
            border: 0px;  
            box-sizing: border-box;  /*将边框和边距包含到宽高*/
        }
      
       .top{
         width: 800px;
         height: 300px;
         border:1px solid black;
         display: flex;
       }
      .top .l{
        width: 300px;
        height: 100px;
        background-color: blue;
  
      }     
     
      .top .r{
        width: 300px;
        height: 100px;
        background-color:pink;
 
      }
 
    </style>
</head>
<body>
    <div class="top"> 
        <div class="l"></div>
       
        <div class="r"></div>
          </div>

</body>
</html>

给父级元素的展示效果设置为flex布局,整个flex容器 里面的flex item都会沿着主轴展开

 

我们给三个盒子的宽设置为300px,父级盒子的宽设置为800px 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        *{
            padding: 0px;
            border: 0px;  
            box-sizing: border-box;  /*将边框和边距包含到宽高*/
        }
      
       .top{
         width: 800px;
         height: 300px;
         border:1px solid black;
         display: flex;
       }
      .top div{
        width: 300px;
        height: 100px;
        background-color: blue;
  
      }     
 
    </style>
</head>
<body>
    <div class="top"> 
        <div class="l"></div>
        <div class="c"></div>
        <div class="r"></div>
          </div>

</body>
</html>

网页呈现的效果:三个盒子的宽被挤压了

justify-content      (主轴对齐方式)

属性:justify-content

属性值说明
flex-start默认值,flex item 从起点开始依次排序
flex-endflex item 从终点开始排序(并不会改变顺序)
centerflex item 沿主轴居中排列
space-betweenflex item沿主轴均匀排列,空白间距均分在flex item之间
space-aroundflex item沿主轴均匀排列,空白间距均分在flex item两侧
space-evenlyflex item沿主轴均匀排列,flex item与容器间距相等

flex-start 

flex-end
 flex-center

space-between 

侧轴对齐方式

属性:

  • align-items  给容器内所有的flex items设置侧轴对齐方式(给flex 容器设置)
  • align-self     单独控制某个flex item 设置侧轴对齐方式(给flex items设置)
属性值说明
stretchflex items沿着侧轴线被拉伸至铺满容器(flex items设置了高度则不能拉伸)
centerflex items沿侧轴居中排列
flex-startflex items从起点开始依次排序
flex-endflex items从终点开始依次排序

stretch

如果我没给flex items设置高度,元素就会被拉伸 

center 

flex-end 

flex-direction  (修改主轴方向)

主轴默认在水平方向,侧轴默认在垂直方向

属性:flex-direction(修改主轴方向,侧轴也会随着改变)

属性说明
row水平方向,从左向右(默认)
column垂直方向,从上到下
row-reverse水平方向,从右向左
column-reverse垂直方向,从下到上

row (默认状态) 

column 

flex   (弹性伸缩比)

作用:控制flex items在主轴方向的尺寸

属性:flex

属性值:整数数字,表示占用父级剩余尺寸的份数,默认是1份

给左边一份,中间两份,右边三份 

  .box{
         width: 800px;
         height: 300px;
         border:1px solid black;
         display: flex;
         flex-direction:row;
       }
      .box .l{
        width: 200px;
        height: 100px;
        background-color: blue;
        flex:1;
      }     
      .box .c{
        width: 200px;
        height: 100px;
        background-color:pink;
        flex:2; 
      }  
      .box .r{
        width: 200px;
        height: 100px;
        background-color:green;
        flex:3;
      }  

网页效果:

 flex-wrap  (弹性盒子换行)

作用:flex items(弹性盒子)可以自动挤压或拉伸,默认弹性盒子会在一行显示

属性:flex-wrap

属性值:

  •               wrap         换行
  •               no-wrap     默认,不换行
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
      
       .box{
         width: 801px;
         height: 300px;
         border:1px solid black;
         display: flex;
         flex-wrap: wrap;
       }
      .box div{
        width: 300px;
        height: 100px;
        background-color:pink;
      }
 
    </style>
</head>
<body>
    <div class="box"> 
        <div class="l">1</div>
        <div class="c">2</div>
        <div class="r">3</div>
        <div>4</div>
        <div>5</div>
        <div>6</div>
 
          </div>

</body>
</html>

6个弹性盒子并不像默认状态下压缩尺寸,而是换行显示 

align-content   (行对齐方式)

属性:align-content

属性值:跟主轴对齐方式一样

flex-start
 flex-end
 center

space-between

 

space-around
 space-evenly

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值