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-end flex item 从终点开始排序(并不会改变顺序)
center flex item 沿主轴居中排列
space-between flex item沿主轴均匀排列,空白间距均分在flex item之间
space-around flex item沿主轴均匀排列,空白间距均分在flex item两侧
space-evenly flex item沿主轴均匀排列,flex item与容器间距相等

flex-start 

flex-end
 flex-center

space-between 

侧轴对齐方式

属性:

  • align-items  给容器内所有的flex items设置侧轴对齐方式(给flex 容器设置)
  • align-self     单独控制某个flex item 设置侧轴对齐方式(给flex items设置)
属性值 说明
stretch flex items沿着侧轴线被拉伸至铺满容器(flex items设置了高度则不能拉伸)
center flex items沿侧轴居中排列
flex-start flex items从起点开始依次排序
flex-end flex 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

相关推荐

  1. CSS-Flex布局

    2024-05-12 06:52:08       28 阅读
  2. css flex布局详解

    2024-05-12 06:52:08       34 阅读
  3. CSS-布局-flex

    2024-05-12 06:52:08       7 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-05-12 06:52:08       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-05-12 06:52:08       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-05-12 06:52:08       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-05-12 06:52:08       20 阅读

热门阅读

  1. 学习使用jQuery将光标移动到textarea的末尾

    2024-05-12 06:52:08       11 阅读
  2. AlmaLinux 文件拷贝 cp命令用法示例

    2024-05-12 06:52:08       11 阅读
  3. class常量池、运行时常量池和字符串常量池详解

    2024-05-12 06:52:08       9 阅读
  4. 【Bug】Clash出现端口0的情况

    2024-05-12 06:52:08       12 阅读
  5. 整理项目中经常用到的正则

    2024-05-12 06:52:08       7 阅读
  6. word内容wxml转化html标签对照表

    2024-05-12 06:52:08       12 阅读
  7. Golang reflect.MakeFunc() 的用法及示例

    2024-05-12 06:52:08       10 阅读
  8. 软件定义汽车七大典型应用场景

    2024-05-12 06:52:08       9 阅读
  9. react18封装公共请求函数

    2024-05-12 06:52:08       10 阅读
  10. NLP和chatGpt的关系

    2024-05-12 06:52:08       9 阅读
  11. Bert基础(二十二)--Bert实战:对话机器人

    2024-05-12 06:52:08       10 阅读