026FLEX

news/2024/10/19 23:35:09/

flex布局
CSS3弹性盒子(Flexible Box或Flexbex),是一种用于在页面上布置元素的布局模式,使得当页面布局必须适应不同的屏幕尺寸和不同的显示设备时,元素可预测地运行/列。对于许多应用程序,弹性盒子模型提供了对块模型的改进,因为它不使用浮动,flex容 器的边缘也不会与其内容的边缘折叠。
  -老版本的我们通常称之为box-webkit-box
    --老版本的box通过两个属性四个属性值控制了主轴的位置和方向
  -新版本的我们通常称之为flex-webkit-flex / flex
    --新版本的flex通过一个属性四个属性值控制了主轴的位置和方向
  -有了新版本后,为什么还需要老版本? (新版本比老版本要强大的很多)很多移动端浏览器内核版本都超低
项目永远在主轴的正方向上排列
重点理解:容器与项目 主轴与侧轴
由flex-direction/ -webkit-box-orient确定

容器的布局方向 (注意:项目永远是在主轴,上排列的)
旧:-webkit-box-orient
  -本质上确定了主轴是哪一根。控制主轴和侧轴分别是哪一根
值:
  -horizontal: x轴
  -vertical :y轴
-webkit- box-orient: horizontal;
-webkit- box-orient: vertical;

新:flex-direction
值:
 row - flex容器的主轴被定义为与文本方向相同。 主轴起点和主轴终点与内容方向相同。(行)
 column - flex容器的主轴和块轴相同。主轴起点与主轴终点和书写模式的前后点相同(列)
display:flex;
flex-direction: row ;
display:flex;
flex-direqtion: column;

容器排列方向(注意:项目永远是沿着主轴的正方向排列的)
旧:-webkit- box-direction
  -改变主轴的方向
-webkit-box-direction: normal;正常
-webkit-box-direction: reverse;反转

新:flex-direction
值:
  row-reverse -表现和row相同,但是置换了主轴起点和主轴终点
  column-reverse -表现和column相同,但是置换了主轴起点和主轴终点
display:flex;
flex-direction: column-reverse;

富裕空间的管理(分主轴,副轴)
旧:-webkit -box-pack/align
( 主轴)
x轴
  -start  富裕空间在右边x) 下边 (y)
  -end  富裕空间在左边(x) 上边(y)
  -center 富裕 空间在两边
  -justify 富裕空间在项目之间

y轴
start:在下边
end:在上边
center:在两边
justify:在项目之间
-webkit -box-pack: justify;
-webkit- box- pack:start;不会给项目区分配空间,只是确定富裕空间的位置

(侧轴)
  -start  富裕空间在右边 (x)下边 (y)
  -end  富裕空间在左边 (x) 上边(y)
  -center 富 裕空间在两边
-webkit -box-align:end;
-webkit-box- align:center;不会给项目区分配空间,只是确定富裕空间的位置

新:justify-content/align-items
(主轴)
  flex-start    富裕空间在主轴的正方向
  flex-end"    富裕空间在主轴的反方向
  center     富裕空间在主轴的两边
  space- between 富裕空间在项目之间
  space- around (box没有的)富裕空间在项目两边
justify-content: space - around;
(侧铀)
  flex-start:   富裕空间在侧轴的正方向;
  flex-end;   富裕空间在侧轴的反方向;
  content:   富裕空间在侧轴的两边;
  baseline   (box没有的)按基线对齐
  stretch    (box没有的)等高布局(等高布局设置height无效)
align-items: stretch;

弹住空间的管理将富裕空间按比例分配到各个项目上,将主轴上的富裕空间按比例分配到项目的width/height上!
旧:-webkit- box-flex
默认值:0不可继承
-webkit- box- flex: 1;数字为比例

新:flex-grow
flex-grow: 1
/*flex-grow,box -flex默认值都为0

flex新增:
flex-wrap
  flex-wrap属性控制了容器为单行/列还是多行例。并且定义了侧轴的方向,新行/列将沿侧铀方向堆砌。
  默认值: nowrap不 可继承
   值: nowrap  -元素被摆放到到一行,,默认压缩。可能会溢出
     wrap     -元素 被打断到多个行中,元素排列按侧轴正方向,flex-shrink失效
     wrap-reverse -元素元素 被打断到多个行中,排列按此时侧轴正方向,flex-shrink失效

/*控制侧轴的方向*/
flex-wrap: wrap-reverse;
/*多行多列时,富裕空间的管理,会把所有行、列看成一个整体| /
align-content: flex-end;-

align-content(多行多列看这个)
  align- content属性定义弹性容器的侧轴方向上有额外空间时,如何排布每-行/列。当弹性容器只有一行/列时无作用
  默认值: stretch不可继承
  值:
    flex-start 所有行/列从侧轴起点开始填充。第-行/列的侧轴起点边和容器的侧轴起点边对齐。接下来的每一行/列紧跟前一行/列。
    flex- end 所有弹性元素从侧轴末尾开始填充,最后一个弹性元素的侧轴终点和容器的侧轴终点对齐.同时所有后续元素与前一个对齐。
    center  所有行/列朝向容器的中心填充。每行/列互相紧挨,相对于容器居中对齐。
容器的侧轴起点边和第一-行/列的距离相等于容器的侧轴终点边和最后一行/列的距离。
    space- between  所有行/列在容器中平均分布o相邻两行/列间距相等。容器的侧轴起点边和终点边分别与第-行/列和最后一行/列的边对齐
    space- around  所有行/列在容器中平均分布,相邻两行/列间距相等。容器的侧轴起点边和终点边分别与第-行/列和最后一行/列的距离是相邻两行/列间距的一.丰。
    stretch  拉伸所有行/列来填满剩余空间◆剩余空间平均的分配给每一行/列

/*控制侧轴的方向*/
flex-wrap: wrap-reverse;
//多行多列时,富裕空间的管理会把所有行、列看成一个整件
align-content: flex-end;

flex-flow
  flex- flow属性是设置“flex- direction"和“flex-wrap"的简写
  默认值: row nowrap
     不可继承
  控制主轴和侧轴的位置以及方向

order
  order属性规定了弹性容器中的可伸缩项目在布局时的顺序.元素按照order属性的值的增序进行布局。拥有相同order属性值的元素按照它们在源代码中出现的顺序进行布局
order越大越后排
默认值: 0不可维承
在这里插入图片描述
在这里插入图片描述

align-self(管理单个项目)
  align-self会对其当前flex 行中的flex 元素,并覆盖align-items 的值.如果任何flex 元素的侧轴方向margin值,设置为auto,则会忽略align- self.
默认值: auto不可继承
值:
   auto 设置为父元素的align-items值,如果该元素没有父元素的话,就设置为stretch.
   flex-start flex元素会对齐到cross-axis的首端。
   flex-end flex元素会对齐到cross-axis 的尾端o
   center flex元素会对齐到cross-axis的中间,如果该元素的cross-size的尺寸大于flex容器,将在两个方向均等溢出。
   baseline 所有的flex元素会沿着基线对齐,
   stretch  flex元素将会基于容器的宽和高,按照自身margin box的cross-size拉伸

flex-shrink收缩因子,前提flex-wrap:nowrap
  flex- grow属性定义弹性盒子项( flex item)的拉伸因子。默认值0
  fex- shrink属性指定了flex 元素的收缩因子默认值为1

flex- shrink:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

flex-basis
  flex-basis指定了flex 元素在主轴方向上的初始大小
默认值: auto不可继承
注意:在flex简写属性中flex- basis的默认值为0,没有写的时候参考width

fex- grow :老版本只与width有关
  可用空间= (容器大小-所有相邻项目flex- basis的总和)
        400 -   5x50   =150 无设置flex- basis,看width
        400 -   5x0   =400 在item加flex-basic:0
可扩展空间= (可用空间/所有相邻项目flex- grow的总和)
       150/8=18.75
       400/8=50
每项伸缩大小= (伸缩基准值(flex-basis)+ (可扩展空间x flex- grow值)
        50+(18.754)=125 50+(18.751)=68.75
        0+(504)=200    0+(501)=50

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

在这里插入图片描述

flex简写属性
等分布局
在这里插入图片描述
简写简写


http://www.ppmy.cn/news/239804.html

相关文章

LEXSTR

题目链接:http://www.spoj.com/problems/LEXSTR/ 题意是给一个字符串str,然后给出m个数对 i , j; 代表str[i] 和 str[j] 可以互相之间交换任意次 ,然后问如何交换使得这个字符串的字典序最小,输出这个字典序最小的字符…

CS61B - Lec 21 - Binary Search Tree

Lec 21 - BST Binary Search Trees概念查找插入删除 从Lec20开始,就转战CS61B Spring 2019了,18后面全变成公开课了。 本章主要讲的是Binary Search Tree,是一种非常流行的数据结构,据说各大面试中都会出现。其中用到了超多的recu…

Lex正则表达式

字符 解释 . 匹配除换行符("/n")以外的任何单个字符 * 匹配前面表达式的零个或多个拷贝 [] 匹配括号中的任意的字符类 ^ 作为正则表达式的第一个字符匹配行的开头 $ 作为正则表达式的最后一个字符匹配行的结尾 {} …

lex yacc

http://www.linuxdiyf.com/viewarticle.php?id91568 作者:绚丽也尘埃 最近看《GCC-the-Complete-Reference-fly》才知道有lex和yacc这两个有趣的工具,并且fedora core 8也默认安装有这两个工具,所以趁此机会学习一下,以前学编译…

lex与yacc之lex符号表示例

在lex初探篇中,每次要定义新的单词,都需要重新编译,这是非常麻烦的。但是如果在词法分析程序运行时能够构建一个单词表,那么就可以在 添加新的单词时不用修改和重新编译lex程序。symboltable.l%{/** Word recognizer with a symbo…

linux下lex词法分析器,Lex词法分析器

LEX/FLEX词法分析器 CONTENTS: [TOC] 这篇文章的内容包括: lex语法格式 linux下flex的安装和使用 flex实例 flex源代码的编译和使用 Lex/Flex词法分析器 Lex是LEXical compiler的缩写,是Unix环境下非常著名的工具,主要功能是生成一个词法分析器(scanner)的C源码,描述规则采用…

flex RSL

RSL(Runtime shared libraries)即动态链接库,在程序运行时由FlashPlayer动态加载。静态链接库是SWC文件,通过编译器的library-path和include-libraries编译进应用程序。采用静态链接的应用程序SWF会产生比较大的文件以及更长的下载时间。使用RSL的应用程…

用Flex写的RIA应用网站开张了(http://www.2ren.cn)

偶做的flex网站终于可以拿出来献丑了!本来不想用csdn的blog发文章了的。高兴嘛就再发一篇! 前端用flex,后台使用java,并结合spring、hibernate等。 欢迎大家访问我的RIA网站http://www.2ren.cn