Flex入门基础——项目item的属性(order、flex-grow、flex-shrink、flex-basis、flex、align-self)

news/2024/5/19 16:30:54 标签: flex, flex-grow, order, flex-basisi, flex-shrink

1、order

取值:数值

功能:(1)容器中有多个项目,

      (2)项目的默认摆放时沿主轴(纵向)方向,即按文档中dom元素的书写顺序进行排列的;

应用:order属性用于更改在主轴方向上排列顺序。

order数值越小,排列越靠前,默认为0,可以为负数。


注意:order它与主轴的方向有关系(默认情况为主轴的方向)

.container{
width:100px;height:100px;
flex-flow:column wrap;
}
.item1{
order:-1;
}
.item2{
order:1;
}

<div class="container">
<div class="item1">1</div>
<div class="item2">2</div>
</div>

现象:1排列在2的前边。


2、flex-grow

取值:数值

功能:放大因子

默认值为0,表示不去放大。

a、使用前提:主轴方向上有多余的空间可以让项目去“伸展”

b、计算步骤

(1)统计多余的空间:M=容器的宽度-所有项目的宽度

(2)确定均分的份数:N=项目flex-grow的值之和

(3)计算单位空间:P=M/N

(4)项目放大后的宽度:R=宽度+P*当前flex-flow值


使用方法:如上述代码示例中,若设置第一个item1——flex-grop:0,第二个item2——flex-grop:1

结果:第一个为默认的大小,第二个若容器项目有多余的空间,即会放大在item2上边。

结论:

如果一个项目flex-grow:0,则它的宽度不会放大

项目flex-grow越大,说明它在放大后,会得到更多的空间

项目flex-grow越小,说明它在放大后,会得到更少的空间

特别的:如果所有的项目有一样的flex-grow,它们会等分多余的空间,

也就是说,放大后大小=自身的大小+等值分配的大小


3、flex-shrink

取值:数值

功能:缩小因子

使用前提:主轴方向上的空间不够,项目被压缩。

默认值为1(当项目主轴方向不能容下全部项目,并且不允许换行。

     由于flex-shrink为1,所有项目都会被压缩。


各自被压缩的数值是不一样的,如下公式:

(1)总差值,即需要被压缩的大小:M=容器的宽度-项目的宽度之和

(2)加权和:N=flex-shrink  *项目宽度值之和

(3)缩小后的宽度=项目值- 项目值*  flex-shrink /N * N 

结论:

(1)项目默认会被缩小(空间不够) flex-shrink:1

(2)Flex-shrink越大,被压缩的越多;

(3)Flex-shrink越小,被压缩的越小。特别的,当flex-shrink:0时,不会被压缩。


4、flex-basis 

表示在主轴上占据的大小。

默认值为auto(主轴时水平方向时为宽度width,垂直方向时为高度height

对于值而言,既可以是像素px,也可以是百分比,相对于容器container大小而言。


5、flex弹性的

(1)该属性时flex-grow、flex-shrink、flex-basis的缩写

(2)默认值为:0 1 auto  (后两个属性为可选)

(3)该属性有两个快捷键:auto(1 1 auto)、 none(0 0 auto)



6、align-self

取值:auto、flex-start、flex-end、center、baseline、stratch

功能:属性允许单个项目有与其他项目不一样的对齐方式,可覆盖容器的align-item属性。



Flex布局的总结:

Flex为display的一个属性值,

它约定了一套设置项目的大小、排列、排序的规则。



http://www.niftyadmin.cn/n/1659531.html

相关文章

vue-cli4新建项目及分环境打包

写在前面 小编之前一直使用的是vue-cli2&#xff0c;没想到现在vue-cli4都出来挺长时间的了。现在就来探索一下脚手架4是如何新建项目并且进行分环境打包的吧。 新建项目一 1.winR进入cmd命令窗口&#xff0c;到自己要建项目的路径下&#xff0c;这里我的目录是桌面   2.新建…

Flex布局应用(1)——为什么flex只能做移动端APP开发?

1、APP的分类 &#xff08;1&#xff09;原生APP &#xff08;2&#xff09;混合APP &#xff08;3&#xff09;WEB APP 2、PC端和移动端的差别 &#xff08;1&#xff09;用户交互方式不同&#xff1a;表现在鼠标、手指 &#xff08;2&#xff09;呈现的数据量不同&#…

深入理解Vuex

什么是Vuex Vuex是实现组件全局状态管理的一种机制&#xff0c;可以方便的实现组件之间数据的共享。使用Vuex可以集中的管理共享数据&#xff0c;高效实现数据共享&#xff0c;另外Vuex的数据是响应式的&#xff0c;可以实时保持数据与页面的同步。 安装方式 在使用vue-cli3或…

Javascript运动概念1——缓冲运动、匀速运动、运动框架

概念—— A、运动基础&#xff1a; &#xff08;1&#xff09;让div运动起来 &#xff08;2&#xff09;速度——物体运动的快慢 &#xff08;3&#xff09;运动中的Bug a、不会停止 b、速度取某些值会无法停止 c、到达位置后再点击还会运动 d、重复点击速度加快 B、匀…

2019年终总结---在前端的成长

不知不觉&#xff0c;2019已经悄然而逝&#xff0c;回顾这一年&#xff0c;更多的是自己在前端方面的成长和能够在前端锻炼的各种契机。 对前端框架的接触&#xff0c;从Vue开始在前端接触的第一个项目&#xff0c;是订餐后台的重构。 刚开始的时候&#xff0c;讨论用什么技术来…

Javascript运动概念2——多物体运动框架

1、多个物体同时运动 例子&#xff1a;多个div&#xff0c;鼠标移入变宽 Bug——单定时器&#xff0c;存在问题 解决办法&#xff1a;将每个div一个定时器 2、多物体运动运动框架 &#xff08;1&#xff09;多物体运动框架 a、定时器作为物体的属性 b、参数的传递&#xf…

1.Node.js引入

1、与PHP的关系 Node.js可以作为虚拟后台服务器使用&#xff0c; 在PHP面试时&#xff0c;可能问到相关的问题 &#xff1a; &#xff08;1&#xff09;PHP并不支持多线程&#xff0c;但由于Apache的ISO线程&#xff0c;会引发潜在的多线程 &#xff08;2&#xff09;PHP是一…

2.Node.js的安装 及 小案例——实现Hello World

1、编辑器 初期&#xff1a;记事本Ediplus、Nodepad 后期&#xff1a;Webstrom、Hbuilder 2、Node.js的下载、安装、测试 &#xff08;1&#xff09;下载&#xff1a;http://nodejs.cn &#xff08;2&#xff09;安装&#xff1a;在windows版本操作系统下&#xff0c;直接点击…