web前端开发中flex弹性布局基础知识最全整理!
yuyutoo 2024-10-25 19:19 6 浏览 0 评论
欢迎关注!
flex弹性容器和弹性元素
通过设置元素的display属性值为flex,就可以将该元素设置为弹性容器(flex container),该元素的在文档流中的子元素自动成为弹性容器中的成员,成为弹性项目(flex item)。
弹性容器默认存在两根轴:水平的主轴(main axis)和垂直的交叉轴(cross axis)。主轴的开始位置(与边框的交叉点)叫做main start,结束位置叫做main end;交叉轴的开始位置叫做cross start,结束位置叫做cross end。弹性项目默认沿主轴排列。单个项目占据的主轴空间叫做main size,占据的交叉轴空间叫做cross size。
flex方向
flex方向主要有四个相关属性
flex-direction用于设置弹性项目的排列方向。取值为row时项目自左向右排列,取值为row-reverse时项目自右向左排列,取值为column项目自上向下排列,取值为column-reverse时项目自下向上排列。
flex-wrap用于设置弹性项目的换行显示方式。取值为no-wrap时默认为不换行显示,取值为wrap时项目自动向下或向右换行显示,取值为wrap-reverse时项目自动向上或向左换行显示。
flex-flow为flex-wrap与flex-direction的简写方式。
order用于设置弹性项目在容器中的显示位置,取值为整数,默认值为0,order值大的弹性项目自动向后排列。
flex弹性
flex弹性主要有四个相关属性
flex-basis用于设置弹性项目的初始宽或高(并作为弹性的基础)。flex-direction取值为row时设置宽,取值为column则设置高。语法为flex-basis:main-size\<width>。
flex-grow用于设置弹性项目可用剩余空间的比例,也称伸展因子,是flex弹性布局中最重要的元素之一。弹性容器(flex-container)先按照flex-basis中设定的宽度进行布局,如果有剩余空间,再按照flex-grow中设定的比例进行分配。
flex-shrink用于将弹性项目超出容器的部分按照比例在已有容器空间中进行缩减。
flex为以上三个属性的合写属性,即可以在flex中同时设置以上三个值。语法为flex:<'flex-grow'>||<'flex-shrink'>||<'flex-basis'>,默认值为:0 1 main-size;即不分配剩余空间,按比例同时缩小弹性项目以适应容器,弹性项目宽度或高度为所占据的主轴空间。
flex对齐
flex对齐主要有四个相关属性
justify-content用于设置主轴(main-axis)上的对齐方式。弹性元素依据主轴定位,所以不能使用left与righ,因为位置是相对的。(相似属性为text-align)。justify-content默认取值为flex-start,表示左对齐或上对齐;取值为flex-end表示右对齐或下对齐;取值为center在主轴上居中对齐;取值为space-between表示两端对齐;取值为space-around表示每个项目两侧的间隔相等,项目之间的间距是项目与边框的间距的2倍。
align-items用于设置辅轴(cross-axis)上的对齐方式。(相似属性为vertical-align),align-items取值为flex-start,表示左对齐或上对齐;取值为flex-end表示右对齐或下对齐;取值为center在辅轴上居中对齐;取值为baseline表示与项目的第一行文字的基线对齐;取值为stretch(默认值)表示如果项目未设置高度或设为auto,将占满整个容器的高度。
align-self用于设置单个弹性项目(flex-item)在辅轴(cross-axis)上的对齐方式,justify-content和align-items都是设置弹性容器中整体弹性项目的对齐方式,而align-self针对的是单个弹性项目。
align-content用于设置定义了多根轴线的对齐方式。比如在使用到换行时,多行的对齐方式。取值和含义与justify-content和align-items相同,只是无法取到align-items中的baseline值。
收藏转发请先关注,谢谢支持!
相关推荐
- 网站建设:从新手到高手
-
现代化网站应用领域非常广泛,从个人形象网站展示、企业商业网站运作、到政府公益等服务网站,各行各业都需要网站建设。大体上可以归结四类:宣传型网站设计、产品型网站制作、电子商务型网站建设、定制型功能网站开...
- JetBrains 推出全新 AI 编程工具 Junie,助力高效开发
-
JetBrains宣布推出名为Junie的全新AI编程工具。这款工具不仅能执行简单的代码生成与检查任务,还能应对编写测试、验证结果等复杂项目,为开发者提供全方位支持。根据SWEBench...
- AI也能写代码!代码生成、代码补全、注释生成、代码翻译轻松搞定
-
清华GLM技术团队打造的多语言代码生成模型CodeGeeX近期更新了新的开源版本「CodeGeeX2-6B」。CodeGeeX2是多语言代码生成模型CodeGeeX的第二代模型,不同于一代CodeG...
- 一键生成前后端代码,一个36k星的企业级低代码平台
-
「企业级低代码平台」前后端分离架构SpringBoot2.x,SpringCloud,AntDesign&Vue,Mybatis,Shiro,JWT。强大的代码生成器让前后端代码一键生成,无需写任...
- Gitee 代码托管实战指南:5 步完成本地项目云端同步(附避坑要点)
-
核心流程拆解:远程仓库的搭建登录Gitee官网(注册账号比较简单,大家自行操作),点击“新建仓库”,建议勾选“初始化仓库”和“设置模板文件”(如.gitignore),避免上传临时文件。...
- jeecg-boot 源码项目-强烈推荐使用
-
JEECGBOOT低代码开发平台...
- JetBrains推出全新AI编程工具Junie,强调以开发者为中心
-
IT之家2月1日消息,JetBrains发文,宣布推出一款名为Junie的全新AI编程工具,官方声称这款AI工具既能执行简单的代码生成与检查等基础任务,也能应对“编写测试、验证结...
- JetBrains旗下WebStorm和Rider现已加入“非商用免费”阵营
-
IT之家10月25日消息,软件开发商JetBrains今日宣布,旗下WebStorm(JavaScript开发工具)和Rider(.NET开发工具)现已加入“非商用免费”阵营。如果...
- 谈谈websocket跨域
-
了解websocketwebsocket是HTML5的新特性,在客户端和服务端提供了一个基于TCP连接的双向通道。...
- websocket调试工具
-
...
- 利用webSocket实现消息的实时推送
-
1.什么是webSocketwebSocket实现实现推送消息WebSocket是HTML5开始提供的一种在单个TCP连接上进行全双工通讯的协议。以前的推送技术使用Ajax轮询,浏览器需...
- 为 Go 开发的 WebSocket 库
-
#记录我的2024#...
- 「Java基础」Springboot+Websocket的实现后端数据实时推送
-
这篇文章主要就是实现这个功能,只演示一个基本的案例。使用的是websocket技术。...
你 发表评论:
欢迎- 一周热门
- 最近发表
- 标签列表
-
- mybatis plus (70)
- scheduledtask (71)
- css滚动条 (60)
- java学生成绩管理系统 (59)
- 结构体数组 (69)
- databasemetadata (64)
- javastatic (68)
- jsp实用教程 (53)
- fontawesome (57)
- widget开发 (57)
- vb net教程 (62)
- hibernate 教程 (63)
- case语句 (57)
- svn连接 (74)
- directoryindex (69)
- session timeout (58)
- textbox换行 (67)
- extension_dir (64)
- linearlayout (58)
- vba高级教程 (75)
- iframe用法 (58)
- sqlparameter (59)
- trim函数 (59)
- flex布局 (63)
- contextloaderlistener (56)