关于 FlexBox

flex布局模型不同于块和内联模型布局,块和内联模型的布局计算依赖于块和内联的流方向,而flex布局依赖于flex directions  简单的说:Flexbox是布局模块,而不是一个简单的属性,它包含父元素(flex Container)子元素(flex items)的属性。

主轴、主轴方向(main axis |main dimension):用户代理沿着一个伸缩容器的主轴配置伸缩项目,主轴是主轴方向的延伸。

   主轴起点、主轴终点(main-start |main-end):伸缩项目的配置从容器的主轴起点边开始,往主轴终点边结束。

   主轴长度、主轴长度属性(main size |main size property):伸缩项目的在主轴方向的宽度或高度就是项目的主轴长度,伸缩项目的主轴长度属性是width或height属性,由哪一个对着主轴方向决定。

  侧轴、侧轴方向(cross axis |cross dimension):与主轴垂直的轴称作侧轴,是侧轴方向的延伸。

  侧轴起点、侧轴终点(cross-start |cross-end):填满项目的伸缩行的配置从容器的侧轴起点边开始,往侧轴终点边结束。

  侧轴长度、侧轴长度属性(cross size |cross size property):伸缩项目的在侧轴方向的宽度或高度就是项目的侧轴长度,伸缩项目的侧轴长度属性是”width”或”height”属性,由哪一个对着侧轴方向决定。

如何使用flex

任何一个容器都可以指定为Flex布局。

.container{
  display: flex;
}

 但是当设为Flex布局以后,子元素的floatclearvertical-align属性将失效

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

flex-direction: row | row-reverse | column | column-reverse;

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

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; 
       flex-start(默认值):左对齐 
       flex-end:右对齐 
       center: 居中 
       space-between:两端对齐,项目之间的间隔都相等。 
       space-around:每个项目两侧的间隔相等。所以,项目之间的间隔比项目与边框的间隔大一倍。

  • align-items 定义项目在交叉轴上如何对齐

flex-start | flex-end | center | baseline | stretch; 
       flex-start:交叉轴的起点对齐。 
       flex-end:交叉轴的终点对齐。 
       center:交叉轴的中点对齐。 
       baseline: 项目的第一行文字的基线对齐。 
       stretch(默认值):如果项目未设置高度或设为auto,将占满整个容器的高度。

  • align-content属性 定义了多根轴线的对齐方式。如果项目只有一根轴线,该属性不起作用

flex-start | flex-end | center | space-between | space-around | stretch;

flex-start:与交叉轴的起点对齐。 
   flex-end:与交叉轴的终点对齐。 
   center:与交叉轴的中点对齐。 
   space-between:与交叉轴两端对齐,轴线之间的间隔平均分布。 
   space-around:每根轴线两侧的间隔都相等。所以,轴线之间的间隔比轴线与边框的间隔大一倍。 
  stretch(默认值):轴线占满整个交叉轴。

  • order属性 定义项目的排列顺序。数值越小,排列越靠前,默认为0
order: <integer>;
  • flex-grow定义项目的放大比例,默认为0,即如果存在剩余空间,也不放大。
flex-grow: <number>;   
  • flex-shrink属性 定义了项目的缩小比例,默认为1,即如果空间不足,该项目将缩小

    1 .item {
    2   flex-shrink: <number>; /* default 1 */
    3 }
  • flex-basis属性定义了在分配多余空间之前,项目占据的主轴空间(main size)。浏览器根据这个属性,计算主轴是否有多余空间。它的默认值为auto,即项目的本来大小。

    1 .item {
    2   flex-basis: <length> | auto; /* default auto */
    3 }
  • flex属性 是flex-grow, flex-shrink 和 flex-basis的简写,默认值为0 1 auto。后两个属性可选。
1 .item {
2   flex: none | [ <‘flex-grow‘> <‘flex-shrink‘>? || <‘flex-basis‘> ]
3 }
  • align-self属性 align-self属性允许单个项目有与其他项目不一样的对齐方式,可覆盖align-items属性。默认值为auto,表示继承父元素的align-items属性,如果没有父元素,则等同于stretch。
1 .item {
2   align-self: auto | flex-start | flex-end | center | baseline | stretch;
3 }
此后进行一般布局就可以很方便了····

参考文献: 
http://www.ruanyifeng.com/blog/2015/07/flex-grammar.html?utm_source=tuicool


时间: 2024-08-08 17:47:46

关于 FlexBox的相关文章

如何使用Flexbox和CSS Grid,实现高效布局

CSS 浮动属性一直是网站上排列元素的主要方法之一,但是当实现复杂布局时,这种方法不总是那么理想.幸运的是,在现代网页设计时代,使用 Flexbox 和 CSS Grid 来对齐元素,变得相对容易起来. 使用 Flexbox 可以使元素对齐变得容易,因此 Flexbox 已经被广泛使用了. 同时,CSS Grid 布局也为网页设计行业带来了很大的便利.虽然 CSS Grid 布局未被广泛采用,但是浏览器逐渐开始增加对 CSS Grid 布局的支持. 虽然 Flexbox 和 CSS Grid 可

Designing CSS Layouts With Flexbox Is As Easy As Pie

This article is an updated excerpt of the chapter "Restyle, Recode, Reimagine With CSS3″ from our Smashing Book #3, written by Lea Verou and David Storey. - Ed. Flexible box layout (or flexbox) is a new box model optimized for UI layout. As one of th

HTML5移动开发之Flexbox布局讲解与使用技巧

现在来详细介绍一下Flexbox布局语法跟使用.大家可能非常关心以下几个问题: 1 .什么是Flexbox布局? 2. Flexbox布局主要用于什么场景? 3. Flexbox布局它的语法是什么? 4. 如何实际使用Flexbox布局? 5. Flexbox布局它的缺陷是什么? 下面就这五个问题给大家分析分析.希望给那些想尝试用Flexbox的行内人有所帮助. 在恰当的地方能够使用恰当的布局方法,如果有说的不到位,希望大家指正,一起进步. 1 .什么是Flexbox布局? 1.1 W3C解释

React Native FlexBox布局

这段时间熟悉了一下ReactNative,里面的布局感觉很有意思,跟我以前接触的布局思想有很大不同,所以就自己测试了一些FlexBox的属性,一下是效果图: RN的布局主要依赖于FlexBox系统,它有如下几个主要属性: flex 视图的比重,这里注意了:In React Native flex does not work the same way that it does in CSS flexDirection 子视图在容器中排布的方向,这是用来确定主轴的 flexDirection con

React Native(一) FlexBox布局

欢迎转载,转载请标明出处: http://blog.csdn.net/johnny901114/article/details/53241550 本文出自:[余志强的博客] 在React Native中主要使用FlexBox来布局. 安装过React Native的开发环境的就知道,在index.android.js/index.ios.js的文件内容如下: export default class TemplateDemo extends Component { render() { retu

初级前端自学react-native,必备知识点(ES6+ReactJS+flexbox)

我们在学会搭建react-native环境之后,打开项目根目录,看到很多个文件,但是最起眼的应该就是那俩js兄弟文件了 我们一看那名字就知道,我们接下来的任务就是要弄它们: 我们用编辑器打开项目根目录下的index.android.js文件,可以看到有这么个东西: 那么我们先测试一下,在手机上跑起来.不知道大家还记不记得步骤: 第一步:在项目根目录下打开两个git bash.第一个输入:react-native start        这一步是在启用服务器 第二步:在第一步成功之后,连接手机,

Flexbox属性总结

来源:Flexbox详解 align-content

使用css Flexbox实现垂直居中

CSS布局对我们来说一直是个噩梦,我们都认为flexbox是我们的救世主.是否真的如我们说说,还有待观察,但是flexbox确非常轻松的解决css长久一来比较难解决的居中问题.让我们来看看到底有多容易: 垂直居中需要一个父元素和子元素: <div class="flexbox-container"> <h1>Hello World</h1> <div>Blah blah blah blah blah ...</div> <

CSS多列布局Multi-column、伸缩布局Flexbox、网格布局Grid详解

新css属性为我们提供了更加便捷的网页布局方式.来自微软的thomas lewis将带你认识去Grid Alignment,Flexibox Box以及Multi-column Layout这三大领域. 这篇文章最早出现在the April 2012 issue (226)这期的.net杂志上-这杂志是面向网页设计者以及开发者,全球销量最高的杂志. 按照以往来说,用CSS来布局看起来总是一样非常繁杂的工作.然而,随着一个个新标准的推出,网页设计者已经能够实现非常轻松地进行布局工作了. 主流的浏览

CSS3弹性盒模型flexbox完整版教程

文章目录 基础知识 属性介绍 display: flex | inline-flex; (适用于父类容器元素上) 请注意: flex-direction (适用于父类容器的元素上) flex-wrap (适用于父类容器上) flex-flow (适用于父类容器上) justify-content (适用于父类容器上) align-items (适用于父类容器上) align-content (适用于父类容器上) order (适用于弹性盒模型容器子元素) flex-grow (适用于弹性盒模型容