flex布局

小编 2026-06-05 阅读:1370 评论:0
Flexbox是什么根据规范中的描述可知道,Flexbox模块提供了一个有效的布局方式,即使不知...

Flexbox是什么

根据规范中的描述可知道,Flexbox模块提供了一个有效的布局方式,即使不知道视窗大小或者未知元素情况之下都可以智能的,灵活的调整和分配元素和空间两者之关的关系。简单的理解,就是可以自动调整,计算元素在容器空间中的大小。

 自适应,自我调整,可以show的飞起来的。

 

 请花两分钟阅读下面几条

 Flexbox属性也是存在兼容性的:可以参考  解决Flexbox跨浏览器兼容Bug  (文中的问题主要是 min-height和 IE下flex-basis的问题。),因为文章是2015年,现在的情况不得而知,如果你真遇到,那么请保持这种意识。

 Flexbox布局新旧语法:可以参考  Flex布局新旧混合写法详解(兼容微信) 

当然也没有这么夸张,现在谁写个样式,还不得用sass, less,postcss等等,谁写个工程还不用grunt, gulp, webpack等等,这些都有很好的处理。

 

Flexbox 基本是分 容器属性和 项目属性的, 标记蓝色的是默认值

容器属性  flex-direction || flex-wrap || flex-flow || justify-content || align-items || align-content

  •  flex-direction row || column || row-reverse || column-reverse

         属性控制Flex项目沿着主轴(Main Axis)的排列方向。 

 

  • flex-wrap   wrap || nowrap || wrap-reverse

        默认情况下,项目都排在一条线(又称"轴线")上。flex-wrap属性定义,如果一条轴线排不下,如何换行。

 

  • flex-flow 

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

 

  • justify-content flex-start || flex-end || center || space-between || space-around

    项目在主轴上的对齐方式

     

  • align-items    flex-start | flex-end | center | baseline | stretch;

   定义项目在交叉轴上如何对齐,(flex-wap 值为nowrap的时候有效)

 

  • align-content   flex-start | flex-end | center | space-between | space-around | stretch;

   多根轴线的对齐方式。如果项目只有一根轴线,该属性不起作用。(flex-wap 值为wrap且变多根轴的时候有效)

 

项目的属性  order || flex-grow || flex-shrink || flex-basis || Flex || align-self

  • odrder

   项目的排列顺序。数值越小,排列越靠前,默认为0

  

  • flex-grow 

  项目的放大比例,默认为0,即如果存在剩余空间,也不放大.默认值 0

 

  • flex-shrink 

        属性定义了项目的缩小比例,默认为1,即如果空间不足,该项目将缩小

  

  • flex-basis  auto | number

  flex-basis属性定义了在分配多余空间之前,项目占据的主轴空间(main size)。浏览器根据这个属性,计算主轴是否有多余空间。它的默认值为auto,即项目的本来大小。

 

  • flex

  flex属性是flex-growflex-shrink 和 flex-basis的简写,默认值为0 1 auto。后两个属性可选。

  该属性有两个快捷值:auto (1 1 auto) 和 None (0 0 auto)。  1代表:flex-grow: 1;lex-shrink: 1;flex-basis: 0%;

 

      

  • align-self  auto | flex-start | flex-end | center | baseline | stretch

  align-self属性允许单个项目有与其他项目不一样的对齐方式,可覆盖align-items属性。默认值为auto,表示继承父元素的align-items属性,如果没有父元素,则等同于stretch

 

  别嫌弃我写这么多, 容器和项目各6各属性。 其中都还有一个是简写。

  

我这里就说两点自己的应用吧,

1.  列表一行几列

  这个就不怎么介绍了, 设置容器属性 display:flex , 项目属性设置 flex-basis。

2. 首位固定,中间滑动布局

      最开始我设计这种是用position:fixed来解决的。这个说是有各种bug,比如键盘遮盖。

   后来采用flexbox布局。三步,都不可缺。()

      1.设置父容器及以上容器,height:100%.

       2. 设置flexbox容器 display:flex ;flex-direction:column

       3. 设置项目 header/ footer 的 flex:{0 0 height} 也可以这么设置 flex:1 , height:height (flex-basis的优先级高于height), 设置中间区域  flex:1,overflow:auto  ,  

 

参考:

CSS Flexible Box Layout Module Level 1

CSS Flexible Box Layout

理解 Flexbox:你需要知道的一切

深入理解 Flex 布局以及计算

Flex 布局教程:语法篇

Flex 布局教程:实例篇

CSS flex 属性|菜鸟教程

flex盒模型实现头部尾部固定

 一劳永逸的搞定 flex 布局

版权声明

本文仅代表作者观点,不代表百度立场。
本文系作者授权百度百家发表,未经许可,不得转载。

热门文章
  • 机房智能化温湿度解决方式之POE供电以太网温湿度传感器

    机房智能化温湿度解决方式之POE供电以太网温湿度传感器
    机房智能化温湿度解决方式之POE供电以太网温湿度传感器 北京盈创力和电子科技有限公司 智能型TCP网口温湿度记录仪 北京IP网络温湿度记录仪厂家,北京盈创力和 北京智能型TCP网口温湿度记录仪IP网络温湿度记录仪是一种新型的基于TCP/IP协议双绞线以太网标准温湿度采集模块,利用它可以实现现场温度值、相对湿度值的采集,同时利用其自身的RJ45通信接口可以方便地和机房监控主机或交换机集线器进行联网。 工作于-40℃~85℃工业级带...
  • Sequential Monte Carlo Methods (SMC) 序列蒙特卡洛/粒子滤波/Bootstrap Filtering

    Sequential Monte Carlo Methods (SMC) 序列蒙特卡洛/粒子滤波/Bootstrap Filtering
    Problem Statement 我们考虑一个具有马尔可夫性质、非线性、非高斯的状态空间模型(State Space Model):对于一个时间序列上的观测结果{yt,t∈N}\\{ y_t , t \\in N \\}{yt​,t∈N},我们认为每个观测结果yty_tyt​的生成依赖于一个无法直接观察的隐变量xt∈{xt,t∈N}x_t \\in \\{x_t , t \\in N \\}xt​∈{xt​,t∈N},即:p(...
  • HTTP状态保持的原理

    HTTP状态保持的原理
    a)在用户登录之后,浏览器返回响应的时候会在响应中添加上cookieb)浏览器接收到cookie之后会自动保存c)当用户再次请求同一服务器中的其他网页的时候,浏览器会自动带上之前保存的cookied)服务接收到请求之后可以请 request 对象中取到cookie 判断当前用户是否登录  Http是无状态的,就是连接时数据互通,关闭后...
  • Hive 系统函数及示例

    Hive 系统函数及示例
    查看所有系统函数 show functions; 函数分类 内置函数【系统函数】 数学函数: floor、round、ceil、cos、log2等 字符串函数: length、reverse、trim、lower、get_json_object、repeat等 收集函数: size 转换函数: cast 日期函数: year、month、datediff、date、date_add等 条件函数: coalesce、case…w...
  • CSRF的原理和防范措施

    CSRF的原理和防范措施
    a)攻击原理:i.用户C访问正常网站A时进行登录,浏览器保存A的cookieii.用户C再访问攻击网站B,网站B上有某个隐藏的链接或者图片标签会自动请求网站A的URL地址,例如表单提交,传指定的参数iii.而攻击网站B在访问网站A的时候,浏览器会自动带上网站A的cookieiv.所以网站A在接收到请求之后可判断当前用户是登录状态,所以...
标签列表