弹性布局 flex

【LVGL】弹性布局(Flex)学习 请注意,LVGL 的 flex 布局功能需要通过 lv_conf.h 中的 LV_USE_FLEX 全局启用。 阅读详情

1、flex布局是什么?

Flex 是 Flexible Box 的缩写,意为"弹性布局",用来为盒状模型提供最大的灵活性。任何一个容器都可以指定为 Flex 布局。行内元素也可以使用 Flex 布局。

弹性布局 flex 是CSS中 display 的一个属性值,通过在父容器上添加 display:flex; 属性,便可以实现其子元素在父元素中的弹性布局。

但要注意的是 display:flex; 这一条样式只会作用在添加这一属性的父容器和非隔代子容器上,换句话说,父容器上的 diaplay:flex; 属性并不会使其直系子元素中的子元素产生弹性布局。通俗的话就是:爹只能管得到自己的儿子、而管不到自己的孙子。如果想要在下一层中继续使用弹性布局,我们可以在相应的子元素上再次添加 display:flex; 属性来实现

采用 Flex 布局的元素,称为 Flex 容器(flex container),简称"容器"。它的所有子元素自动成为容器成员,称为 Flex 项目(flex item),简称"项目"。

2、容器的属性

  • flex-direction
  • flex-wrap
  • flex-flow
  • justify-content
  • align-items
  • align-content

2.1 flex-direction 属性

flex-direction属性 决定主轴的方向(即项目的排列方向),可以简单的将多个元素的排列方向从水平方向改为垂直方向,或者反之。

其有四个属性值:

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

语法格式:

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

对应的样式如图:
在这里插入图片描述

千万不要单单把“主轴”与“水平正向”划等号,虽然说在CSS中规定的默认值是这样的。而交叉轴表示的就是与主轴垂直的那条轴线。

2.2 flex-wrap 属性

默认情况下,项目都排在一条线(又称"轴线")上。flex-wrap属性定义,如果一条轴线排不下,如何换行

能取三个值:

语法格式:

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

(1)nowrap(默认):内容在单行显示,不进行换行

在这里插入图片描述

(2)wrap:多行显示,会进行换行,第一行在上方。

在这里插入图片描述

(3)wrap-reverse:多行显示,会进行换行,第一行在下方。

在这里插入图片描述

2.3 flex-flow 属性

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

语法格式:

.flexBox {
  flex-flow: <flex-direction> || <flex-wrap>;
}

2.4 justify-content 属性

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

它可能取5个值。具体对齐方式与轴的方向有关。下面假设主轴为从左到右:

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

语法格式:

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

对应的样式如图:
在这里插入图片描述

2.5 align-items 属性

align-items属性定义项目 在交叉轴上如何对齐。

它可能取5个值。具体的对齐方式与交叉轴的方向有关,下面假设交叉轴从上到下。

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

语法格式:

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

对应的样式如图:在这里插入图片描述

2.6 align-content 属性

align-content属性定义了 多根轴线的对齐方式。如果项目只有一根轴线,该属性不起作用。

语法格式:

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

该属性可能取6个值:

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

对应的样式如图:
在这里插入图片描述

3. 项目的属性

以下6个属性设置在项目上

  • order
  • flex-grow
  • flex-shrink
  • flex-basis
  • flex
  • align-self

3.1 order 属性

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

语法格式:

.item {
  order: <integer>;
}

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

3.2 flex-grow 属性

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

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

样式如图:
在这里插入图片描述
如果所有项目的 flex-grow属性都为1,则它们将等分剩余空间(如果有的话)。
如果一个项目的flex-grow属性为2,其他项目都为1,则前者占据的剩余空间将比其他项多一倍。

3.3 flex-shrink 属性

flex-shrink属性定义了项目的缩小比例,默认为1,即如果空间不足,该项目将缩小。

语法格式:

.item {
  flex-shrink: <number>; /* default 1 */
}

样式如图:
在这里插入图片描述
如果所有项目的flex-shrink属性都为1,当空间不足时,都将等比例缩小。
如果一个项目的flex-shrink属性为0,其他项目都为1,则空间不足时,前者不缩小。

负值对该属性无效。

3.4 flex-basis属性

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

语法格式:

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

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

3.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)。

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

3.6 align-self 属性

align-self属性允许单个项目有与其他项目不一样的对齐方式,可覆盖align-items属性。默认值为auto,表示继承父元素的align-items属性,如果没有父元素,则等同于stretch。

语法格式:

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

样式如图:
在这里插入图片描述
该属性可能取6个值,除了auto,其他都与align-items属性完全一致。

参考链接: Flex 布局教程:语法篇 - 阮一峰

flex弹性布局 flex布局 阅读详情

相关推荐

弹性布局(Flex)

弹性布局(Flex)提供更加有效的方式对容器中的子元素进行排列、对齐和分配剩余空间。容器默认存在主轴与交叉轴,子元素默认沿主轴排列,子元素在主轴方向的尺寸称为主轴尺寸,在交叉轴方向的尺寸称为交叉轴尺寸。弹性布局在开发场景中用例特别多,比如页面头部导航栏的均匀分布、页面框架的搭建、多行数据的排列等等。图1主轴为水平方向的Flex容器示意图。

4813

css-flex布局1

<!doctype html> <html> <head> <meta charset="utf-8"> <title></title> <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" /&g...

jieweiwujie的博客 119

【三维重建】基于多视角图像的三维重建

基于多视角图像的三维重建》

m0_64446860的博客 8758

css flex:1;详解,配合demo效果解答

给设置了display:flex的子组件设置了flex:1;就能让他填满整个容器,如果有多个就平均flex:1;是另外三个样式属性的简写,等同我们就针对上面3个属性结合代码来进行讲解。

小漠007的专栏 5517

C51单片机驱动ILI9341彩屏实战:从Proteus仿真到绘制自定义图案(附完整代码)

本文详细介绍了使用C51单片机驱动ILI9341彩屏的完整实战流程。内容涵盖硬件连接、8080并行接口时序模拟、寄存器初始化、屏幕方向设置以及基本图形绘制原理,并重点讲解了如何在Proteus仿真环境中搭建电路、调试代码,最终实现自定义图案的显示。文章提供了完整的代码示例,为嵌入式开发学习者和复古硬件爱好者提供了一套可行的解决方案。

rnn9storyteller的博客 511

安装部署 Guacamole 远程桌面网关

Guacamole 是Apache基金会提供的一组基于web的远程桌面访问工具,支持 VNC、RDP、SSH、 Telnet 等协议,支持远程透传音视频。

UsamaBinLaden6976498的专栏 1963

Flex布局

flex布局 将固定的像素大小转换为弹性比例大小 公式:结果 = 目标/上下文 即 元素大小除以元素所在的容器 弹性布局可以做到什么 方便垂直居中内容 改变元素的视觉次序 在盒子里自动插入空白及其对其元素,自动对其元素间的空白 自从有了flex,float已经可以说是后娘养的了。 那么问题来了,如何实现flex布局 <!doctype html> <html...

顽石⚡ 651

【5G全网建设】Option3X和Option2模式建安市、兴城市和四水市核心网、承载网网络设计与部署

拓扑规划: Option 3X网络拓扑图规划 Option 2网络拓扑图规划 设备部署: 建安市核心网 建安市承载中心机房 建安市骨干汇聚机房 建安市3区汇聚机房 建安市C站点无线机房 兴城市核心网 兴城市承载中心机房 兴城市骨干汇聚机房 兴城市2区汇聚机房 兴城市B站点无线机房 数据配置: 建安市核心网 建安市承载中心机房 建安市骨干汇聚机房 建安市3区汇聚机房 建安市C站点无线机房 兴城市核心网 兴城市承载中心机房 兴城市骨干汇聚机房 兴城市2区汇聚机房 兴城市B站点无线机房 业务调试

weixin_67183034的博客 8854

flex:1是什么?

理解下flex: 1,以及flex中的值的作用😆

LueLueLue77的博客 3万+

产品必备技能(十):如何绘制原型图?先要绘制页面流程图+页面原型图!附实操原型图、流程图实例(抖音)

文章目录目标题目实操步骤模板实操【抖音】APP的视频发布功能页面流程绘制页面流程图合格标准绘制页面原型图合格标准 目标 新入行的产品经理都对原型抱有向往的心境,但是有经验的产品经理不会一上来就画原型,而是先画页面流程再来画原型。通过学习,你将学会如何用页面流程图规划用户行为路径、如何借助原型识别问题、减少风险、有效沟通。 题目 任意选择一款你喜欢的产品,体验某个功能,下载并梳理此功能至少5个以上的页面流程跳转点(后面会解释),还原2 - 3个主要界面的低保真原型图。 实操步骤 可使用手绘以及Process

汪雯琦的博客 4841

ITK-snap医学图像标注方法(超级详细)——保姆级

医学3D图像标注方法,非常详细,保姆级

jialiyk的博客 3万+

flex布局,flex:1的计算

一、flex的属性梳理 注意,设为 Flex 布局以后,子元素的float、clear和vertical-align属性将失效。 (1)flex1的计算规则 第一步:先明确:flex 是 flex-grow | flex-shrink | flex-basis 的缩写。 1、默认情况:flex:0 1 auto; 2、flex取值为none 0 0 auto; 3、flex取值au...

CJXBShowZhouyujuan的博客 6620

【STM32项目】基于STM32设计的震动马达超声波电机高频震动——高级定时器PWM互补输出带死区控制__资料编号3

实现高级定时器互补输出带死区控制,实现震动/超声波电机/马达,高频震动。使用 STM32F103 芯片输出两路互补 PWM,并带有死区和刹车控制功能。定时器 1 通道 1 及其互补通道输出PWM,且带死区控。当定时器 1 的刹车输入引脚被拉高时,产生刹车时间,即定时器 8 停止输出 PWM。当刹车输入引脚被拉高时,通道 1 和通道 2 将从有波形输入状态转换成无效电平状态。

嵌入式阿齐Archie 6742

flex弹性布局详解

一、什么是弹性布局 弹性布局(flex container),页面中任何一个元素只要设置了display:flex属性,那么当前盒子都称为弹性盒子。弹性盒子默认有两条轴: 默认水平显示的主轴 和 始终要垂直于主轴的侧轴(也叫交叉轴),在弹性盒子中所有的子元素都是沿着主轴方向显示。 与传统布局的区别 传统布局,基于盒模型,依赖 display属性 、position属性 、float属性,它对于那些特殊布局非常不方便。 传统布局 兼容性好 布局繁琐 局限性,不能在移动端很好的布局 flex布局 操作方

weixin_49115895的博客 1万+

【YOLOv11改进 - 特征融合】DySample :超轻量级且高效的动态上采样器

【YOLOv11改进 - 特征融合】DySample :超轻量级且高效的动态上采样器

专注于图像领域,主要研究内容包括计算机视觉和深度学习,特别是在图像分类、目标检测和图像生成等方面有深入的研究和实践经验。 1070

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

弹性布局(flex布局)

—弹性布局的基本使用— 今天我们将来认识一下弹性布局的基本使用方法。 首先我们简单的认识一下弹性布局: display:flex; flex-direction:__;(空白处添加属性) 弹性布局的使用需要由父元素和其子元素同时组成—— <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <style t

Miziguo的博客 9747

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

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

css 弹性布局 flex 详解

默认值为auto,表示继承父元素的align-items属性,如果没有父元素,则等同于stretch。Flex 是 Flexible Box 的缩写,意为"弹性布局",用来为盒状模型提供最大的。align-self属性允许单个项目有与其他项目不一样的对齐方式,(4)justify-content 项目在主轴上的对齐方式。(默认,不换行 / wrap(换行,第一行在上方)/(和父元素的align-self值一致)/(默认,主轴为水平方向,起点在左)/(项目的第一行文字的基线对齐)/

2301_76669854的博客 2104

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

最详细完整的flex弹性布局

初了解 在学习弹性布局之前首先就要明白其概念 flex 就是flexible box的缩写,意为弹性布局,用来为盒装模型提供最大的灵活性 任何一个容器都可以指定为flex布局 .box{ display: flex; } 行内元素当然也可以使用flex布局 .box{ display: inline-flex; } Webkit 内核的浏览器,必须加上-webkit前缀。 .box{ display: -webkit-flex; /* Safari */ display: flex; }

angula 5万+

关于弹性布局flex

@flex弹性布局的使用 关于弹性布局的简介 在之前的学习中,对页面布局有了大概的了解,发现许多页面的布局都是遵循几个盒子水平排列,或是竖直排列;竖直排列还好,水平方向则需要使用float属性,在加上设置间隔等,代码繁多,且容易混淆。而flex布局则良好的解决了这个问题。 基本概念 1.容器:需要添加弹性布局的父元素 2.项目:弹性布局容器的每一个子元素,称为项目 3.主轴:在弹性布局中,我们会通...

HelloZxy9527的博客 768

【CSS】Flex 弹性布局

Flex(弹性盒子) 布局是一种一维布局,一次只能处理一行或者一列,也就是单个维度上的元素布局。:当 Flex 容器和 Flex 项目中没有添加任何容器和项目相关属性时。当项目换行时,align-self 是相对于其所在的那一行的轴线而言。:采用 Flex 布局的元素,两种方式指定元素为 Flex 容器。:Flex 容器中,主轴默认是水平方向,交叉轴是垂直方向。一种是垂直方向起点在上,一种是水平方向起点在左。Flex 容器属性,是添加到容器上。Flex 项目属性,是添加到项目上。将一行或一列视为整体。

多看别人为什么,多问自己凭什么? 1376

弹性布局flex

现代web开发,需要适应不同屏幕尺寸、设备的大小,灵活显示页面内容;这就要求,网页可以随着页面尺寸的改变而动态调整布局,float浮动属性可以根据显示设备大小,自动换行显示,但是,浮动可提供的可控制的属性太少了,所以难于随心所欲的控制布局。比如:浮动float定位的问题:想把多个块元素水平放在一行内,要计算的元素太多,一个元素的总宽度=,因此一行内的多个元素都按这个计算总宽度,实在太繁琐。然而,弹性布局flex,就可以解决这个问题;;弹性布局可。

wu1862953的博客 1487

flex弹性布局(详解)

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

wshwsh_的博客 1万+

Flex弹性布局详解

Flex弹性布局 说明:重点是分清楚主轴方向、侧轴方向的设置,作用在父元素和作用在子元素上的属性。 (1)控制方向 flex-direction控制主轴方向,取值有row(默认) |row-reverse | column | column-reverse(垂直方向翻转) align-items控制侧轴方向,取值有strenth(默认) | flex-start(顶部对齐) |flex-end(底...

技术无止境,人生仍探索。 2042

彻底搞懂弹性布局flex

说明:大家在看弹性布局这一块,最好按照从上到下一点一点看,因为上下联系比较紧密。 点击这里,看原文带目录的。 弹性布局基本概念 任何一个容器都可以设置弹性布局,一旦容器设置了 弹性布局以后,子元素的float、clear和vertical-align属性将失效。 如果设置容器的水平方向为主轴,则垂直方向为交叉轴。 如果设置容器的垂直方向为主轴,则水平方向为交叉轴。 弹性布局父类容器常用属性 设置容器为弹性布局 display display:flex 设置

hlwdt的博客 1642

什么是Flex弹性布局

什么是Flex弹性布局Flex是Flexible Box的简称,意为弹性布局,顾名思义,在网页布局时,他可以给我们提供更多的灵活性。说明:1.flex是display的一个属性值。与之相当应的还有一个是inline-flex。2.设置了Flex布局后,子元素的float,clear,还有verticle-align属性都不起作用。3.设置了display:flex属性的元素,称为Flex容器,他里...

芝麻开花不开门的博客 517

LVGL--> Flex(弹性布局)

Flex(弹性布局)Overview(概述)Flexbox(或简称 Flex)是的一个子集。它可以将项目排列成行或列(轨道),处理环绕,调整项目和轨道之间的间距,处理 grow 以使项目填充剩余空间的最小/最大宽度和高度。要使对象 flex 容器调用 lv_obj_set_layout(obj, LV_LAYOUT_FLEX)。请注意,LVGL 的 flex 布局功能需要通过 lv_conf.h 中的 LV_USE_FLEX 全局启用。

嵌入式菜鸟,练习时长一坤年。 4092
上一篇: div水平垂直居中的方法
下一篇: setTimeout 详解
Dark_programmer
博客等级 码龄7年 9073粉丝 307原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值