flexbox简介

什么是flexbox

flexbox是一种新的布局方式,这种布局方式是2009年W3C提出的方案。它可以简便,完整,完成页面的布局。目前,它已经得到所有浏览器的支持。

但是flexbox从2009年以来,有各种版本的变化,比如2009年版本和2011年版本差别比较大。

为什么要有flexbox

每个新事物出现都有其历史使命的。flexbox也是如此,传统的布局依赖于屏幕的宽度和高度,或者依赖于计算的百分比,但是flex则是直接按照比例关系进行布局展示。

这样做的好处就是当屏幕进行拉升等情况的时候,flex布局的页面仍然符合我们的预期。

比如一个横排布局

|-----|-----|----------|
| 1 | 1 | 2 |
|-----|-----|----------|

平时的布局情况我们就会为1设置宽度25%,2设置宽度50%。但是这个时候,如果我们要变成下面这个布局呢?

|-----|-----|-----|----------|
| 1 | 1 | 1 | 2 |
|-----|-----|-----|----------|

那么我们就需要重新设置比例了,1比例为20%,2比例为40%。

在flexbox中,我们就可以直接设置一个横排为一个flex容器,然后子结构1的比例为1(flex:1),自结构2的比例为(flex:2)。

flexbox都有哪些属性可以设置

强烈推荐(《A Complete Guide to Flexbox》)[https://css-tricks.com/snippets/css/a-guide-to-flexbox/]。文章图文并茂地说了各个属性的各种含义。

父容器的属性

  • display:flex。 表明这个容器是flex布局。
  • flex-direction: row | row-reverse | column | column-reverse; 表明容器里面的子元素的排列方向。
  • flex-wrap: nowrap | wrap | wrap-reverse; 如果子元素溢出父容器的时候是否进行换行。
  • justify-content: flex-start | flex-end | center | space-between | space-around; 这一个容器子元素横向排版在容器的哪个位置
  • align-items: flex-start | flex-end | center | baseline | stretch; 这个容器子元素纵向排版在容器的哪个位置
  • align-content: flex-start | flex-end | center | space-between | space-around | stretch; 当容器内有多行项目的时候,项目的布局

子元素的属性

  • order: ; 子元素的排序
  • flex-grow: ; 分配剩余空间的比例
  • flex-shrink: ; 分配溢出空间的比例
  • flex-basis: | auto;
  • flex: none | [ <'flex-grow'> <'flex-shrink'>? || <'flex-basis'> ] 在容器中占比
  • align-self: auto | flex-start | flex-end | center | baseline | stretch; 特定某个子元素的排布情况

参考文章

(A Complete Guide to Flexbox)[https://css-tricks.com/snippets/css/a-guide-to-flexbox/]

(终极Flexbox属性查询列表)[http://www.w3cplus.com/css3/css3-flexbox-cheat-sheet.html]

(一个完整的Flexbox指南)[http://www.w3cplus.com/css3/a-guide-to-flexbox.html]

(Flex 布局教程:语法篇)[http://www.ruanyifeng.com/blog/2015/07/flex-grammar.html]

(利用flexbox构建可伸缩布局)[http://yanni4night.com/blog/flexbox-layout.html]

flexbox简介的更多相关文章

  1. 弹性盒子FlexBox简介(二)

    弹性盒子属性 一.align-content属性 属性作用:用于修改flex-wrap属性行为.类似于justify-content,但它不是设置弹性子元素的对齐,而是设置各个行的对齐. 属性值: f ...

  2. 弹性盒子FlexBox简介(一)

    一.理解弹性盒子 弹性盒子是CSS3的一种新的布局模式. CSS3弹性盒子(Flexible Box或flexbox),是一种当页面需要适应不同的屏幕大小以及设备类型时,确保元素拥有恰当的行为的布局方 ...

  3. 一个完整的Flexbox指南(转载)

    本文由大漠根据Chris Coyier的<A Complete Guide to Flexbox>所译,整个译文带有我们自己的理解与思想,如果译得不好或不对之处还请同行朋友指点.如需转载此 ...

  4. 【HTML5&CSS3进阶学习02】Header的实现·CSS中的布局

    前言 我们在手机上布局一般是这个样子的: 其中头部对整个mobile的设计至关重要,而且坑也很多: ① 一般来说整个header是以fixed布局,fixed这个产物在移动端来说本身坑就非常多 ② 在 ...

  5. 【转】Flexbox——快速布局神器

    原文转自:http://www.w3cplus.com/css3/flexbox-basics.html 简介 在很多方面HTML和CSS是一个强大的内容发布机制——易学.灵活和强大.但复杂的布局是他 ...

  6. React Native 简介:用 JavaScript 搭建 iOS 应用 (1)

    [编者按]本篇文章的作者是 Joyce Echessa--渥合数位服务创办人,毕业于台湾大学,近年来专注于协助客户进行 App 软体以及网站开发.本篇文章中,作者介绍通过 React Native 框 ...

  7. flexbox布局模式-- 浅谈

    简介 Flexbox,一种CSS3的布局模式,也叫做弹性盒子模型,用来为盒装模型提供最大的灵活性.今天主要从以下几个方面简单谈谈flex. 1 版本更迭 2 flex容器 3 flex项目 4 fle ...

  8. 聊聊Flexbox布局中的flex的演算法

    到目前为止,Flexbox布局应该是目前最流行的布局方式之一了.而Flexbox布局的最大特性就是让Flex项目可伸缩,也就是让Flex项目的宽度和高度可以自动填充Flex容器剩余的空间或者缩小Fle ...

  9. 不再混淆,一次搞懂!图解flexbox十余个属性

    原文首发于个人博客:不再混淆,一次搞懂!图解flexbox十余个属性 flexbox的发明简直是csser的一大福音,终于可以不再需要为垂直居中一个元素而绞尽脑汁了.同时它还能够实现弹性布局,可以说没 ...

随机推荐

  1. Java多线程19:定时器Timer

    前言 定时/计划功能在Java应用的各个领域都使用得非常多,比方说Web层面,可能一个项目要定时采集话单.定时更新某些缓存.定时清理一批不活跃用户等等.定时计划任务功能在Java中主要使用的就是Tim ...

  2. Nim教程【九】

    向关注这个系列的朋友们,道一声:久违了! 它并没有被我阉掉,他一定会得善终的,请各位不要灰心 Set集合类型 为了在特殊场景下提高程序的性能设置了Set类型,同时也是为了保证性能,所以Set只能容纳有 ...

  3. FB引擎系列-之CloudSand

    CloudSand,欲打破之前的集中版本制作的模式, http://code.taobao.org/p/cloudsand包含服务器端代码(php)和客户端代码(unity)   EasyDown的时 ...

  4. Unity3D逻辑热更新,第二代舒爽解决方案,L#使用简介

    热更新 天下武功,无坚不破,唯快不破 热更新就是为了更快的把内容推到用户手中. 之前,我设计了C#Light,经过半年多的持续修补,勉强可用,磕磕绊绊.感谢那些,试过,骂过,用过的朋友,在你们的陪伴下 ...

  5. channel vs mutex

    记录许总演讲PPT指出的实践: channel– 本质上是一个 MessageQueue– 非常正统的执行体间通讯设施• sync.Mutex/RWMutex/Cond/etc– 不要把 channe ...

  6. [php入门] 4、HTML基础入门一篇概览

    [php入门] 1.从安装开发环境环境到(庄B)做个炫酷的登陆应用 [php入门] 2.基础核心语法大纲 [php入门] 3.WAMP中的集成MySQL相关基础操作 1.HTML的作用 HTML是超文 ...

  7. Git学习笔记(7)——多人协作

    本文主要记录了,多人协作时,产生冲突时的解决情况. 多人环境创建 首先我们需要模拟一个多人环境.前面的Git的学习都是在Ubuntu上面,现在我们也搭建一个win环境吧.安装win环境下的Git,很简 ...

  8. JS动态设置css的几种方式

    1. 直接设置style的属性  某些情况用这个设置 !important值无效 如果属性有'-'号,就写成驼峰的形式(如textAlign)  如果想保留 - 号,就中括号的形式  element. ...

  9. Atitit机器学习原理与概论book attilax总结

    Atitit机器学习原理与概论book attilax总结 <机器学习(决战大数据时代!IT技术人员不得不读!)>((美)米歇尔(Mitchell)[简介_书评_在线阅读] -1 < ...

  10. redis常用操作总结

    在项目中时常会用到redis,redis看起来好像很难的样子,而且我也确认反复学习了很久,但是,总结下来,自己使用到的东西并不太多,如下作一些总结工作. 1.安装(单机) 1.1 windows, 直 ...