不再一个个试错,这众多的flex属性

news2024/11/16 2:18:50

流式布局

本篇我们将从流式布局的四大方面入手,旨在认识、了解、以至于掌握其特性及功能。

为什么要用?

在我们抛弃标准流、定位流以及浮动流之后,取而代之的是flex流式布局。以一种更加优雅的方式实现元素布局。

轴的定义

在开始说它的特性之前,我们首先需要了解的是flex布局依靠的两个重要概念:主轴(一般为x轴)和交叉轴(一般为y轴)

那么我们如何改变或者说定义主轴和交叉轴呢?——flex-direction

flex-direction

graph TD
flex-direction --> row
flex-direction --> row-reverse
flex-direction --> column
flex-direction --> column-reverse 

下面以主轴为例,交叉轴即除了主轴之外的那一条,这里不再赘述。

row | row-reverse

设置了这个属性,主轴将沿着inline方向延展

1. row: 从左向右延展

2. row-reverse: 从右向左延展

column | column-reverse

主轴会沿着block方向延展

1. column: 从上向下延展

2. column-reverse: 从下往上延展

flex模块划分

graph TD
flex布局-->容器
flex布局-->轴
轴-->主轴
轴-->交叉轴
容器--> 父盒子
容器--> 子盒子
父盒子 --> justify-content
父盒子--> align-items
子盒子-->flex
子盒子-->align-self 

父盒子

justify-content(设置主轴排列)

设置主轴的排序一般包括两个方面:

1.位置排列1.flex-start 容器开头对齐2.flex-end 容器尾部对齐3.center 容器居中
2.分布排列1.space-between2.space-around

位置排列

也就是父容器在一整个占位盒子里面的位置,是在盒子开头(flex-start)、盒子中间(center)还是盒子最后flex-end。

分布排列

可以控制他的子容器们的排列状态,一般分为两部分:

space-around: 即将除盒子之外的剩余空间均分后分配在盒子中间,如上图所示 space-between: 即在上一种方式的基础上,盒子的开头和结尾也会被分配空间,不过分配的空间是子容器间的一半。

align-item(设置子容器的对齐方式)

align-items主要用于控制交叉轴元素内各个子元素的排列方式,一般将集中排列分类为位置排列基线排列拉伸排列

位置排列

子容器们的对齐方式,一般分为:

flex-start(交叉轴起始端对齐)

flex-end(交叉轴末端对齐)

center(交叉轴居中对齐)

基线排列

baseline

指内容的对齐方式是向基线(baseline)对齐,简单来说就是所有文字都处在同一水平,而baseline的高度与 根据MDN文档:侧轴起点到元素基线距离最大的元素将会于侧轴起点对齐以确定基线

拉伸排列

align-items:stretch,让盒子沿着交叉轴拉伸到和父容器一致。

子盒子

主要设置各个子容器的状态,一般分为主轴和交叉轴对子容器进行操作:

主轴:flex

flex

即设置子盒子是不是弹性的,他的伸缩比例由属性确定

交叉轴:align-self

align-self

设置子容器的排列方式

graph TD
align-self --> 按照位置排列
按照位置排列 --> flex-start
按照位置排列 --> flexend
按照位置排列 --> center
align-self --> 基线排列
基线排列 --> baseline
align-self --> 拉伸排列
拉伸排列 --> stretch 

通过以上方式可以为单个子容器设置样式。这里举个例子:我们想要单独设置第一个子容器在交叉轴的位置处于开头,可以给单一容器加上align-self:flex-start,旨在给它本身自己添加这个属性。

容易被忽略的点

三个我们比较容易忽略的属性:

1.flex-grow --> 简写为flex: 0
2.flex-shrink --> 简写为flex:1
3.flex-basis --> 简写为flex:auto
4.flex-wrap --> 换行

flex-grow

一般用于规定项在容器中分配剩余空间的相对比例,一般用于设置子容器的占比。

flex-shrink

用于子容器的收缩规则,可以设置收缩占比,比如延展2倍(flex-shrink:2)或者缩小0.6倍(flex-shrink:0.6)

flex-basis

一般用于设置元素在主轴方向上的初始大小,默认是auto,如果需要改变盒子的大小我们可以使用flex-basis对子容器的大小进行改变,如:flex-basis:200px

而我们想要通过文本大小设置容器大小的话可以通过:

1.auto
2.max-content
3.min-content
4.flex-basis test

flex-wrap

这里主要是分清wrap、nowrap和wrap-reverse的区别,相信通过下图即清晰可见

总结

css样式繁多,但是只需要按照本文的分类,即可分门别类的对流式布局进行记忆;本人一般分为父容器子容器常用属性不常用属性 以及 其常见形式进行记忆.

最后

整理了一套《前端大厂面试宝典》,包含了HTML、CSS、JavaScript、HTTP、TCP协议、浏览器、VUE、React、数据结构和算法,一共201道面试题,并对每个问题作出了回答和解析。

有需要的小伙伴,可以点击文末卡片领取这份文档,无偿分享

部分文档展示:



文章篇幅有限,后面的内容就不一一展示了

有需要的小伙伴,可以点下方卡片免费领取

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/190290.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C语言#if、##ifdef、#ifndef的用法详解

假如现在要开发一个C语言程序,让它输出红色的文字,并且要求跨平台,在 Windows 和 Linux 下都能运行,怎么办呢?这个程序的难点在于,不同平台下控制文字颜色的代码不一样,我们必须要能够识别出不同…

2023最新版easyrecovery数据恢复软件免费版测评

大家好,关于easyrecovery数据恢复软件免费版很多朋友都还不太明白,今天小编就来为大家分享关于easyrecovery数据恢复软件免费版下载使用的知识,希望对各位有所帮助! EasyRecovery其实是目前为止我用的最喜欢的一款数据恢复软件&a…

C++string的模拟实现(上篇)

目录 一.命名空间的封装与交换函数模板 1.命名空间的封装与类的定义 2.交换函数模板 二.string类的四个重要默认成员函数 1.构造函数的类外定义: 2.析构函数在类外的定义 3.拷贝构造函数在类外的定义 4.赋值运算符重载在类外的定义 5.关于两个string对象…

在线 OJ 项目(一) · 项目介绍 · 进程与线程 · 实现编译运行模块

一、项目介绍二、导入依赖、创建基本项目结构导入依赖创建基本项目结构三、进程、线程的基础知识回顾四、封装操作进程的工具类五、实现 “编译运行” 模块 Task 类六、封装读写文件的方法修改 JDK 版本七、Task 类的实现八、整理一下项目列表一、项目介绍 项目实现一个在线 O…

煤矿AI智能视频分析识别系统 opencv

煤矿AI智能视频分析识别系统通过opencvpython 深度学习网络模型,对皮带跑偏、撕裂、堆煤、异物、非法运人、有煤无煤状态等异常情况,以及人员工服穿戴、反光衣、安全帽、睡岗离岗、打电话、抽烟等行为进行自动抓拍存档。OpenCV基于C实现,同时…

【正点原子FPGA连载】第二十八章Linux并发与竞争 摘自【正点原子】DFZU2EG_4EV MPSoC之嵌入式Linux开发指南

1)实验平台:正点原子MPSoC开发板 2)平台购买地址:https://detail.tmall.com/item.htm?id692450874670 3)全套实验源码手册视频下载地址: http://www.openedv.com/thread-340252-1-1.html 第二十八章Linux…

【splishsplash】Houdini粒子的导入与导出

Houdini粒子的导入与导出 Houdini导入到splish 在Houdini中使用file导入任意几何模型 使用points from volume采样点,使其粒子化 使用file导出粒子化之后的模型,后缀写bhclassic 创建json场景文件(建议放到MyScences文件夹) …

C语言指针是什么?

计算机中所有的数据都必须放在内存中,不同类型的数据占用的字节数不一样,例如 int 占用 4 个字节,char 占用 1 个字节。为了正确地访问这些数据,必须为每个字节都编上号码,就像门牌号、身份证号一样,每个字…

HTTP协议 | 青训营笔记

1、概述 HTTP协议,超文本传输协议 应用层的协议,基于TCP协议,简单可扩展(可以自定义header) 每个HTTP请求都可以分为请求和响应两个部分 无状态的(不知道之前的请求是携带过什么信息) 2、协…

【Qt】8.QPainter、高级设置、手动调用绘图事件、绘图设备、文件操作、文件信息

目录 QPainter 代码 widget.h widget.cpp 结果 高级设置 代码 widget.h widget.cpp 结果 手动调用绘图事件 代码 widget.h widget.cpp 结果 绘图设备 代码 widget.h widget.cpp 结果 文件操作 代码 widget.cpp 结果 文件信息 代码 widget.cpp 结果…

一文带你看懂健康管理系统----IPMI

目录 1. IPMI概述 2. IPMI系统设计 3. 主BMC模块设计 5. 从IPMI模块设计 6. 名词解释 6. 代码 1. IPMI概述 智能平台管理接口(IPMI:Intelligent Platform Management Interface)是一项应用于服务器管理系统设计的标准,由Int…

BSN-DDC基础网络详解(一):基础介绍

BSN-DDC基础网络推出已经一年了,得到了行业应用方和广大开发者的高度认可。一年中BSN产品技术团队也在根据市场业务需求不断更新功能服务,我们将通过本系列文章为大家系统化介绍DDC网络的功能和使用,为感兴趣的朋友提供学习帮助。BSN-DDC基础…

历史与今日的事件

作者简介:一名在校云计算网络运维学生、每天分享网络运维的学习经验、和学习笔记。 座右铭:低头赶路,敬事如仪 个人主页:网络豆的主页​​​​​​ 目录 前言 1.2023年1月31日中国最新量子计算机“悟空”即将问世&#xff0c…

【34】C语言 | 动态内存管理

目录 1.为什么存在动态内存分配 2、动态内存函数的介绍 2.1 malloc和free 2.2 calloc 2.3 realloc 1.为什么存在动态内存分配 我们已经掌握的内存开辟方式有: int val 20; //在栈空间上开辟四个字节 char arr[n] {0}; //在栈空间上开辟10个节的连续空间 但是上述的开辟…

mPEG-SS-NHS甲氧基聚乙二醇-二硫键-琥珀酰亚胺酯

mPEG-SS-NHS甲氧基聚乙二醇-双硫键-活性酯 名称:甲氧基聚乙二醇-双硫键-琥珀酰亚胺酯 英文名称:mPEG-SS-NHS 存储条件:-20C,避光,避湿 用 途:仅供科研实验使用,不用于诊治 外观: 固体或粘性…

【c语言进阶】动态通讯录

🚀write in front🚀 📜所属专栏: c语言学习 🛰️博客主页:睿睿的博客主页 🛰️代码仓库:🎉VS2022_C语言仓库 🎡您的点赞、关注、收藏、评论,是对我…

彭博:预订量未及预期,索尼大幅削减PS VR2首季订单

在索尼VR新品:PS VR2正式发货前夕,彭博社爆料称:因预订量不及预期,索尼已经大幅削减PS VR2首季订单量。消息人士称,索尼PS VR2发布后首个季度的订单目标是200万台,现已根据预订量减半,至约100万…

iOS 视频播放器开发

需求设计 做一个小学生教育辅导视频播放器。 参考小猿搜题视频播放器 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-L0GsyFSt-1675164972791)(https://tva1.sinaimg.cn/large/008vxvgGgy1h9xk4fm5xfj31sx0u0mz0.jpg)] [外链图片转存失败,源站可…

Java中的JCA对基于密码的加密进行成功的蛮力搜索攻击所需的时间估计

对于JCA中基于密码的DES加密实现,固定一些盐和迭代计数,并记录加密/解密所需的平均时间;估计成功进行蛮力搜索攻击所需的时间Name: NIHAO DONG Number: 201476606 Password List:N Password 1 P$$W0rD 2 thisismypassword 3 VeryLongP$$W0rD fi…

[0CTF 2016]piapiapia(字符逃逸详解)

目录 知识点 信息收集 尝试SQL注入 源码目录扫描 代码审计 payload生成 知识点 信息泄露参数传递数组绕过字符串检测反序列化字符逃逸 信息收集 收集到了一只超可爱的小喵 尝试SQL注入 用户名不存在的回显 密码无效的回显 用户存在,密码错误的回显 判断闭…