【前端布局技术】Flex布局

Flex弹性布局 Flex 是 Flexible Box 的缩写,意为"弹性布局",用来为盒状模型提供最大的灵活性。CSS3 弹性盒( Flexible Box 或 flexbox),是一种当页面需要适应不同的屏幕大小以及设备类型时确保元素拥有恰当的行为的布局方式。引入弹性盒布局模型的目的是提供一种更加有效的方式来对一个容器中的子元素进行排列、对齐和分配空白空间。弹性盒子由弹性容器(Flex container)和弹性子元素(Flex item)组成。 阅读详情

Flex 弹性布局

了解Flex布局

Flex — Flexible Box,即弹性布局。

任何一个容器均可以指定为 Flex 布局。

.box {
    display: flex;
}
/* 行内元素也可以使用 Flex 布局 */
.box {
    display: inline-flex;
}
/* 对于Webkit内核的浏览器,需要加上 -webkit- 前缀 */
.box {
    display: -webkit-flex; /* 例如:Safari */
}

需要注意的是:将某一元素设置为Flex布局后,子元素的 float 、clear 以及 vertical-align 属性将会失效!

Flex 布局中的几个基本概念

对于采用 Flex 布局的元素,其被称为 Flex 容器(Flex container),简称为“容器”。它的所有子元素自动成为容器的成员,称为 Flex 项目(Flex item),简称“项目”。

请添加图片描述

如上图, Flex 容器中,默认存在两根轴:

  1. 水平的主轴(main axis)
  2. 垂直的交叉轴(cross axis)

主轴的开始位置(即与容器边框的交点)叫做 main start,而结束位置则叫做 main end。

交叉轴的开始位置叫做cross start,结束位置叫做cross end。

其中,Flex item 默认沿主轴排列。

对于单个项目,其所占据的主轴空间叫做 main size,其所占据的交叉轴空间叫做 cross size。

容器 (Flex container) 的属性

容器有6个属性:

  • flex-direction
  • flex-wrap
  • flex-flow
  • justify-content
  • align-items
  • align-content
1.flex-direction 属性

flex-direction 属性用于决定容器主轴的方向。(由于项目默认沿主轴排列,所以实际上也是决定项目的排列方向)。

.box {
	display: flex;
    flex-direction: row | row-reverse | column | column-reverse;
}

flex-direction属性有4个值

  • row(默认):主轴为水平方向,起点在左端(项目从左往右排列)。
  • row-reverse:主轴为水平方向,起点在右端(项目从右往左排列)。
  • column:主轴为垂直方向,起点在上沿(项目从上往下排列)。
  • column-reverse:主轴为垂直方向,起点在下沿(项目从下往上排列)。

这个属性比较好理解,这里就不上图了。

2.flex-wrap 属性

在默认情况下,项目都排在主轴上。而 flex-wrap 属性则是用于定义,当一条轴线排不下时,如何进行换行。

.box {
  flex-wrap: nowrap | wrap | wrap-reverse;
}

flex-wrap属性有3个值

  • nowrap(默认):不换行(列)。
  • wrap:
    1. 主轴为横向时:从上到下换行。
    2. 主轴为纵向时:从左到右换列。
  • wrap-reverse:
    1. 主轴为横向时:从下到上换行。
    2. 主轴为纵向时:从右到左换列。

换行(列)时,项目仍按照设定的主轴方向排列!

效果如下图所示:

请添加图片描述
在这里插入图片描述

注意:当设置

.box {
	display: flex;
    flex-direction: row-reverse;
    flex-wrap: wrap;
}

时,换行方式与上图相同。
在这里插入图片描述
在这里插入图片描述

注意:当设置

.box {
	display: flex;
    flex-direction: column-reverse;
    flex-wrap: wrap;
}

时,换行方式与上图相同。

3.flex-flow 属性

flex-flow 属性是 flex-direction 属性和 flex-wrap 属性的简写形式,默认值为 row nowrap:

.box {
    display: flex;
  flex-flow: <flex-direction> <flex-wrap>;
}
4.justify-content 属性

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

.box {
  ...;
  justify-content: flex-start | flex-end | center | space-between | space-around;
}

justify-content属性有5个值

  • flex-start(默认):与主轴的起点对齐。
  • flex-end:与主轴的终点对齐。
  • center:与主轴的中点对齐。
  • space-between:两端对齐主轴的起点与终点,项目之间的间隔都相等。
  • space-around:每个项目两侧的间隔相等。所以,项目之间的间隔比项目与边框的间隔大一倍。

效果如下图所示:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

5.align-items 属性

align-items 属性用于定义项目在交叉轴上如何对齐。纵向交叉轴始终自上而下,横向交叉轴始终自左而右。

.box {
  ...;
  align-items: flex-start | flex-end | center | baseline | stretch;
}

align-items属性有5个值

  • flex-start:交叉轴的起点对齐。
  • flex-end:交叉轴的终点对齐。
  • center:交叉轴的中点对齐。
  • baseline: 项目的第一行文字的基线对齐。
  • stretch(默认值):如果项目未设置高度或设为auto,项目将占满整个容器的高度。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

设置为 baseline 时,向各项目的第一行文字的基线对齐

在这里插入图片描述
设置为 stretch 时
在这里插入图片描述
而此时还可能会出现项目换行的情况,如下:

两条主轴上的项目纵向铺满交叉轴!
在这里插入图片描述
如果交叉轴是横向,那么不给项目设置宽,则项目会横向铺满。如下图:
在这里插入图片描述
如果容器的宽高都设置,但不设置 align-items属性,那么默认值为 flex-start,与交叉轴起点对齐。

6.align-content 属性

align-content 属性用于定义**多根轴线(多根轴线,即有多行或多列项目)**的对齐方式。如果项目只有一根轴线,该属性不起作用。

.box {
  ...;
  align-content: flex-start | flex-end | center | space-between | space-around | stretch;
}

align-content属性有6个值

  • flex-start:与交叉轴的起点对齐。
  • flex-end:与交叉轴的终点对齐。
  • center:与交叉轴的中点对齐。
  • space-between:与交叉轴两端对齐,轴线之间的间隔平均分布。
  • space-around:每根轴线两侧的间隔都相等。所以,轴线之间的间隔比轴线与边框的间隔大一倍。
  • stretch(默认值):主轴线占满整个交叉轴。

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

项目 (Flex item) 的属性

设置在 Flex item 上的6个属性。

  • order
  • flex-grow
  • flex-shrink
  • flex-basis
  • flex
  • align-self
1.order 属性

order 属性用于定义容器中项目的排列顺序。数值越小,排列越靠前,默认为0。

.item {
  order: <integer>;
}

效果如下:
在这里插入图片描述

如果不给项目设置 order 值,默认值为0,那么项目的顺序按照结构顺序排列。

2.flex-grow 属性

flex-grow 属性用于定义项目的放大比例,默认为0,即如果存在剩余空间,也不放大。

.item {
  flex-grow: <number>; /* default 0 */
}

效果如下:

不放大

在这里插入图片描述
将剩余空间分为4份,3份给黄色,1份给紫色

在这里插入图片描述
注意这里的分配空间的计算方式:

div1 — 不放大

div2 — 占据 3 / (3 + 1) = 3 /4 的剩余空间

div3 — 占据 1 / (3 + 1) = 1 /4 的剩余空间

3.flex-shrink 属性

…

4.flex-basis 属性

flex-basis属性定义了在分配多余空间之前,项目占据的主轴空间(main size)。浏览器根据这个属性,计算主轴是否有多余空间。它的默认值为auto,即项目的本来大小。

.item {
  flex-basis: <length> | auto; /* default auto */
}

它可以设为跟width或height属性一样的值(比如350px),此时项目将占据固定空间。

效果如下:
在这里插入图片描述

可以看到,对于项目1,无论是把 width 放在 flex-basis 上方还是下方都不起作用了,只要设置了 flex-basis 项目就占据主轴固定空间,width 就不起作用。

5.flex 属性

flex属性是flex-grow, flex-shrink 和 flex-basis的简写,默认值为0 1 auto。后两个属性可选。

.item {
  flex: none | [ <'flex-grow'> <'flex-shrink'>? || <'flex-basis'> ]
}

该属性有两个快捷值:auto (1 1 auto) 和 none (0 0 auto)。

建议优先使用这个属性,而不是单独写三个分离的属性,因为浏览器会推算相关值。

6.align-self 属性

align-self属性允许单个项目有与其他项目不一样的对齐方式,可覆盖align-items属性。

默认值为auto,表示继承父元素的align-items属性,如果没有父元素,则等同于stretch。

.item {
  align-self: auto | flex-start | flex-end | center | baseline | stretch;
}

align-self属性有6个值,除了auto,其他都与align-items属性完全一致。
在这里插入图片描述

前端知识——css之flex布局 1.基本概念 flex布局是一种布局模型,经常被称之为flexbox,使用flex布局之后,他会给子元素提供强大空间分配和对齐能力。 在没有使用flex布局之前,常用布局有:流式布局,浮动布局,定位布局等等。缺陷是子元素需要自己控制自己在父元素中的位置,还要注意父元素高度坍塌。 flex的优点就是避免不灵活的布局形式,创建更多种布局模式供你选择,解决了子元素的对齐和分布与 响应式等问题。缺点是只能依靠自身的布局模式,稍有变化则无法改变。 2.flex... 阅读详情

相关推荐

前端样式 Flex布局(Flexible Box Layout)用法详解

Flex布局

u013558123的博客 1805

CSS常用布局二(flex布局)

flex布局 前言:flex是flexible box的缩写,译为“弹性布局”,用来为盒模型提供最大的灵活性,任何一个容器都可以指定为flex布局,只需要设置“display:flex"即可;行内元素可以通过设置”display:inline-flex“实现;需要注意的是,如果设置了flex布局,则子元素的float、clear和vertical-align属性将失效; 1.基本概念 使用了flex布局的元素,称为flex容器(flex container),简称为”容器“。它所有的子元素自动生成容器成员,

BreenCL的博客 8536

Python+OpenCV实战:雨天车牌识别准确率提升300%的5个关键技巧

本文针对雨天车牌识别准确率骤降的难题,分享了五个基于Python和OpenCV的实战技巧。通过暗通道先验去雾、雨纹抑制、光照不变量颜色空间转换、多尺度自适应阈值分割以及融合传统特征与轻量级深度学习的混合识别策略,系统性地提升了算法在恶劣天气下的鲁棒性。这些方法能有效解决图像模糊、对比度低、字符断裂粘连等问题,为智能交通等实际应用提供可靠解决方案。

k8l9m0n的博客 716

Flex布局 (上万字)超详细讲解 这篇就够了

Flex布局,全称为“Flexible Box Layout”,意为“弹性盒布局”。它是一种现代的CSS布局模式,旨在提供一种更有效的方式来布局、对齐和分配容器中项目之间的空间,即使它们的大小未知或动态变化。灵活性:Flex布局允许项目在容器中灵活地扩展和收缩,以填充可用空间或调整大小以适应内容。对齐方式:Flex布局提供了各种对齐选项,可以轻松地实现水平和垂直对齐。方向控制:可以方便地改变主轴的方向,使项目在水平或垂直方向上排列。空间分配。

制定持续可量化的目标,不断坚持。 4万+

vscode+keil嵌入式软件开发全流程

vscode+keil嵌入式软件开发全流程

AspringQ的博客 6782

用Django框架+爬虫技术实现自动获取可画(Canva)团队会员资格的方法

可画(canva)是一个非常流行的在线平面设计平台,因为它无需专业训练和技能就可以利用其丰富的资源设计出美观、酷炫的作品,因而它受到了极其广泛的设计专业和非专业人群的喜爱本文介绍了一种方法,它采用Django网络框架与爬虫技术相结合,实时监控定时更新可画团队版免费邀请链接的网站页面,一旦链接有更新动作,第一时间获取相关信息,并直接加载这个有效的邀请链接,自动进入可画网站获得团队版使用资格。

hhyyqq的博客 2208

前端技术之flex布局

目录 flex布局 01. flex的介绍 用flex布局实现水平垂直居中 2.容器的属性 flex-direction 示例 justify-content 示例 flex-wrap 示例 align-items (单行对齐) 示例 align-content(多行对齐) 示例 3.项目属性 flex 示例 align-self 示例 4. flex布局的导航栏 示例 flex布局 01. flex的介绍 了解flflex布局、它与传统布局的区别及.

qq_36279562的博客 986

华为2019秋招笔试Java实现(2)

华为2019秋招笔试Java实现(2) 笔试日期2019年8月14日 第二题(200分) 题目描述 某程序员小A,有一种表格数据需要存储在文件中。表格中的每一行,由若干个字段组成,每个字段可以是整数或字符串(字符串只包含数字、字母以及特殊字符!@#%^&*()",)。小A设计了一种存储格式,采用文本的方式对表格数据进行存储。文本文件中的每一行,代表了表格数据中的一行数据。具体格式描述如下: 1、采用逗号分隔不同的字段(逗号前后无空格); 2、数字直接采用10进制的文本存储; 3、字符串的存储规则如下

hewhys的博客 1549

现代前端布局技术演进与实战:从浮动到Flex

本文系统梳理了前端布局技术的演进历程,重点解析浮动、定位和Flex三大布局方案。浮动布局曾是多列布局的唯一方案,但存在代码冗余、响应式困难等问题;定位布局提供精准控制,但需注意z-index层叠上下文;Flex布局通过弹性容器和项目概念,实现了简洁高效的一维布局、智能空间分配和灵活对齐。文章详细比较了各方案的技术细节、实战技巧和性能优化,并提供了商品列表、弹窗居中、吸顶导航等典型场景的实现案例,帮助开发者掌握不同场景下的最优布局选型。

weixin_47228574的博客 1042

基于 WebGoat 平台的 SQL 注入攻击

基于 WebGoat 平台的 SQL 注入攻击

Labulongdong的博客 3522

600份国家自然基金申报书--模板

600份国家自然基金申报书--模板

需要远程指导仿真实验、代码有问题的,请后台私信或者关注公众号 4186

前端技术—9.flex布局

flex布局基本属性及概念

不放手,不错过的博客 402

《C/C++等级考试(1~8级)历届真题解析》专栏总目录

中国电子学会《全国青少年软件编程等级考试》C/C++编程(1~8级)历届真题解析。订阅后可阅读专栏内所有真题解析,真题持续更新中!

人生就是一个不断学习的过程 2万+

04-前端技术_flex布局

目录 一,体验 二,flex-direction 三,justify-content 四,flex-wrap和align-items 1,flex-wrap 2,align-items 五,align-content 六,flex 七,align-self 八,导航栏 有兴趣的同学欢迎加入QQ学习交流群:1126298731 有问题欢迎提问,大家一起在学习Java的路上打怪升级!(o゜▽゜)o☆[BINGO!] 一,体验 了解flex布局、它与传统布局的区别及应用场景..

&再见萤火虫&的博客 253

自动驾驶模拟器:基于 Python + Carla,在家也能训练一个“L4 级”自动驾驶 AI 模型

市面上有很多模拟器(AirSim, LGSVL),但 Carla 是目前学术界和工业界最主流的选择。画质强:基于 UE4,光影、天气(下雨、夕阳)极其逼真,这对训练视觉模型至关重要。API 爽:完全使用 Python 控制,对 AI 工程师极度友好。资产多:内置各种车辆、行人、交通信号灯、城市地图。编写 Python 代码,让车自己在城市里跑,通过摄像头看到路况,自己决定怎么打方向盘。通过 Carla,我们把价值数百万的自动驾驶测试场搬进了电脑。

BUG猿的博客 269

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

前端技术(三)flex布局学习笔记

Flex布局 Flex是Flexible Box的缩写,意为”弹性布局”,用来为盒状模型提供最大的灵活性。 任何一个容器都可以指定为Flex布局。 .box{ display: flex; } 行内元素也可以使用Flex布局。 .box{ display: inline-flex; } Webkit内核的浏览器,必须加上-webkit前缀。 .box{ display: -webkit-flex; /* Safari */ display: flex; } 注意,设为Flex布局以后,

Java是最好喝的咖啡的博客 346

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

Flex布局和Grid布局

Flex布局,即Flex Box(弹性布局),是一种现代且强大的CSS布局方式。 效果: 决定主轴的方向,即项目的排列方向。取值包括:补充代码: 效果: 定义项目在轴线上的排列方式,即是否换行。取值包括:和属性的简写形式。 3.4、justify-content 定义项目在主轴上的对齐方式。取值包括:: : : : : : : 定义项目在交叉轴上的对齐方式。取值包括:: 补充代码: 效果: : : : : : 更进一步了解: 代码: 效果: 用于控制的对齐方式,如果只有一行则不会起作用。

testleaf.cn 2495

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

web前端开发技术储久良第三版_web前端开发技术学习 -CSS flex布局

Flex布局详解传统的网站中,布局的解决方法都是通过盒模型来控制,依赖Display,float,position来进行实现的,虽然可以解决大部分的布局情况,但是一些比较特殊的布局实现起来就存在问题了,比如我们常见的垂直居中,因此Flex就被制造出来了,随着时间的考验,flex慢慢的被浏览器和开发者接受。可以非常简单的响应各种页面布局。Flex是什么Flex称之为弹性盒子,能够给盒子模型提供更加强...

weixin_39676242的博客 293

前端开发技术点总结(六):flex布局案例

使用flex弹性盒子布局,在标签元素的布局可以起到很好的作用。 案例如下。 需求:一行显示3个带图标的选项,选项平分。 代码如下。 html: <div class="titleItem"> <a href="#" class="item"> ...

jimson_zhu的博客 628

前端常用布局大全——细致讲解

作为一名前端开发者,每天都在和浏览器打交道,而浏览器中展示的网页需要做的很美观,并且可以吸引住用户浏览网页,提升用户体验是很重要的,所以不可避免的就要用到各种各样的布局。今天就来列举一下各种常用布局以及实现方法。...

qq_44197554的博客 3880

web前端弹性布局

在Flex布局中,父元素被称为Flex容器(flex container),而其子元素被称为Flex项目(flex item)。Flex容器通过设置display属性为flex或inline-flex来定义,而Flex项目则是容器内的子元素。通过设置不同的属性值,可以控制元素在主轴和侧轴上的排列方式、子元素的排列方式、是否换行等。justify-content:设置主轴上的子元素排列方式,例如居中、居左、居右等。align-items:设置侧轴上的子元素排列方式(单行),例如居中、居左、居右等。

2301_80107299的博客 545

flex布局精华

flex布局精华 文章下面的实例很nice 文章地址

weixin_44930420的博客 158

2024年前端最全单独移动端页面-流式布局和flex弹性布局技术(1),字节跳动前端开发面试题

根据路线图上的重点去进行有针对性的学习,在学习过程中,学会写笔记,做总结。开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】html5 / css3 学习笔记JavaScript 学习笔记Vue 学习笔记Vue 学习笔记。

2401_84447390的博客 932

Css flex 布局 阮一峰

flex 布局 阮一峰

m0_51105610的博客 911

CSS flex布局旋转主轴

一篇关于CSS flex布局旋转主轴以及弹性伸缩比的笔记

Chasingthewinds的博客 5545

flex布局

【代码】flex布局。

2501_90994005的博客 216
上一篇: 【前端布局规范与方案】三种传统布局方式
下一篇: 【前端布局规范与方案】前端常见的布局方案
cannotbecounted
博客等级 码龄7年 101粉丝 59原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值