flex弹性盒子布局

flex弹性盒子布局flex 是 flexiblebox 的缩写 即为 弹性布局 用来为盒子模型提供最大的灵活性 任何容器都可以指定为 flex 布局

flex是flexible box 的缩写,即为“弹性布局”,用来为盒子模型提供最大的灵活性,任何容器都可以指定为flex布局;

flex弹性盒子布局

       容器默认存在两根轴:水平的主轴(main axis)和垂直的交叉轴(侧轴)(cross axis),两根轴永远垂直。主轴的开始位置(与边框的交叉点)叫做main start,结束位置叫做main end;交叉轴的开始位置叫做cross start,结束位置叫做cross end。
子项目默认沿主轴排列。单个项目占据的主轴空间叫做main size,占据的交叉轴空间叫做cross size。

注:①设置弹性盒子的元素不会脱离文档流,并且有自适应的特性

        ②当父元素为弹性盒子,非块级元素的元素也可以直接设置宽高


flex容器属性

1、display:flex 、inline-flex                                                                                           

注意:父元素设为 Flex 布局以后,其子元素的floatclearvertical-align属性将失效。

伸缩布局 = 弹性布局 = 伸缩盒布局 = 弹性盒布局 = flex布局

2、flex-direction 属性  决定主轴的方向(即项目的排列方向)                                        

flex-direction: row(默认水平) | row-reverse | column(纵向) | column-reverse;

3、flex-wrap 属性  定义子元素是否换行显示                                                                    

flex-wrap: nowrap(不换行) | wrap(换行) | wrap-reverse;(反向换行)

4、 flex-flow                                                                                                                      

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

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

justify-content: flex-start | flex-end | center | space-between | space-around;

6、align-items 属性  定义项目在侧轴(单行)上如何对齐。                                                

align-items: flex-start | flex-end | center | baseline | stretch(默认值);

7、align-content 属性  定义了多根轴线的对齐方式。(对于单行子元素,该属性不起作用)

align-content: flex-start | flex-end | center | space-between | space-around | stretch; align-content在侧轴上执行样式的时候,会把默认的间距给合并。对于单行子元素,该属性不起作用 

flex弹性盒子布局

注释:

(具体效果可以自己动手敲一下看看)


flex项目属性

1、align-self 属性                                                                                                                   

(Internet Explorer 和 Safari 浏览器不支持 align-self 属性) 说明: align-self 属性规定灵活容器内被选中项目的对齐方式。 注意:align-self 属性可重写灵活容器的 align-items 属性。 属性值 auto 默认值。元素继承了它的父容器的 align-items 属性。如果没有父容器则为 "stretch"。 Stretch 元素被拉伸以适应容器。 Center 元素位于容器的中心。 flex-start 元素位于容器的开头。 flex-end 元素位于容器的结尾。

flex弹性盒子布局

2、order                                                                                                                                

说明: order: number; 排序优先级,数字越大越往后排,默认为0,支持负数。

3、flex                                                                                                                                   

说明: 复合属性。设置或检索弹性盒模型对象的子元素如何分配空间 详细属性值: 缩写「flex: 1」, 则其计算值为「1 1 0%」 缩写「flex: auto」, 则其计算值为「1 1 auto」 flex:「none」, 则其计算值为「0 0 auto」 flex:「0 auto」或者「flex: initial」, 则其计算值为「0 1 auto」,即「flex」初始值

flex 属性是 flex-grow、flex-shrink 和 flex-basis 三个属性的简写,语法格式如下:

flex: flex-grow flex-shrink flex-basis;

参数说明如下:

  • flex-grow:(必填参数)一个数字,用来设置项目相对于其他项目的增长量,默认值为 0;
  • flex-shrink:(选填参数)一个数字,用来设置项目相对于其他项目的收缩量,默认值为 1;
  • flex-basis:(选填参数)项目的长度,合法值为 auto(默认值,表示自动)、inherit(表示从父元素继承该属性的值) 或者以具体的值加 “%”、”px”、”em” 等单位的形式。

4、flex-xxx                                                                                                                               

以下三个属性的值都是一个number值 (1)flex-grow flex-grow属性用来控制当前项目是否放大显示。默认值为0,表示即使容器有剩余空间也不放大显示。如果设置为1,则平均分摊后放大显示。 (2)flex-shrink flex-shrink属性表示元素的缩小比例。默认值为1,如果空间不够用时所有的项目同比缩小。如果一个项目的该属性设置为0,则空间不足时该项目也不缩小。 (3)flex-basis flex-basis属性表示项目占据主轴空间的值。默认为auto,表示项目当前默认的大小。如果设置为一个固定的值,则该项目在容器中占据固定的大小。 

小案例

(1)骰子的简单布局

flex弹性盒子布局

 (2)圣杯布局及固定低栏布局

flex弹性盒子布局

 (3)小报纸

flex弹性盒子布局

(至于代码量太大,就不放上来啦哈哈哈!如需要的可私信我)

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/213979.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月18日 下午5:15
下一篇 2026年3月18日 下午5:16


相关推荐

  • Mysql text MEDIUMTEXT 在5.5和5.7中的差异及扩容测试

    Mysql text MEDIUMTEXT 在5.5和5.7中的差异及扩容测试#textLENGTH#TINYTEXT:256bytes#TEXT:65,535bytes=>~64kb#MEDIUMTEXT:16,777,215bytes=>~16MB#LONGTEXT:4,294,967,295bytes=>~4GBselectversion();#5.7.17createtabletestTB(idintnotnu

    2022年5月4日
    110
  • oracle insert 多行 select

    oracle insert 多行 selectinsertintosys_user_role(roleid,userid)selectroleid,useridfromsys_tmp;多行插入insertintosys_user_role(roleid,userid) selectroleid,’$B’userid from sys_user_rolewhereuserid=’$A’;

    2022年7月17日
    30
  • MultipartFile的transferTo方法

    MultipartFile的transferTo方法RequiresPerm admin user import RequiresPerm menu 用户管理 会员管理 button 导入 PostMapping import publicObject RequestParam file MultipartFil throwsIOExce 先判断是否为空 if file isEmpty

    2026年3月18日
    2
  • map改变一个字母是什么_组合总和 leetcode

    map改变一个字母是什么_组合总和 leetcode原题链接给定一个字符串数组,将字母异位词组合在一起。字母异位词指字母相同,但排列不同的字符串。示例:输入: [“eat”, “tea”, “tan”, “ate”, “nat”, “bat”]输出:[ [“ate”,”eat”,”tea”], [“nat”,”tan”], [“bat”]]说明:所有输入均为小写字母。不考虑答案输出的顺序。tclass Solution {public: vector<vector<string>> g

    2022年8月8日
    7
  • 希尔排序算法(排序详解)

    希尔排序算法(排序详解)希尔排序 nbsp 基本思想希尔排序 ShellSort 是插入排序的一种 也称缩小增量排序 是直接插入排序算法的一种更高效的改进版本 希尔排序是非稳定排序算法 该方法因 DL Shell 于 1959 年提出而得名 希尔排序是记录按下标的一定增量分组 对每组使用直接插入排序算法排序 随着增量逐渐减少 每组包含的关键词越来越多 当增量减至 1 时 整个文件恰被分成一组 算法便终止 我们分割待排序记录的目的

    2026年3月18日
    2
  • java中long转int的原理

    java中long转int的原理long 转为 int 需要强转都很熟悉 那么介绍一下强转的具体原理 首先在计算机中 计算加法减法是用补码计算的 正数的补码为其二进制表示 负数的补码为其模的二进制表示取反加一 加入为八位二进制加法 如 3 5 nbsp 3 的补码为 00000011 5 的模为 5 二进制表示为 00000101 取反为 加一后为 所以 5 的补码为加法计算公式为 两个数的补码相

    2026年3月18日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号