FlexBox 布局详解

栏目: CSS · 发布时间: 7年前

内容简介:FlexBox 布局详解

很久没有写博客了,这里把之前学习 flex 布局的一篇笔记整理了一下。发布到博客上。赶一个五月的末班车吧。还是得坚持啊!!

flex 弹性布局

FlexBox 可控制子元素:

  • 水平或垂直排成一行
  • 控制子元素的对齐方式
  • 控制子元素的高度/宽度
  • 控制子元素的显示顺序
  • 控制子元素是否折行

display:flex; 创建 Flexbox 元素

在 flex 布局中必须理解的概念就是区分主轴和辅轴(侧轴):

FlexBox 布局详解

在项目中我们使用 display:flex; 创建 Flexbox 元素,那么该元素就成为了一个 flex container ( 弹性的容器)。

其在 文档流中的直接子元素 将成为 flex item

flex item 子元素 在容器内 排列的方向称为 主轴 ,跟主轴垂直的方向称为 辅轴

方向相关属性

flex-direction

  • 设置子元素排列方向 (其实也就是主轴的排列方向)
  • 取值 row | row-reverse | column | column-reverse
  • 默认 row :

其中不同的设置,效果大致如下 :

FlexBox 布局详解

flex-wrap

  • 元素在主轴方向排放时,能否换行
  • 取值: nowrap | wrap | wrap-reverse
  • 默认 nowrap ,不换行
/*base css*/
.container{
    width: 400px;
    margin: 20px;
    line-height: 40px;
    font-size: 20px;
    color: #fff;
    display:flex;
}

.item{
    margin: 10px;
    width: 100px;
    line-height: 40px;
    text-align: center;
}

FlexBox 布局详解

合并属性: flex-flow , 上面两个属性的缩写

  • <'flex-direction'> || <'flex-wrap'>
  • 默认: flex-flow: row nowrap;

这里直接结合两个属性看就好。

order

  • 指定摆放时的顺序,从小到大
  • 取值:默认 0 ,(支持负值和正值)

FlexBox 布局详解

弹性相关属性,都是设置在子元素上的

flex-basis

  • 设置 flex item 的初始宽/高
  • 取值: main-size | <width>
  • 默认: main-size : 主轴方向的宽度 (根据 flex-direction 设置,水平排列时,设置的是宽度;垂直排列时,设置的高度)

flex-grow

  • 定义每一个子元素在盒子内的弹性
  • 拓展盒子剩余空间的能力 (空间富余时)
  • 取值: <number>
  • 取值:默认 0 ,整数小数都可
  • 剩余空间的分配规则 : flex-basis + flow-grow/sum(flow-grow)*remain remain 表示多余的空间

这里可以看到 只设置 flex-basis 相当与设置元素的 width

FlexBox 布局详解 FlexBox 布局详解 FlexBox 布局详解

flex-shrink

  • 定义元素收缩的能力 (空间不足时)
  • 取值: <number>
  • 取值 : 默认 1 ,平方(值为 0 时,不收缩)
  • 不足空间收缩的规则 : flex-basis + flow-grow/sum(flow-grow)*remain remain 表示不足的空间 (负值)

FlexBox 布局详解 FlexBox 布局详解 FlexBox 布局详解

合并属性: flex

  • <'flex-grow'> || <'flex-shrink'> || <'flex-basis'>
  • 默认: flex: 0 1 main-size; 看上面

FlexBox 布局详解 FlexBox 布局详解

对齐 相关的属性

justify-content

  • 设置子元素在主轴方向上的对其方式
  • 取值: flex-start | flex-end | center | space-between | space-around
  • 默认 flex-start

FlexBox 布局详解

例子:切换主轴方向时

FlexBox 布局详解

align-items

  • 设置在辅轴上的对齐方式。
  • 取值: flex-start | flex-end | center | baseline | stretch
  • 默认 stretch

FlexBox 布局详解

align-self 设置在子元素上

  • 单独设置子元素在辅轴方向的对齐方式
  • 取值: flex-start | flex-end | center | baseline | stretch
  • 默认 stretch

align-content

  • 多行内容 设置在辅轴方向上,行的对齐方式
    • 取值: flex-start | flex-end | center | space-between | space-around | stretch
  • 默认 stretch 拉伸

FlexBox 布局详解


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

让大象飞

让大象飞

[美] 史蒂文·霍夫曼 / 周海云、陈耿宣 / 中信出版社 / 2017-3 / 69.00

这是一本为中国创业者量身定做的创业指南,将帮助创业者理解创新的基本方法、模式和硅谷的创业理念。作者霍夫曼频繁地穿梭于中美两地,与不同的创业者、投资人、政府负责人进行对话,积累了大量的来自中国创业者的第一手经验。在这本书里,从创业团队的人员配备到创业融资的成败再到团队的高效管理,从创业者的心理素质到创业者的独到眼光再到企业赖以生存的根本,360度无死角地呈现了一家公司从初创到惊艳到立足再到稳定的全过......一起来看看 《让大象飞》 这本书的介绍吧!

HTML 压缩/解压工具
HTML 压缩/解压工具

在线压缩/解压 HTML 代码

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具

HSV CMYK 转换工具
HSV CMYK 转换工具

HSV CMYK互换工具