传统的布局方案,在针对特殊布局时会很不方便,比如垂直居中,把一个容器等分为N列等等。自从 Flex 出现以后,这些都迎刃而解了,本文对Flex相关内容做一个简单梳理。

什么是 Flex

Flex 是 Flexible Box 的缩写,意为”弹性布局”,任何一个容器都可以指定为Flex布局。设为 Flex 布局以后,子元素的 float、clear和vertical-align属性将失效。要设置一个元素采用 flex 布局,只需设置器 display 属性取值为 flex 即可。

.flex-box{
display:flex; /* or inline-flex*/
}

常用术语

采用 Flex 布局的元素,称为Flex容器。其子元素为flex item,本文称其为”项目”。容器默认存在两根轴:水平的主轴(main axis)和垂直的交叉轴(cross axis)。

  1. flex container : Flex容器,简称 容器
  2. flex item : Flex容器的子元素,可称其为 flex 项目,简称 项目
  3. main axis : 主轴, 水平轴,起始位置称为 main start,结束位置称为 main end
  4. cross axis: 交叉轴, 垂直轴,开始位置叫做 cross start,结束位置叫做 cross end

项目默认沿 main axis 排列,单个项目占据的主轴空间叫做main size,占据的交叉轴空间叫做cross size。

容器的属性

  1. flex-direction :flex-direction属性决定主轴的方向(即项目的排列方向)。

    • row(默认值):主轴为水平方向,起点在左端。
    • row-reverse:主轴为水平方向,起点在右端。
    • column:主轴为垂直方向,起点在上沿。
    • column-reverse:主轴为垂直方向,起点在下沿。
  2. flex-wrap: 默认情况下,项目都排在一条线(又称”轴线”)上。flex-wrap属性定义,如果一条轴线排不下,如何换行。
    • nowrap(默认):不换行。
    • wrap:换行,第一行在上方。
    • wrap-reverse:换行,第一行在下方。
  3. flex-flow : flex-flow属性是flex-direction属性和flex-wrap属性的简写形式,默认值为row nowrap。
    .box {
    flex-flow: <flex-direction> || <flex-wrap>;
    }
  4. justify-content: justify-content属性定义了项目在主轴上的对齐方式。
  5. align-items: align-items属性定义项目在交叉轴上如何对齐。
  6. align-content: align-content属性定义了多根轴线的对齐方式。如果项目只有一根轴线,该属性不起作用。

项目的属性

  1. order 定义项目的排列顺序,数值越小越靠前
  2. flex-grow 定义项目的放大比例
  3. flex-shrink 定义项目的缩小比例
  4. flex-basis 定义在分配多余空间之前,项目占据的主轴空间
  5. flex 是 grow shrink basis 的简写。取值 none | [ <'flex-grow'> <'flex-shrink'>? || <'flex-basis'> ]
  6. align-self 定义当前项目的对其方式。取值 auto | flex-start | flex-end | center | baseline | stretch

写在后面

本文地址:https://www.cnblogs.com/kelsen/p/8647896.html

如果您有任何建议或疑问请在下面留言交流。

Flex 布局知识点梳理的更多相关文章

  1. flex布局知识点

    flexBox 布局最合适小规模布局,而网格布局适合较大规模布局. float,clear,vertical-align  在flex中不起作用. flex布局中,有两类作用于父节点也子节点的样式,大 ...

  2. flex布局知识点(阮一峰博客)

    任何一个容器都可以指定为flex布局: 行内元素也可以使用flex布局: 设为flex布局以后,子元素的float,clear,vertical-align属性都将失效: flex容器的属性: fle ...

  3. 弹性盒子布局(display:flex)知识点

    设为 Flex 布局以后,子元素的float.clear和vertical-align属性将失效.

  4. JavaScipt30(第五个案例)(主要知识点:flex布局)

    承接上文,这是第5个案例:这节没什么讲的,随便记录下吧,主要是用了flex布局与transform translateY,js部分和案例1类似. 附上项目链接: https://github.com/ ...

  5. 前端知识点回顾之重点篇——CSS中flex布局

    flex布局 来源: http://www.ruanyifeng.com/blog/2015/07/flex-grammar.html?utm_source=tuicool 采用 Flex 布局的元素 ...

  6. 30分钟彻底弄懂flex布局

    欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由elson发表于云+社区专栏 目前在不考虑IE以及低端安卓机(4.3-)的兼容下,已经可以放心使用flex进行布局了.什么是flex布 ...

  7. CSS3弹性伸缩布局(二)——flex布局

    上一篇博客<CSS3弹性伸缩布局(一)——box布局>介绍了旧版本的box布局,而这篇博客将主要介绍最新版本的flex布局的基础知识. 新版本简介 新版本的Flexbox模型是2012年9 ...

  8. css3 flex 布局

    今天做一个小实战,需要让一个登录框始终保持水平和垂直居中,第一个想到的就是通过定位(要想让一个div居中,采用定位可以解决,示例), 然后开始接触flex布局,学完感觉真的好用,现把知识点记录一下,以 ...

  9. 弄懂flex布局

    目前在不考虑IE以及低端安卓机(4.3-)的兼容下,已经可以放心使用flex进行布局了.什么是flex布局以及它的好处,这里就不再赘述. 在这篇文章里,想说说flex布局的属性语法及其细节.那么网上也 ...

随机推荐

  1. ZOJ Problem Set - 3878 Convert QWERTY to Dvorak

    题目链接: http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3878 /* 问题 很有意思的一道题目,纯模拟,注意细节和最后一 ...

  2. UIKit框架之NSObject

    首先学习NSObject // // ViewController.m // localization // // Created by City--Online on 15/5/15. // Cop ...

  3. [转]微信小程序、微信公众号、H5之间相互跳转

    本文转自:https://www.cnblogs.com/colorful-paopao1/p/8608609.html 转自慕课网 一.小程序和公众号 答案是:可以相互关联. 在微信公众号里可以添加 ...

  4. 使用Docker调试Asp.Net Core

    使用 Docker 进行部署 目前还是使用将发布出来的文件打包进docker镜像的形式 $ docker build -t pims . $ docker run --name pims --rm - ...

  5. log4Net配置以及使用入门

    <configSections>    <section name="log4net" type="System.Configuration.Ignor ...

  6. 设计模式之构建者(Builder)模式

    在五大设计原则的基础上经过GOF(四人组)的总结,得出了23种经典设计模式,其中分为三大类:创建型(5种).结构型(7种).行为型(11种).今天对创建型中的构建者(Builder)模式的思想进行了一 ...

  7. 【linux】suse linux 常用命令

    命令ls——列出文件 ls -la 给出当前目录下所有文件的一个长列表,包括以句点开头的“隐藏”文件 ls a* 列出当前目录下以字母a开头的所有文件 ls -l *.doc 给出当前目录下以.doc ...

  8. Java 支付宝支付,退款,单笔转账到支付宝账户(支付宝订单退款)

    上一篇写到支付宝的支付,这代码copy下来就能直接用了,   我写学习文档时会经常贴 官方参数文档的案例地址, 因为我觉得 请求参数,响应参数说明 官方文档整理的很好,毕竟官方不会误导大家. 我学一个 ...

  9. Spring Data Redis —— 快速入门

    环境要求:Redis 2.6及以上,javase 8.0及以上: 一.Spring Data Redis 介绍 Spring-data-redis是spring的一部分,提供了在srping应用中通过 ...

  10. BCB 读写Word文档

    void __fastcall TForm1::btn1Click(TObject *Sender) { Variant WordApp,WordDocs,WordDoc; Variant word_ ...