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 布局详解


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

查看所有标签

猜你喜欢:

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

算法设计与分析

算法设计与分析

郑宗汉//郑晓明 / 清华大学 / 2011-7 / 45.00元

《算法设计与分析(第2版)》系统地介绍算法设计与分析的概念和方法,共4部分内容。第1部分介绍算法设计与分析的基本概念,结合穷举法、排序问题及其他一些算法,对算法的时间复杂性的概念及复杂性的分析方法作了较为详细的叙述;第2部分以算法设计技术为纲,从合并排序、堆排序、离散集合的union和find操作开始,进而介绍递归技术、分治法、贪婪法、动态规划、回溯法、分支与限界法和随机算法等算法设计技术及其复杂......一起来看看 《算法设计与分析》 这本书的介绍吧!

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具

随机密码生成器
随机密码生成器

多种字符组合密码

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换