flex模型

news/2024/5/19 20:27:14 标签: css, flex

目录

  • flex属性
  • flex-direction属性
  • flex-wrap属性
  • justify-content属性
  • align-items属性
  • align-content属性
  • flex-shrink属性
  • flex-grow属性
  • flex-basis属性
  • align-self属性

flex_1">flex属性

容器属性:用于规定容器布局方式从而控制内部项目的排列和对齐方式。
在这里插入图片描述
项目属性:用于设置容器内部项目的尺寸、位置以及对齐方式。
在这里插入图片描述

flexdirection_6">flex-direction属性

用于设置主轴方向,通过设置坐标轴可以规定项目的排列方向。

css">.container{
  flex-direction: row(默认值)| row-reverse | column | column-reverse
}

row:默认值,主轴在水平方向从左到右。项目按照主轴方向从左到右排列;
row-reverse:主轴是row的反方向。项目按照主轴方向从右到左排列;
column:主轴在垂直方向从上而下。项目按照主轴方向从上往下排列;
column-reverse:主轴是column的反方向。项目按照主轴方向从下到上排列。
在这里插入图片描述

flexwrap_19">flex-wrap属性

用于规定是否允许项目换行,以及多行排列时换行的方向。

css">.container{
  flex-wrap: nowrap(默认值)| wrap | wrap-reverse
}

nowrap:默认值,表示不换行。如果单行内容过多,项目宽度可能会被压缩。
wrap:容器单行容不下所有项目时允许换行排列。
wrap-reverse:容器单行容不下所有项目时允许换行排列。换行方向为wrap的反方向。
在这里插入图片描述

justify-content属性

用于设置项目在主轴方向上对齐方式,以及分配项目之间及其周围多余的空间。

css">.container{
justify-content: flex-start (默认值)| flex-end| center| space-between| space-around| space-evenly
}

flex-start:默认值,表示项目对齐主轴起点,项目间不留空隙;
center:项目在主轴上居中排列,项目间不留空隙。
flex-end:项目对齐主轴终点,项目间不留空隙;
space-between:项目间间距相等,第一个和最后一个项目分别离起点/终点距离为0;
space-around:与space-between相似。不同点为,第一个项目离主轴起点和最后一个项目离终点距离为中间项目间间距的一半;
space-evenly:项目间距、第一个项目离主轴起点以及最后一个项目离终点距离均相等。
在这里插入图片描述

align-items属性

用于设置项目在行中的对齐方式

css">.container{
  align-items:stretch(默认值)| flex-start | center | flex-end | baseline
}

stretch(默认值):未设置项目尺寸时将项目拉伸至填满交叉轴;
flex-start:项目顶部与交叉轴起点对齐;
center:项目在交叉轴居中对齐;
flex-end:项目底部与交叉轴终点对齐;
baseline:项目与行的基线对齐,在未单独设置基线时等同于flex-start。
在这里插入图片描述

align-content属性

用于多行排列时,设置项目在交叉轴方向上的对齐方式,以及分配项目之间及其周围多余的空间。

css">.container{
  align-content: stretch(默认值) | flex-start | center | flex-end | space-between |space-around | space-evenly
}

stretch:默认值,未设置项目尺寸时将各行中的项目拉伸至填满交叉轴。当设置了项目尺寸,项目尺寸不变,项目行拉伸至填满交叉轴。
flex-start:首行在交叉轴起点开始排列,行间不留间距。
center:行在交叉轴中点排列,行间不留间距,首行离交叉轴起点和尾行离交叉轴终点距离相等。
flex-end:尾行在交叉轴终点开始排列,行间不留间距。
space-between:行与行间距相等,首行离交叉轴起点和尾行离交叉轴终点距离为0。
space-around:行与行间距相等,首行离交叉轴起点和尾行离交叉轴终点距离为行与行间间距的一半。
space-evenly:行间间距、以及首行离交叉轴起点和尾行离交叉轴终点距离相等
在这里插入图片描述
在这里插入图片描述

flexshrink_77">flex-shrink属性

用于设置项目收缩因子。当项目在主轴方向上溢出时,通过项目收缩因子的规定比例来压缩项目以适应容器。

css">.item{
flex-shrink: 1(默认值) | <number>
}

最终长度 = 原长度 x ( 1 - 溢出长度x收缩因子/压缩总权重)
压缩总权重 =长度1 x收缩因子1 + 长度2 x收缩因子2 … + 长度N x收缩因子N
在这里插入图片描述

flexgrow_88">flex-grow属性

用于设置项目扩张因子。当项目在主轴方向上还有剩余空间时,通过设置项目扩张因子进行剩余空间的分配。

css">.item{
  flex-grow: 0(默认值)| <number>
}

最终长度 = 原长度 + 扩张单位 x 扩张因子
扩张单位 = 剩余空间 / (扩张因子1 + 扩张因子2 + … 扩张因子N)

flexbasis_98">flex-basis属性

根据主轴方向代替项目的宽或高

当容器设置flex-direction为row或row-reverse时,若项目的flex-basis和width属性同时存在数值,则flex-basis代替width属性;
当容器设置flex-direction为column或column-reverse时,若项目的flex-basis和height属性同时存在数值,则flex-basis代替项目的height属性。

css">.item{
  flex-basis: auto(默认值)| <number>px
}

数值比auto的优先级更高,如果flex-basis属性值为auto,而width(或height)属性值是数值,则采用数值作为最终属性值
在这里插入图片描述
以水平方向作为主轴为例,假设有项目A、B、C共三个组件且宽度均为100px,为A追加flex-basis值为200px

align-self属性

设置项目在行中交叉轴方向上的对齐方式,用于覆盖容器的align-items,这么做可以对项目的对齐方式做特殊处理。

css">.item{
  align-self: auto(默认值) | flex-start | center | flex-end | baseline |stretch
}

默认属性值为auto,表示继承容器的align-items值。如果容器没有设置align-items属性,则align-self
的默认值auto表示为stretch。其他属性值参照align-items的解释。
在这里插入图片描述


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

相关文章

【git】如何去解决fatal: refusing to merge unrelated histories

我在Github新建一个仓库&#xff0c;写了License&#xff0c;然后把本地一个写了很久仓库上传。 先pull&#xff0c;因为两个仓库不同&#xff0c;发现refusing to merge unrelated histories&#xff0c;无法pull 因为他们是两个不同的项目&#xff0c;要把两个不同的项目合并…

pytorch——张量 numpy

import torch import numpy as np# 张量的初始化 data[[1,2],[3,4]] tensor_datatorch.tensor(data) # 直接生成张量np_arraynp.array(data) tensor_nptorch.from_numpy(np_array) # numpy数组生成tensor_typetorch.ones_like(tensor_data,dtypetorch.float) # 继承tensor_data…

hashmap和hashtable

HashTable 底层数组链表实现&#xff0c;无论key还是value都不能为null&#xff0c;线程安全&#xff0c;实现线程安全的方式是在修改数据时锁住整个HashTable&#xff0c;效率低&#xff0c;ConcurrentHashMap做了相关优化初始size为11&#xff0c;扩容&#xff1a;newsize o…

leetcode 784. 字母大小写全排列(Letter Case Permutation)

目录 题目描述&#xff1a;示例:解法&#xff1a;题目描述&#xff1a; 给定一个字符串S&#xff0c;通过将字符串S中的每个字母转变大小写&#xff0c;我们可以获得一个新的字符串。返回所有可能得到的字符串集合。 示例: 输入: S "a1b2" 输出: ["a1b2",…

手写两层BP神经网络

hw1∗xhw1*xhw1∗x amax(0,h)amax(0,h)amax(0,h) yw2∗ayw2*ayw2∗a import numpy as npN64 # 有多少个输入 D_in1000 # 输入是多少维的 H100 # 中间层 D_out10 # 输出是10维的# 随机化一些数据 xnp.random.randn(N,D_in) ynp.random.randn(N,D_out) w1np.random.randn(D_in,H…

换行,不换行,超出显示省略号

强制换行 word-wrap:break-word; &#xff08;单词换行&#xff09; word-break:break-all; &#xff08;单个字符换行&#xff09; 强制不换行 white-space:nowrap; 单行文字超出显示省略号&#xff08;注意&#xff1a;配合宽度&#xff09; overflow:hidden;text-ove…

用servlet校验密码2

资源链接&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/1vl7HZ2TJnt3_bbWfjch7xg 提取码&#xff1a;irey &#xff08;PS&#xff1a;因为文件有覆盖&#xff0c;所以在该随笔之前的链接可能失效&#xff09; 界面&#xff1a; mysql截图&#xff1a; 出现的问题v1.0…

2021牛客多校赛——Er Ba Game

原题链接https://ac.nowcoder.com/acm/contest/11253/D 模拟把题中胜利的条件模拟出来就行了 #include <bits/stdc.h> using namespace std; int check(int a,int b,int x,int y) {if(a2&&b8&&x2&&y8) return 0;else if(a2&&b8) return…