浅析flex 布局

本文介绍了Flex布局的基本概念,包括容器的主轴和交叉轴,以及flex item。说明了创建Flex布局的方法,还详细阐述了作用在父元素和子元素上的属性,如flex - direction、flex - wrap、order、flex - grow等,并给出了各属性的示例和效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Flex基本概念:

容器默认存在两根轴:水平的主轴(main axis)和垂直的交叉轴(cross axis)。主轴的开始位置(与边框的交叉点)叫做main start,结束位置叫做main end;交叉轴的开始位置叫做cross start,结束位置叫做cross end。

flex容器中的每个单元块被称作flex item,其实flex布局的属性虽然分为父级容器的属性和子级容器的属性,但是其实所有的效果都是作用在子级容器上的,只不过父级容器的属性作用的是子集容器整体或者说是所有的子级容器。

 

如何创建flex布局?

给div这种块状元素元素设置display:flex或者给span这种内联元素设置display:inline-flex,flex布局就创建完成了

属性介绍以及示例:

作用在父元素上的属性。

  1.flex-direction  控制flex子项整体的布局方向。

  row : 子项按照布局顺序从浏览器的左侧开始横向排列

  

 

  row-reverse :子项按照布局顺序从浏览器的右侧开始横向排列

  

 

  column :子项按照布局顺序从浏览器的顶端开始竖向排列

  

 

  column-reverse:子项按照布局倒序从浏览器的顶端开始竖向排列

  

 

  2.flex-wrap  控制子项整体是单行显示还是换行显示,如果换行上下左右的方向是否反方向显示

  nowrap:不换行,宽度不够时子项进行缩小

  

 

  wrap:换行显示

  

 

  wrap-reverse:反方向换行显示

  

 

  3.flex-flow 上面两个属性的缩写形式

  flex-flow: <‘flex-direction’> || <‘flex-wrap’>

  默认值:row nowrap

 

  4.justify-content  控制子项整体在水平方向上的对齐方式和分布方式

  flex-start:与主轴的开始位置对齐

     

  

  flex-end:与主轴的结束位置对齐

  

  

  center:在主轴的中间位置

  

  

  space-between:在水平方向上两端对齐

  

 

  space-around:环绕对齐,子项左右两边的空余距离相等。

  

  

  space-evenly:均分对齐,子项和子项之间包括子项和两端的距离相等

  

 

  5.align-items  控制子项们在垂直方向上的对齐方式

  stretch:

  

  

 flex-start:主轴的开始位置对齐

 

 flex-end:主轴的结束位置对齐

 

 

 center:中间对齐

 

 baseline:子项内容的基线对齐。

 

 6.align-content  控制子项整体在垂直方向上的对齐方式和分布方式

 flex-start:在主轴的开始位置对齐

 

  

 flex-end:主轴的结束位置对齐

 

 

 center:主轴中心对齐

 

 

 

 space-between:两端对齐

 

 

 space-around:环绕对齐(同上)

 

 

 space-evenly:等距对齐

 

 

 作用在子元素上的属性

 任何子项都没有设置多余的属性时,子项按照内容顺序从左到右一次排序

 

 1.order  定义子项的排序位置 属性值为整数类型 默认值为0 数值越小越靠前 如果想让某一个子项在最前面 可以给他设置一个比0小的数值例如-1

 

 

 2.flex-grow  放大 属性值不支持负值 默认为0。将剩余空间平均分配,设置的属性值为总份数中的几份

 下图中,我给第一个子项设置flex-grow为4,第四个子项设置flex-grow为2,所以剩余空间会被平均分成6份,1占4份,4占2份

 

 

 3.flex-shrink  缩小 (flex空间不足时) 属性值不支持负值 默认值为1(即所有的子项都会收缩,设置为0则表示不收缩,保持原始的宽度)

 下面的例子:所有盒子的初始宽度都是400,我只给序号为4的盒子设置了flex-shrink: 0 属性;所以即使整体布局的宽度变小时,序号4的盒子宽度也会依然保持400,而其他没有设置该属性的因为没有再设置新的属性值(所以默认为1),都发生了缩小

  

 

 4.flex-basis  最小宽度 (在分配剩余空间之前的大小) 默认值 auto 有宽度值就是宽度值,没有就按内容来

 当设置了flex-basis值之后,width的属性值不再起作用,即使设置了@important或者是行内样式也依然没有作用

 例子:

html代码:
<div class="flexFather flexFather1"> <div class="child child1" style="background-color: aquamarine">1</div> <div class="child child2" style="background-color: palevioletred">2</div> <div class="child child3" style="width:200px;background-color: peachpuff">3</div> </div>
css代码:
.flexFather{ display: flex; flex-direction: row; height:600px; } .flexFather .child{ flex-basis:400px; height:100px; width: 100px !important; font:bold 20px/100px "Micsoroft"; text-align: center; }

  

 效果图:

     

 

  5.flex  前面三个属性的缩写

  flex: none | auto | [ <'flex-grow'> <'flex-shrink'>? || <'flex-basis'> ]

   默认值:0 1 auto

 --------------------------------------------------------end------------------------------------------------------------


 

转载于:https://www.cnblogs.com/wangrenmeng/p/10423975.html

内容概要:本文深入探讨了Kotlin语言在函数式编程和跨平台开发方面的特性和优势,结合详细的代码案例,展示了Kotlin的核心技巧和应用场景。文章首先介绍了高阶函数和Lambda表达式的使用,解释了它们如何简化集合操作和回调函数处理。接着,详细讲解了Kotlin Multiplatform(KMP)的实现方式,包括共享模块的创建和平台特定模块的配置,展示了如何通过共享业务逻辑代码提高开发效率。最后,文章总结了Kotlin在Android开发、跨平台移动开发、后端开发和Web开发中的应用场景,并展望了其未来发展趋势,指出Kotlin将继续在函数式编程和跨平台开发领域不断完善和发展。; 适合人群:对函数式编程和跨平台开发感兴趣的开发者,尤其是有一定编程基础的Kotlin初学者和中级开发者。; 使用场景及目标:①理解Kotlin中高阶函数和Lambda表达式的使用方法及其在实际开发中的应用场景;②掌握Kotlin Multiplatform的实现方式,能够在多个平台上共享业务逻辑代码,提高开发效率;③了解Kotlin在不同开发领域的应用场景,为选择合适的技术栈提供参考。; 其他说明:本文不仅提供了理论知识,还结合了大量代码案例,帮助读者更好地理解和实践Kotlin的函数式编程特性和跨平台开发能力。建议读者在学习过程中动手实践代码案例,以加深理解和掌握。
内容概要:本文深入探讨了利用历史速度命令(HVC)增强仿射编队机动控制性能的方法。论文提出了HVC在仿射编队控制中的潜在价值,通过全面评估HVC对系统的影响,提出了易于测试的稳定性条件,并给出了延迟参数与跟踪误差关系的显式不等式。研究为两轮差动机器人(TWDRs)群提供了系统的协调编队机动控制方案,并通过9台TWDRs的仿真和实验验证了稳定性和综合性能改进。此外,文中还提供了详细的Python代码实现,涵盖仿射编队控制类、HVC增强、稳定性条件检查以及仿真实验。代码不仅实现了论文的核心思想,还扩展了邻居历史信息利用、动态拓扑优化和自适应控制等性能提升策略,更全面地反映了群体智能协作和性能优化思想。 适用人群:具备一定编程基础,对群体智能、机器人编队控制、时滞系统稳定性分析感兴趣的科研人员和工程师。 使用场景及目标:①理解HVC在仿射编队控制中的应用及其对系统性能的提升;②掌握仿射编队控制的具体实现方法,包括控制器设计、稳定性分析和仿真实验;③学习如何通过引入历史信息(如HVC)来优化群体智能系统的性能;④探索中性型时滞系统的稳定性条件及其在实际系统中的应用。 其他说明:此资源不仅提供了理论分析,还包括完整的Python代码实现,帮助读者从理论到实践全面掌握仿射编队控制技术。代码结构清晰,涵盖了从初始化配置、控制律设计到性能评估的各个环节,并提供了丰富的可视化工具,便于理解和分析系统性能。通过阅读和实践,读者可以深入了解HVC增强仿射编队控制的工作原理及其实际应用效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值