首页 > 其他分享 >flex布局详解

flex布局详解

时间:2023-02-09 00:11:39浏览次数:40  
标签:flex 轴线 交叉 布局 详解 https 对齐 项目

简述

  弹性布局是css3新引入的布局模式,英文是flexbox,他决定了元素如何在页面上排列,使他们能在在不同的屏幕尺寸和设备下可预测地展现出来。

  本质就是一个盒子,它能够扩展和收缩 flex 容器内的元素,以最大限度地填充可用空间

核心概念

  大的容器盒子叫 flex container ,被包裹在内的元素叫 flex item

  从做左到右的分界轴坐标叫主轴,从上到下的分界轴叫交叉轴

  项目会沿主轴方向进行排列,如果空间不够会沿交叉轴方向另起一行

  将一个块级元素设置为弹性容器,只需要设置该元素的display值为flex

.container{
   display: flex; 
}

容器属性

flex-direction

  用于指定主轴方向

row 从左到右,默认值
row-reverse 从右到左
column 从上到下
column-reverse 从下到上

flex-wrap

  默认为元素在主轴方向一直堆叠,也用于指定元素放不下时,在哪里新起一行

justify-content

  控制item在主轴方向的对齐方式

flex-start 默认左对齐
flex-end 右对齐
center 居中
space-between 项目和容器之间没有空隙,项目之间有间隔
space-around 项目与项目之间有间隔,间隔是项目与容器之间间隔的两倍

align-items

  用于控制项目在交叉轴方向上的对齐方式

stretch 默认值,占满交叉轴上的所有空间
flex-start 交叉轴的起点对齐
flex-end 交叉轴的终点对齐
center 交叉轴的中心对齐
baseline 所有项目的内容在同一水平

 

align-content

  定义多根轴线的对齐方式,个人理解这里的多根轴线指的是多个主轴(设定了flex-warp属性,另起行)

flex-start 与交叉轴的起点对齐
flex-end 与交叉轴的终点对齐
center 与交叉轴的中点对齐
space-between 与交叉轴两端对齐,轴线之间的间隔平均分布
space-around 每根轴线两侧的间隔都相等。所以,轴线之间的间隔比轴线与边框的间隔大一倍
stretch 轴线占满整个交叉轴

 

Item属性

order

  用于规定item的排列顺序,越小排越前

 

flex-grow

  定义项目的放大比例,默认为0,即如果存在剩余空间,也不放大

  如果item的flex-grow都是 1 ,则它们将等分剩余空间

  其他数字则按比例分配空间

 

flex-shrink

  定义了项目的缩小比例,默认为1,即如果空间不足,该项目将缩小

  如果所有项目的flex-shrink属性都为1,当空间不足时,都将等比例缩小

  如果一个项目的flex-shrink属性为0,其他项目都为1,则空间不足时,前者不缩小

align-self

  允许单个项目有与其他项目不一样的对齐方式,可覆盖align-items属性。默认值为auto,表示继承父元素的align-items属性,如果没有父元素,则等同于stretch

References

https://css-tricks.com/snippets/css/a-guide-to-flexbox (官方文档)

https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Flexible_Box_Layout/Basic_Concepts_of_Flexbox (mdn的详解)

https://juejin.cn/post/7085239691728912414(掘金,基本是看这个学的,还有动图好爽)

https://blog.51cto.com/yszr/2820428

https://juejin.cn/post/7183221193636315173

https://www.bilibili.com/video/BV1di4y1U75N/?spm_id_from=333.337.search-card.all.click (弹性布局示例)

标签:flex,轴线,交叉,布局,详解,https,对齐,项目
From: https://www.cnblogs.com/CNLayton/p/17103786.html

相关文章

  • DNS服务器的基本原理详解
    域名简介:使用tcp/udp协议,默认使用53端口号          默认情况下,客户端发起的查询请求都是用UDP/53查询的。          默认情况下,从从服务器到主服务......
  • Mybatis-Plus 之BaseMapper 方法详解
    packagecom.itheima.dao;importcom.baomidou.mybatisplus.core.conditions.Wrapper;importcom.baomidou.mybatisplus.core.metadata.IPage;importcom.baomidou.my......
  • FPN结构详解
    视频链接FPN:越高层次的特征图用于检测更大的目标,图下就是FPN的结构图:Upsample使用的是邻近插值算法。【应该也可以使用别的插值算法】【问题】为什么是从上层往下进行......
  • 71张图详解IP 地址、IP 路由、分片和重组、三层转发、ARP、ICMP
    目录数据如何传输到目的地?IP地址的基础知识IP地址的定义IP地址的组成IP地址的分类广播地址IP组播子网掩码CIDR与VLSM公网地址与私有地址IP路由路由条目类型路由汇......
  • 环保污水厂智能安防视频监控解决方案详解
    一、方案背景随着城市化进程的加快、城市人口的增多,生活用水量日益增加;此外,工业蓬勃发展产生的污水也在逐渐增加,这些生活及工业污水经遍布各地的城市污水处理厂集中处理后再......
  • 图文详解Java中的字节输入与输出流
    目录字节输入流字节输入流结构图FileInputStream类构造方法:常用读取方法:字节输出流字节输出流结构图:FileOutputStream类构造方法:常用写入方法:总结 字......
  • gateway配置详解
    Gateway网关,通过检查请求地址匹配相应的服务请求,访问时直接请求网关的请求地址,会转发到相应的服务;可通过yml文件配置或者代码配置pom:<dependency>......
  • MySQL DISTINCT关键字详解:用法、实际应用和与GROUP BY的区别
    "Successisnothowhighyouhaveclimbed,buthowyoumakeapositivedifferencetotheworld."成功不在于你爬得多高,而在于你对世界做出了多大的积极影响。-Roy......
  • Java中的JDBC基本概念和各对象详解
    概念JavaDataBaseConnectivity Java数据库连接,Java语言操作数据库JDBC本质:其实是官方(sun公司)定义的一套操作所有关系型数据库的规则,即接口。各个数据库厂商去实现这......
  • 35-static关键字详解
    static带static是和类一起加载的,能直接调用反之需要用new抽取对象,然后再调用publicclassTest{privatestaticintage;//静态变量privateintscore;......