CSS中的flex布局详细讲解

Flex 布局

Flex 布局是一种现代的 CSS 布局模型,用于实现灵活的盒子布局。它提供了强大的布局能力,使得元素可以自动调整大小、对齐和分布,适用于构建响应式和可伸缩的布局。

Flex 布局使用 flex 容器和 flex 项目的概念。容器是一个父元素,包含了一组子元素作为项目。以下是对 Flex 布局中常用属性的详细讲解。

Flex 容器属性

display

display 属性用于定义一个元素作为 Flex 容器。

.container {display: flex;
}
  • display: flex; 将元素设置为 Flex 容器。
  • display: inline-flex; 将元素设置为内联的 Flex 容器。

flex-direction

flex-direction 属性用于定义 Flex 项目的排列方向。

.container {flex-direction: row;
}
  • flex-direction: row; 水平排列项目(默认值)。
  • flex-direction: row-reverse; 反向水平排列项目。
  • flex-direction: column; 垂直排列项目。
  • flex-direction: column-reverse; 反向垂直排列项目。

flex-wrap

flex-wrap 属性用于定义是否允许 Flex 项目换行。

.container {flex-wrap: nowrap;
}
  • flex-wrap: nowrap; 不允许项目换行(默认值)。
  • flex-wrap: wrap; 允许项目换行。
  • flex-wrap: wrap-reverse; 反向允许项目换行。

justify-content

justify-content 属性用于定义 Flex 项目在主轴上的对齐方式。

.container {justify-content: flex-start;
}
  • justify-content: flex-start; 项目靠主轴起始位置对齐(默认值)。
  • justify-content: flex-end; 项目靠主轴结束位置对齐。
  • justify-content: center; 项目在主轴上居中对齐。
  • justify-content: space-between; 项目在主轴上平均分布,首尾项目靠容器边缘。
  • justify-content: space-around; 项目在主轴上平均分布,项目之间有相等的间隔空间。
  • justify-content: space-evenly; 项目在主轴上平均分布,项目之间和首尾项目到容器边缘的间隔空间均相等。

align-items

align-items 属性用于定义 Flex 项目在交叉轴上的对齐方式。

.container {align-items: center;
}
  • align-items: stretch; 项目拉伸以填满交叉轴空间(默认值)。
  • align-items: flex-start; 项目靠交叉轴起始位置对齐。
  • align-items: flex-end; 项目靠交叉轴结束位置对齐。
  • align-items: center; 项目在交叉轴上居中对齐。
  • align-items: baseline; 项目基线对齐。

align-content

align-content 属性用于定义多行 Flex 项目在交叉轴上的对齐方式。

.container {align-content: flex-start;
}
  • align-content: stretch; 多行项目拉伸以填满交叉轴空间(默认值)。
  • align-content: flex-start; 多行项目靠交叉轴起始位置对齐。
  • align-content: flex-end; 多行项目靠交叉轴结束位置对齐。
  • align-content: center; 多行项目在交叉轴上居中对齐。
  • align-content: space-between; 多行项目在交叉轴上平均分布,首尾项目靠容器边缘。
  • align-content: space-around; 多行项目在交叉轴上平均分布,项目之间有相等的间隔空间。
  • align-content: space-evenly; 多行项目在交叉轴上平均分布,项目之间和首尾项目到容器边缘的间隔空间均相等。

Flex 项目属性

order

order 属性用于定义 Flex 项目的排列顺序。

.item {order: 1;
}
  • order 的值为整数,默认为 0。数值越小,项目越靠前;数值相同时,按照源代码中的顺序排列。

flex-grow

flex-grow 属性用于定义 Flex 项目的放大比例。

.item {flex-grow: 1;
}
  • flex-grow 的值为非负数,默认为 0。项目的宽度将根据放大比例进行分配。

flex-shrink

flex-shrink 属性用于定义 Flex 项目的缩小比例。

.item {flex-shrink: 1;
}
  • flex-shrink 的值为非负数,默认为 1。项目的宽度将根据缩小比例进行分配。

flex-basis

flex-basis 属性用于定义 Flex 项目的初始宽度。

.item {flex-basis: 100px;
}
  • flex-basis 的值可以是长度值(如像素或百分比),也可以是关键字 auto(默认值)。它指定了项目在分配多余空间之前的初始宽度。

flex

flex 属性是 flex-growflex-shrinkflex-basis 的缩写。

.item {flex: 1 1 100px;
}
  • flex 的值是由三个部分组成的缩写:flex-growflex-shrinkflex-basis。可以省略其中的任何一个值,默认值为 0 1 auto

align-self

align-self 属性用于定义单个 Flex 项目在交叉轴上的对齐方式,覆盖了容器的 align-items 属性。

.item {align-self: center;
}
  • align-self 的值与 align-items 属性相同。

以上是 Flex 布局中常用的属性和用法。通过灵活组合这些属性,可以实现各种复杂的盒子布局。

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

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

相关文章

【Go 基础篇】Go语言中的数组:初识与应用

Go语言以其简洁、高效和强大的特性在编程界广受欢迎。数组作为一种基本的数据结构,在各种应用场景中扮演着重要角色。本文将引入Go语言中的数组,介绍其特点、创建、初始化以及基本应用,为你打开数组的大门。 前言 数组是一种固定大小的数据…

七层、四层和五层网络模型区别和联系

七层、四层和五层网络模型区别和联系 概述OSI网络7层模型(概念型框架)概述图片分析 四层模型概述常用协议OSI与TCP/IP四层的区别 五层模型概述三种网络模型对比 总结 概述 网络模型-七层模型(OSI模型)、五层协议体系结构和TCP/IP…

性能优化之分库分表

1、什么是分库分表 1.1、分表 将同一个库中的一张表(比如SPU表)按某种方式(垂直拆分、水平拆分)拆分成SPU1、SPU2、SPU3、SPU4…等若干张表,如下图所示: 1.2、分库 在表数据不变的情况下,对…

“R语言+遥感“水环境综合评价方法

详情点击链接:"R语言遥感"水环境综合评价方法 一:R语言 1.1 R语言特点(R语言) 1.2 安装R(R语言) 1.3 安装RStudio(R语言) (1)下载地址 &…

前端开发中的单伪标签清除和双伪标签清除

引言 在前端开发中,我们经常会遇到一些样式上的问题,其中之一就是伪元素造成的布局问题。为了解决这个问题,我们可以使用伪标签清除技术。本篇博客将介绍单伪标签清除和双伪标签清除的概念、用法和示例代码,并详细解释它们的原理…

服务器卡顿如何排查?

服务器网络卡,一般情况下,请先检查您服务器的使用情况。 1.CPU使用率是否大于50%。 2.网络使用率是否过高。 3.内存使用率是否过高。 如果出现上述情况,则表明您的服务器或网络无法承载您目前的服务,请联系技术人员调整您的资…

如何基于亚马逊云科技打造高性能的 SQL 向量数据库 MyScale

MyScale 是一款完全托管于亚马逊云科技、支持 SQL 的高效向量数据库。MyScale 的优势在于,它在提供与专用向量数据库相匹敌甚至优于的性能的同时,还支持完整的 SQL 语法。在这篇文章中,我们将阐述 MyScale 是如何借助亚马逊云科技的基础设施&…

pnpm无法加载文件 (解决方法 )

现在要运行一个TS的项目,我的电脑上没有安装pnpm,导致我的vscode一直报错无法加载。 pnpm安装: npm install -g pnpm pnpm : 无法加载文件 pnpm : 无法加载文件 C:\Users\HP\AppData\Roaming\npm\pnpm.ps1,因为在此系统上禁止运…

英语略读三

课文的客观,或者逻辑推理 同增通减 比错 对比选项,找一个明显的区别 防并列,文章再说主语在干嘛干嘛的,但是与答案的角度不一样,是并列的关系 在对比选项,不是证明正确的 具体问题具体分析,but…

【30天熟悉Go语言】10 Go异常处理机制

作者:秃秃爱健身,多平台博客专家,某大厂后端开发,个人IP起于源码分析文章 😋。 源码系列专栏:Spring MVC源码系列、Spring Boot源码系列、SpringCloud源码系列(含:Ribbon、Feign&…

亚马逊云科技云技能学习

文章目录 前言一、云技能学习的优势二、云技能学习的学习路径三、云技能学习的未来前景总结 前言 亚马逊云科技(Amazon Web Services,AWS)作为全球领先的云计算服务提供商,提供了众多创新的云技术解决方案。在这些方案中&#xf…

[Linux]文件IO

文章目录 1. 文件描述符1.1 虚拟地址空间1.1.1 存在的意义1.1.2 分区 1.2 文件描述符1.2.1 文件描述符1.2.2 文件描述符表 2. Linux系统文件IO2.1 open/close2.1.1 函数原型2.1.2 close函数原型2.1.3 打开已存在文件2.1.4 创建新文件2.1.5 文件状态判断 2.2 read/write2.2.1 re…

Spring Boot(Vue3+ElementPlus+Axios+MyBatisPlus+Spring Boot 前后端分离)【四】

😀前言 本篇博文是关于Spring Boot(Vue3ElementPlusAxiosMyBatisPlusSpring Boot 前后端分离)【四】,希望你能够喜欢 🏠个人主页:晨犀主页 🧑个人简介:大家好,我是晨犀,希望我的文章…

VMware虚拟机连不上网络

固定ip地址 进入网络配置文件 cd /etc/sysconfig/network-scripts 打开文件 vi ifcfg-ens33 编辑 BOOTPROTO设置为static,有3个值(decp、none、static) BOOTPROTO"static" 打开网络 ONBOOT"yes" 固定ip IPADDR1…

为什么需要websocket?

一、为什么需要websocket? 前端和后端的交互模式最常见的就是前端发数据请求,从后端拿到数据后展示到页面中。如果前端不做操作,后端不能主动向前端推送数据,这也是http协议的缺陷。 因此,一种新的通信协议应运而生---…

【滑动窗口】leetcode1004:最大连续1的个数

一.题目描述 最大连续1的个数 这道题要我们找最大连续1的个数,看到“连续”二字,我们要想到滑动窗口的方法。滑动窗口的研究对象是一个连续的区间,这个区间需要满足某个条件。那么本题要找的是怎样的区间呢?是一个通过翻转0后得到…

go 正则表达式

目录 1. go 正则表达式1.1. Check if the string contains the desired value1.2. MustCompile should not be used1.3. Make the regex string always valid by QuoteMeta1.4. Find the desired word in a string by FindAllString1.5. Extract the desired word/value from a…

抖音web主页视频爬虫

需要抖音主页视频爬虫源码的发私信,小偿即可获得长期有效的采集程序。 比构造 s_v_web_id 验证滑块的方法更快,更稳定。

龙智案例:某大型零售企业如何打造高速、现代化的ITSM体系

在2023 DevOps国际峰会北京站的现场,我们对话了龙智咨询顾问胡若愚,他为我们奖助了一位零售业的大型客户是如何在数字化浪潮中,凭借龙智提供的Jira Service Management产品及服务,打造现代化ITSM平台,提升客户满意度。…

JVM理论知识

一、JVM内存结构 java的内存模型主要分为5个部分,分别是:JVM堆、JVM栈、本地栈、方法区还有程序计数器,他们的用途分别是: JVM堆:新建的对象都会放在这里,他是JVM中所占内存最大的区域。他又分为新生区还…