【前端】1、flex 布局详解

news2024/11/26 0:25:32

flex 布局目录

  • 一、flex container 和 flex items
  • 二、用在 flex container 上的 CSS 属性
    • (1) flex-direction
    • (2) justify-content
    • (3) align-items
    • (4) flex-wrap
    • (5) flex-flow
    • (6) align-content
  • 三、用在 flex items 上的 CSS 属性
    • (1) order(顺序)
    • (2) align-self
    • (3) flex-grow
    • (4) flex-shrink
    • (5) flex-basis
    • (6) flex

一、flex container 和 flex items

🎄 1、开启了 Flex 布局的元素叫 flex container
🎄 2、flex container 里面的直接子元素叫做 flex items

🎄 3、若元素的 display 属性的值为 flexinline-flex,则该元素是 flex container

🎄 4、display 属性值为 flex,则 flex containerblock-level 形式存在

🎄 5、display 属性值为 inline-flex,则 flex containerinline-level 形式存在

二、用在 flex container 上的 CSS 属性

✏️ flex-direction
✏️ justify-content
✏️ align-items
✏️ flex-wrap
✏️ flex-flow
✏️ align-content

(1) flex-direction

  • flex-items 默认都是沿着 main axis(主轴)从 main start 开始往 main end 方向排布

在这里插入图片描述

flex-direction 决定了 main axis 的方向(有四个取值):
① row(默认)
② row-reverse
③ column
④ column-reverse

(2) justify-content

justify-content 决定了 flex-itemsmain axis 上的对齐方式

在这里插入图片描述

flex-start(默认值):与 main start 对齐
flex-end:与 main end 对齐
center:沿着主轴居中 对齐

space-between:1️⃣ flex items 之间的距离相等;2️⃣ 与 main start、main end 两端对齐

space-evenly:1️⃣ flex items 之间的距离相等;2️⃣ flex items 与 main start、main end 之间的距离等于 flex items 之间的距离
在这里插入图片描述

space-around:1️⃣ flex items 之间的距离相等;2️⃣ flex items 与 main start、main end 之间的距离等于 flex items 之间的距离的一半

在这里插入图片描述

(3) align-items

align-items 决定了 flex-itemscross axis(交叉轴) 上的对齐方式

cross axis(交叉轴)的方向有两种:① 向下;② 向右

在这里插入图片描述

flex-start:与 cross start 对齐
flex-end:与 cross end 对齐
center:在 cross end 上居中对齐

baseline:与基准线对齐
stretch(默认):当 flex itemscross axis 方向的 size 为 auto(不固定) 时,会自动拉伸至填充 flex container

📌 size:① 假如 cross axis 向下,sizeheight;② 假如 cross axis 向右,sizewidth

(4) flex-wrap

flex-wrap 决定 flex-container 是单行还是多行

nowrap:单行
wrap:多行【个人理解:朝着交叉轴的方向换行

在这里插入图片描述

wrap-reverse:多行(对比 wrap,cross start 和 cross end 相反)【个人理解:朝着交叉轴的方向换行

在这里插入图片描述

(5) flex-flow

flex-flowflex-directionflex-wrap 的简写【这两个属性可以只出现一个,可以只是一种属性的简写】

下面的两种写法的作用是一样的:

  #root-box {
      flex-flow: column wrap;
  }
   
  #root-box2 {
      flex-direction: column; 
      flex-wrap: wrap;
  }

下面的两种写法的作用是一样的:

  #root-box {
      flex-flow: row-reverse;
  }
   
  #root-box2 {
      flex-direction: row-reverse; 
      flex-wrap: nowrap;
  }

下面的两种写法的作用是一样的:

  #root-box {
      flex-flow: wrap;
  }
   
  #root-box2 {
      flex-direction: row; 
      flex-wrap: wrap;
  }

(6) align-content

align-content 决定了多行 flex-itemscross axis(交叉轴) 上的对齐方式【用法与 justify-content 类似】

在这里插入图片描述

flex-start:与 cross start 对齐
flex-end:与 cross end 对齐
center:沿着 cross axis(交叉轴) 居中对齐
stretch:与 align-itemsstretch 类似
space-between:1️⃣ flex items 之间的距离相等;2️⃣ 与 cross start、cross end 两端对齐
space-around:1️⃣ flex items 之间的距离相等;2️⃣ flex items 与 cross start、cross end 之间的距离等于 flex items 之间的距离的一半
⑦ ⑤ space-evenly:1️⃣ flex items 之间的距离相等;2️⃣ flex items 与 cross start、cross end 之间的距离等于 flex items 之间的距离

🎄 单行用 align-items
🎄 多行用 align-content

在这里插入图片描述

三、用在 flex items 上的 CSS 属性

✏️ order
✏️ align-self
✏️ flex-grow
✏️ flex-shrink
✏️ flex-basis
✏️ flex

(1) order(顺序)

order 决定 flex items 的排布顺序

🎄 可设置任意整数(正整数、负整数、0)
🎄 值越小排在越前面
🎄 默认值是 0
🎄 order 值一样的时候按照渲染顺序排布

(2) align-self

flex items 可通过 align-self 覆盖 flex container 中设置的 align-items

🎄 默认值是 auto【遵从 flex containeralign-items 设置】

🎄 属性:① stretch、② flex-start、③ flex-end、④ center、⑤ baseline
🎄 效果和 align-items 差不多

(3) flex-grow

  • flex-grow 决定 flex items 如何扩展

🍀 当 flex container 在 main axis 方向上有剩余 size( 宽度或高度 ) 的时候,flex-grow 属性才有效

🍀 取值:可设置任意非负数字(正小数、正整数、0)【 默认是 0

在这里插入图片描述


在这里插入图片描述
在这里插入图片描述


① 如果所有 flex items 的 flex-grow 总和 sum 超过 1,每个 flex item 扩展的 size 为 'flex container 剩余 size' * (flex-grow / sum)

② 如果所有 flex items 的 flex-grow 总和 sum 不超过 1,每个 flex item 扩展的 size 为 'flex container 剩余 size' * flex-grow

🍀 flex items 扩展后的最终 size 不能超过 max-widthmax-height

(4) flex-shrink

  • flex-shrink 决定 flex items 如何收缩

🍀 当 flex items 在 main axis 方向上超过 flex container 的 size 的时候,flex-shrink 属性才有效

🍀 取值:可设置任意非负数字(正小数、正整数、0)【 默认是 1

  • 收缩比例:flex-shrink * (item 的 size)
  • size 是 width 或 height

① 收缩比例:flex-shrink * item 的 基础 size 【基础 size:flex item 放入 flex container 之前的 size】
② 每个 flex item 收缩的 size 为:
flex items 超出 flex container 的 size *收缩比例 / 所有 flex items 的收缩比例之和
③ flex items 收缩的最终 size 不能小于 min-width 或 min-height

(5) flex-basis

flex-basis 用于设置 flex items 在 main axis 上的 base size

auto(默认值):取决于内容本身的 size
content:取决于内容本身的 size

决定 flex items 最终 base size 的因素,优先级从高到低为:

1️⃣ max-width、max-height、min-width、min-height
2️⃣ flex-basis
3️⃣ width、height
4️⃣ 内容本身的 size

 .son {
     /* 平分 */
     flex-basis: 0; /* flex items 的 size 是 0 */
     flex-grow: 1; /* 每个 flex item 的扩展比例是一样的 */
 }

在这里插入图片描述

(6) flex

  • flex 属性是 flex-grow、flex-shrink(可有可无)、flex-basic 的简写

下面3种写法都是平分布局:

 .son {  
     /* flex item 平分布局 */
     flex: 1;
 }
 .son {  
     flex-grow: 1;
     flex-basis: 0;
 }
 .son {  
     flex: 1 0;
 }
  • 默认值0 1 auto
  • auto: 0 0 auto

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

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

相关文章

【Linux】Linux下的基本指令

😛作者:日出等日落 📘 专栏:数据结构 人生就是这样,要耐的住寂寞,才守得住繁华。 —— 七堇年 目录 Linux的基本命令(常用): ls 指令: pwd指…

告别混乱代码,这份 SpringBoot 后端接口规范太及时了

告别混乱代码,这份 SpringBoot 后端接口规范太及时了! 文章目录 一、前言 二、环境说明 三、参数校验 1、介绍2、Validator 自动抛出异常(使用)3、分组校验和递归校验4、自定义校验 四、全局异常处理 1、基本使用2、自定义…

【Android入门到项目实战-- 9.4】—— 方向传感器的详细使用教程

目录 一、基础知识 二、实战使用 一、基础知识 Android的方向传感器,返回三轴的角度数据,方向数据的单位是角度。 提供三个数据:azimuth、pitch和roll。 azimuth:方位,返回水平时磁北极和Y轴的夹角,范围是…

Qt绘图(好玩)

release下的exe文件流畅度要远好于debug下的exe文件。 源码来源:基于Qt5模拟企业微信聊天界面(QWidget)_阿木大叔mu的博客-CSDN博客 初看时,觉得很神奇,猫眼会随着鼠标移动。 看完源码后,感觉很精美。 全是用painter画上去的&…

09_Uboot启动流程_1

目录 链接脚本u-boot.lds详解 U-Boot启动流程详解 reset函数源码详解 lowlevel_init函数详解 s_init函数详解 链接脚本u-boot.lds详解 要分析uboot的启动流程,首先要找到“入口”,找到第一行程序在哪里。程序的链接是由链接脚本来决定的,所以通过链接脚本可以找到程序的入…

【射影几何08】仿射映射

一、说明 简单来说,“仿射变换”就是:“线性变换”“平移”,但这是在笛卡尔坐标下的表现,然而在射影几何中,其中有更合乎逻辑的解释。本文讲仿射映射的定义,以及仿射不变性的特点。 二、仿射映射 2.1 直线…

2022 年全国硕士研究生入学统一考试英语(二)试题

2022年全国硕士研究生入学统一考试英语(二)试题 SectionⅠUse of English Directions: Read the following text. Choose the best word(s) for each numbered blank and mark A, B, C or D on the ANSWER SHEET. (10 points) Harlan Coben believes tha…

ChatGPT诞生的新岗位:提示工程师(Prompt Engineer)

ChatGPT诞生的新岗位:提示工程师(Prompt Engineer) Prompt 工程师是什么? 是识别人工智能的错误和隐藏功能,以便开发者可以对这些发现进行处理。 如果你正在寻找科技领域最热门的工作,你可以尝试了解如何与AI聊天机…

分布式文件存储系统Minio使用总结

分布式文件存储系统Minio使用总结 1.分布式文件系统应用: 1.1、Minlo 介绍: Minlo 是一个基于Apache License v2.0开源协议的对象存储服务。它兼容亚马逊S3云存储服务接口,非常适合于存储大容量非结构化的数据,例如图片、视频、日志文件、…

一篇文章带你了解抖音来客功能的使用方法和注意事项

抖音是近年来备受欢迎的社交媒体平台之一,其中的“来客”功能更是让许多人喜爱。那么什么是抖音来客呢?抖音来客是指在直播过程中,可以邀请其他抖音用户进行互动和参与,从而增加直播的热度和粉丝数量。下面不若与众科技就来介绍一…

FPGA - 7系列 FPGA内部结构之CLB -03- CLB相关原语以及应用

前言 本文节选UG474的第二章,进行整理翻译。CLB资源被FPGA综合工具自动有效地使用,不需要任何特殊的FPGA专用编码。一些HDL编码建议和技术可以帮助优化设计以获得最大效率。 设计检查清单 这些指南是为有效使用7系列CLB的设计建议提供的快速核对表。7…

阿里云服务器公网带宽计费模式选择方法(一篇搞定)

阿里云服务器公网带宽计费模式按固定带宽和按使用流量哪个划算?阿里云百科以北京地域为例,按固定带宽计费1M带宽一个月23元,按使用流量计费1GB流量0.8元,如果云服务器带宽使用率低于10%,那么首选按使用流量计费&#x…

springboot+vue心灵治愈交流平台(源码+文档)

风定落花生,歌声逐流水,大家好我是风歌,混迹在java圈的辛苦码农。今天要和大家聊的是一款基于springboot的心灵治愈交流平台。项目源码以及部署相关请联系风歌,文末附上联系信息 。 💕💕作者:风…

【DAY48】移动端布局

const autoprefixer require(‘autoprefixer’) const pxtoviewport require(‘postcss-px-to-viewport’)module.exports { css: { loaderOptions: { postcss: { postcssOptions: { plugins: [ autoprefixer(), pxtoviewport({ viewportWidth: 375, // 视窗宽度&#xff0c…

MySql命令报错:Duplicate entry ‘10‘ for key ‘PRIMARY‘解决方案

MySql命令报错:Duplicate entry ‘10‘ for key ‘PRIMARY‘解决方案 翻译错误先正常制作表格错一遍(体验报错)找到报错原因,并改正其他可能造成报错的情况总结解决方案 翻译错误 经常遇到这个问题,今天我把这个问题记…

基于session实现共享登录

基于session实现登录 1.发送短信验证码 Override public Result sendCode(String phone, HttpSession session) {//1.校验手机号是否合规if (RegexUtils.isPhoneInvalid(phone)) {//2.不合规直接返回 错误信息return Result.fail("手机号错误");}//3.如果合规生成验…

Ubuntu 安装Samba

每次装ubuntu虚拟机搞开发都要装Samba,记录一下Samba安装方法: 1.输入安装指令 需要使用root权限进行samba的安装操作; 输入指令 : apt-get update apt-get install samba samba-common 2.配置Samba 输入指令修改 Samba配置 &…

GEE:变异系数法在遥感影像分析中的应用及权重计算

作者:CSDN @ _养乐多_ 本文介绍了在Google Earth Engine(GEE)平台上基于变异系数法的多指标加权遥感影像分析方法。该方法通过计算每个指标的平均值和标准差,进而计算变异系数来评估指标的变化程度。利用变异系数,我们可以计算每个指标的权重,并将其应用于加权和指数的计…

jieba分词(2):倒排索引算法

1 字典树 1.1问题描述 通过上一篇的案例我孟可以看出&#xff0c;我们的一句话会分出来很多的关键字&#xff0c;都给他建立<K,List<Id>> 我们的Map 里面将容纳非常多的元素&#xff01; 那我们往Map 集合里面放元素时&#xff0c;将有29 个被放进去&#xff01;…

leetcode:234.回文链表(详解)

前言&#xff1a;内容包括-题目&#xff0c;代码实现&#xff0c;大致思路&#xff0c;代码解读 题目&#xff1a; 给你一个单链表的头节点 head &#xff0c;请你判断该链表是否为回文链表。如果是&#xff0c;返回 true &#xff1b;否则&#xff0c;返回 false 。 示例 1&…