前言:这是笔者学习之后自己的理解与整理。如果有错误或者疑问的地方,请大家指正,我会持续更新!

  CSS3引入了一种新的布局模型—— flex 布局。flex是 flexible box 的缩写,一般称之为弹性盒模型。flex布局提供一种更加有效的方式来进行容器内的项目布局,以适应各种类型的显示设备和各种尺寸的屏幕。

基本概念

  要让一个元素变成伸缩容器,需要使用 display 属性。采用 flex 布局的元素,称为伸缩容器 (flex container) ,容器内的子元素称为伸缩项目 (flex item)。

  使用 flex 布局以后,需要注意 float、clear 和 vertical-align 属性在伸缩项目上没有效果。

  弹性盒模型的两种容器块级伸缩容器和内联伸缩容器(display: flex | inline-flex;)的区别类似于 block 和 inline-block 的区别,一个独占一行,另一个非独占一行。

伸缩容器

  有以下6个属性作用在伸缩容器上:

flex-direction 主轴的方向(即项目的排列方向)

  • row(默认值):主轴为水平方向,起点在左端。
  • row-reverse:主轴为水平方向,起点在右端。
  • column:主轴为垂直方向,起点在上沿。
  • column-reverse:主轴为垂直方向,起点在下沿。

flex-wrap 如果一条轴线排不下,如何换行

  • nowrap(默认值):不换行,伸缩项目在一行内等均分配
  • wrap:换行
  • wrap-reverse:反向换行

flex-flow

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

justify-content 伸缩项目在主轴上的对齐方式

  • flex-start(默认值)左对齐
  • flex-end 右对齐
  • center 水平居中对齐
  • space-between 两端对齐
  • space-around 扩散对齐

align-items 伸缩项目在侧轴上的对齐方式 

  • stretch(默认值)伸缩项目将拉伸充满整个容器高度
  • flex-start 顶部对齐
  • flex-end 底部对齐
  • center 垂直居中对齐
  • baseline 伸缩项目与第一行文字的基线对齐

align-content 堆栈伸缩行

伸缩项目

  有以下6个属性设置在伸缩项目上

order

  属性定义伸缩项目的排列顺序。数值越小,排列越靠前,默认为0。

flex-grow

  属性定义伸缩项目的放大比例,默认为 0,即如果存在剩余空间,也不放大。

  如果所有伸缩项目的 flex-grow 属性都为 1,则它们将等分剩余空间(如果有的话)。

  如果一个伸缩项目的 flex-grow 属性为 2,其他项目都为 1,则前者占据的剩余空间将比其他项多一倍。

flex-shrink

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

  如果所有伸缩项目的 flex-shrink 属性都为 1,当空间不足时,都将等比例缩小。

  如果一个伸缩项目的 flex-shrink 属性为 0,其他伸缩项目都为 1,则空间不足时,前者不缩小。

flex-basis

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

flex

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

  该属性有两个快捷值: auto (1 1 auto) 和 none (0 0 auto) 。

align-self

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

flex弹性盒子的使用的更多相关文章

  1. flex弹性盒子布局

    一.在需要使用弹性盒子的容器上添加属性:display:flex 或者 display:inline-flex; 二.在父容器上添加flex-direction设置子元素主轴方向: 不写默认值是X轴从 ...

  2. css3 flex弹性盒子布局梳理,打通任督二脉

    挺早就接触了css的flex布局,深入使用也就是在近期移动端开发.老来多健忘,只能自己梳理一下知识点,当做温故知新吧. ,请原谅小白的才疏学浅,写的不到位的地方请指正. flex属性用于设置或检索弹性 ...

  3. JS Web的Flex弹性盒子模型

    1. justify-content <!DOCTYPE html> <html lang="en"> <head> <meta char ...

  4. flex 弹性盒子模型一些案例.html

    Flexbox是布局模块,而不是一个简单的属性,它包含父元素和子元素的属性. Flex元素是可以让你的布局根据浏览器的大小变化进行自动伸缩. 自适应导航 <ul class="navi ...

  5. flex弹性盒子

    注意事项 1.设为Flex布局之后,子元素的float,clear和vertical-align属性都讲失效 2.采用Flex布局的元素,称为Flex容器(Flex container),所有的子元素 ...

  6. flex弹性盒子实现微博页面

    结果图: 源代码: html部分: <!DOCTYPE html><html lang="en"><head> <meta charset ...

  7. Flex 弹性盒子布局使用教程

    本文转载于<https://blog.csdn.net/lyznice/article/details/53981062>

  8. flex属性值----弹性盒子布局

    里面的属性都 是在有display: flex的情况 下才生效. 兼容性写法:   display: -webkit-box; /*老版本语法: Safari, iOS, Android browse ...

  9. css3弹性盒子display:flex

    先看上面的代码,解释一下意思,看你能认识多少(后面有注释): .container { display: flex; //弹性布局 flex-direction: column; //容器内项目的排列 ...

随机推荐

  1. Python基础之注释,算数运算符,变量,输入和格式化输出

    Python的注释 注释的作用:用自己熟悉的语言,对某些代码进行标注说明,增强程序的可读性: 在python解释器解释代码的过程中,凡是#右边的,解释器都直接跳过这一行: 注释的分类 单行注释 # 这 ...

  2. PLSQL Developer图形化界面新建用户并授权并导入脚本

    最近用了PLSQL Developer第三方的软件.记录一下实现新建用户并授权并导入脚本的功能. 第一步.切换sys用户(如果此处方法已经掌握,直接切换sys即可,就不用看这一步了) 首先检查当前登录 ...

  3. python一直放弃到双数的day10

    今天接着来说那个新的大知识点,函数,函数中是可以传递一个数值的,这个数值简称为参数,对于参数,他可以是任意个数和任意类型(数据类型).参数的其中一种有位置传参,函数中的参数有几个,那么就要传入几个,传 ...

  4. 如何将div高度填满剩余高度

    下列代码中navbar高度为30px,content高度需要填满浏览器的剩余高度 <div id="body">     <div id="navbar ...

  5. Virtual DOM 系列二:核心API

    为了更好的研究Virtual DOM,我选择了snabbdom来学习.相比Vue来说,snabbdom对于研究虚拟DOM更好,因为它里面没有其他干扰的东西,而且源码也比较少,因此研究起来更方便. 1. ...

  6. git总结一、工作中常用基础命令

    首先来了解两个概念: 工作区:比如你的项目目录 暂存区:git和其他版本控制系统的不同之处就是有这个暂存区的概念. .git不是工作区,而是git 版本库,在版本库中存放着很多东西,比如暂存区(sta ...

  7. call, apply 和 bind 方法

    我们知道,每个函数在调用的时候会产生一个执行上下文环境,而这个执行上下文环境中包含了诸如 this 等等信息.即当我们调用函数的时候,内部的 this 已经明确地隐式绑定到了某一个对象上.如果我们希望 ...

  8. 正则 re模块

    Python 正则表达式 re 模块 简介 正则表达式(regular expression)是可以匹配文本片段的模式.最简单的正则表达式就是普通字符串,可以匹配其自身.比如,正则表达式 ‘hello ...

  9. 浅谈vuex使用方法(vuex简单实用方法)

    Vuex 是什么? Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式.它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化.Vuex 也集成到 Vu ...

  10. 【集训队作业2018】取名字太难了 任意模数FFT

    题目大意 求多项式 \(\prod_{i=1}^n(x+i)\) 的系数在模 \(p\) 意义下的分布,对 \(998244353\) 取模. \(p\) 为质数. \(n\leq {10}^{18} ...