当前位置: 首页 > article >正文

【前端】 flex布局详解

Flex布局开启,在编写之前,我们要先搞清楚一个问题,就是你要让谁开启flex布局?我们要开启flex布局的最终目的一定是为了让某几个元素进行规范化布局,那如果你单独写在某个元素身上,那它的兄弟元素也不知道自己是用了flex布局,所以display:flex;一定是在父元素身上开启。

一、父元素身上开启flex

//开启flex布局
display:flex;
//布局方向
flex-direction:row;

布局方向
在这里插入图片描述
这里的row是指水平方向,column是指垂直方向。后面加reverse的是指反方向,比如row指的是从左到右,那么row-reverse就是从右到左。
在这里插入图片描述

二、子元素身上样式 flex-basis,flex-grow,flex-shrink

这三个属性可以分开写,也可以合起来写

flex: flex-grow flex-shrink flex-basis
//默认值是 0 1 auto

这些属性挂载在子元素上,
在这里插入图片描述
这里的0和1代表的是比例,每一个子元素item身上都被分配了相关的比例值,flex-grow是指当所有元素按照自身大小渲染完毕之后,父元素主轴方向上仍有空余则按照flex-grow的比例值分配给每一个子项。相反flex-shrink则是当所有元素按照自身大小渲染完毕之后,父元素主轴方向上有溢出,则子元素按照比例缩小。
用flex-grow做例子

        .father{
            display: flex;
            width: 500px;
            height: 200px;
            background-color: aqua;
        }
        .child{
            flex-grow: 1;
            flex-basis: 100px;
            background-color: pink;
        }
        .child:nth-child(1){
            flex-grow: 2;
            background-color: bisque;
        }.child:nth-child(2){
            flex-grow: 1;
            background-color: yellow;
        }

在这里插入图片描述
计算方法就是
(100+2x) +(100+x)*2 = 500
4x = 200; => x=50;
第一个子元素就是 200
第二第三个就是 150;
在这里插入图片描述

三、flex容器的交叉轴对齐align-items — 一行元素上多标签元素高度不统一怎么对齐。

在这里插入图片描述

四、flex容器的主轴对齐方式 justify-content。

在这里插入图片描述

五、flex-wrap 当容器空间不足时是否换行

六、align-content 当定义了多根轴线时,项目子啊交叉轴上的对齐方式(多行)。

在这里插入图片描述

七、order属性,用于定义flex容器内部子元素的显示顺序。

补充:
在这里我注意到一个width的属性值。

width:max-content | min-content | fit-content

max-content 内容有多宽他就多宽,不会顾及父元素有多宽,即不会撑开父元素。
min-content 装下单个最大内容的最小宽度。
fit-content 在不超过父级盒子宽度的情况下,尽量撑开盒子满足自己的需求。


http://www.kler.cn/a/304062.html

相关文章:

  • Python如何从HTML提取img标签下的src属性
  • 基于BILSTM及其他RNN序列模型的人名分类器
  • Flink API 的层次结构
  • 设备接入到NVR管理平台EasyNVR多品牌NVR管理工具/设备的音视频配置参考
  • 【考研数学:高数2】数列极限
  • 【电力系统】永磁同步电机调速系统带有扰动观测器
  • JavaScript StartsWith()方法
  • 从用户数据到区块链:Facebook如何利用去中心化技术
  • Postgresql 删除数组中的元素
  • Linux系统使用Docker安装DockerUI并实现远程管理本地容器无需公网IP
  • Prompt最佳实践|善用分隔符,让你的Prompt更清晰
  • 解决VScode中每次git push或者pull都需要重新输入账户名和密码问题
  • PL/SQL Developer工具的使用
  • 【数据结构初阶】队列接口实现及用队列实现栈超详解
  • 基于SpringBoot的高校电动车租赁服务管理系统
  • 智能化等保测评工具的兴起与应用实践
  • 房产销售系统:SpringBoot技术优化方案
  • 在已安装Python环境的基础上安装anaconda或者其他版本Python
  • 使用 RabbitMQ 实现秒杀订单系统的异步消息处理
  • 【C++】Linux平台C++实现Socket通信(Unix域、TCP/IP、UDP)
  • 基于Python的B站热门视频可视化分析与挖掘系统
  • 伊顿穆勒Moeller控制器电源维修easy 619-AC-RCX
  • CAESES许可证转移方法
  • Keras深度学习中文文本分类
  • wopop靶场漏洞挖掘练习
  • 【数学建模国赛】写作心得