flex弹性布局学习

一、介绍

  flex( flexible box:弹性布局盒模型),是2009年w3c提出的一种可以简洁、快速弹性布局的属性。主要思想是给予容器控制内部元素高度和宽度的能力。目前已得到以下浏览器支持:

二、了解两个基本概念:
  容器:需要添加弹性布局的父元素;

  项目:弹性布局容器中的每一个子元素,称为项目;

  容器默认存在两根轴:水平的主轴(main axis)和垂直的交叉轴(cross axis)。主轴的开始位置(与边框的交叉点)叫做main start,结束位置叫做main end;交叉轴的开始位置叫做cross start,结束位置叫做cross end

  项目默认沿主轴排列。单个项目占据的主轴空间叫做main size,占据的交叉轴空间叫做cross size

三、容器属性详述

  1.flex-direction

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

    row:主轴为水平方向,项目沿主轴从左至右排列

    column:主轴为竖直方向,项目沿主轴从上至下排列

    row-reverse:主轴水平,项目从右至左排列,与row反向

    column-reverse:主轴竖直,项目从下至上排列,与column反向

  2、flex-wrap

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

    nowrap:自动缩小项目,不换行

    wrap:换行,且第一行在上方

    wrap-reverse:换行,第一行在下面

3、flex-flow

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

4、justify-content

    决定item在主轴上的对齐方式,可能的值有flex-start(默认),flex-end,center,space-between,space-around。当主轴沿水平方向时,具体含义为

      flex-start:左对齐

      flex-end:右对齐

      center:居中对齐

      space- between:两端对齐

      space-around:沿轴线均匀分布

5、align-items

  align-items属性:定义项目在交叉轴上的排列方式

    flex-start:顶端对齐

    flex-end:底部对齐

    center:竖直方向上居中对齐

    baseline:item第一行文字的底部对齐

    stretch:当item未设置高度时,item将和容器等高对齐

  

6、align-content

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

      flex-start:左对齐

      flex-end:右对齐

      center:居中对齐

      space- between:两端对齐

      space-around:沿轴线均匀分布

      stretch:各行将根据其flex-grow值伸展以充分占据剩余空间

  效果图如下

四、作用于项目上的属性

1、order

    order的值是整数,默认为0,整数越小,排列越靠前,如下图所示代码如下

<div id="wrap">
    <div class="div" style="order:4">1</div>
    <div class="div" style="order:2">2</div>
    <div class="div" style="order:3">3</div>
    <div class="div" style="order:1">4</div>
</div>

2、flex-grow

    定义了当flex容器有多余空间时,item是否放大。默认值为0,即当有多余空间时也不放大;可能的值为整数,表示不同item的放大比例,如

<div class="wrap">
    <div class="div" style="flex-grow:1">1</div>
    <div class="div" style="flex-grow:2">2</div>
    <div class="div" style="flex-grow:3">3</div>
</div>

即当有多余空间时item1、item2、和item3以1:2:3的比例放大。

3、flex-shrink

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

4、flex-basis

flex-basis属性 定义项目占据的主轴空间。(设置后如果主轴为水平,则设置的这个属性,相当于设置项目的宽度。原width会失效)

flex属性是flex-grow, flex-shrink 和 flex-basis的简写,默认值为0 1 auto。后两个属性可选。
     这个属性有两个快捷设置: auto=(1 1 auto)/none=(0 0 auto)

align-self属性 :定义单个项目自身在交叉轴上的排列方式,可以覆盖掉让其上的align-items属性
  属性值:与align-items相同,默认值为auto,表示继承父容器的align-items属性。

时间: 2024-10-07 06:24:45

flex弹性布局学习的相关文章

flex弹性布局学习总结

一.简要介绍 flex( flexible box:弹性布局盒模型),是2009年w3c提出的一种可以简洁.快速弹性布局的属性.主要思想是给予容器控制内部元素高度和宽度的能力.目前已得到以下浏览器支持: 其中在webkit内核的浏览器中使用时,必须加上-webkit-前缀,以下不再重复说明. 下图为flex的相关概念的示意图 使用flex布局的容器(flex container),它内部的元素自动成为flex项目(flex item).容器拥有两根隐形的轴,水平的主轴(main axis),和竖

css flex弹性布局学习总结

一.简要介绍 flex( flexible box:弹性布局盒模型),是2009年w3c提出的一种可以简洁.快速弹性布局的属性. 主要思想是给予容器控制内部元素高度和宽度的能力.目前已得到以下浏览器支持: 其中在webkit内核的浏览器中使用时,必须加上-webkit-前缀 采用Flex布局的元素,称为Flex容器(flex container),简称”容器”. 它的所有子元素自动成为容器成员,称为Flex项目(flex item),简称”项目”. 下图为flex的相关概念的示意图       

flex 弹性布局整理

flex布局(弹性布局) 1.容器具备的属性有: flex-dirction:(决定主轴的方向)(即项目排列方向) 取值:row/row-reverse/column/column-reverse/ flex-wrap:(如果一条轴线排不了,如何换行) 取值:nowrap(默认):不换行. wrap:换行,第一行在上方. wrap-reverse:换行,第一行在下方. flex-flow :(flex-flow属性是flex-direction属性和flex-wrap属性的简写形式,默认值为ro

flex弹性布局

Css3的flex布局用法 Flex意为"弹性布局",英文flexible box的缩写,flex布局使css盒模型变得更加强大和灵活,flex布局主要用在webapp和移动端中使用,移动端flex布局,将使的布局变得异常简单. 任何一个容器都可以指定为flex布局: 行内元素也可以使用flex布局. .box{display:inline-flex;} Webkit内核的浏览器,必须加上-webkit前缀 .box{ display:-webkit;/*Safari*/display

Flex弹性布局在移动设备上的应用

引文 首先,我们有表格布局.当不考虑语义并且利用一些适当的嵌套和其他技巧,我们可以用table建立具有一定功能的布局. 然后是现在大多数人都在使用的浮动布局.我们可以使用任何我们想用的元素,但浮动并不适用于初学者.表面上它看起来很基础,但背后复杂的功能可以使经验丰富的开发者看着自己的屏幕不知所措.另外,浮动布局有一个缺点就是需要通过额外的元素清除浮动,或者更好一点,可以清除CSS浮动而不添加额外的标签. 这些缺点使得浮动布局不是很容易掌握,因为没有一个默认的方法可以建立起浮动与元素之间的关系,所

display:flex弹性布局

一般的布局是基于盒模型,使用display属性 + float属性 + position属性.flex是h5中新增的页面布局方案. 一:flex布局是什么. flex是Flexible Box,就是"弹性布局".它具有非常好的灵活性. 任何容器都可以开启弹性布局. .box{ display:flex}; 行内元素开启弹性布局 .box{ dispaly: inline-flex}; webkit内核的浏览器,需要加前缀-webkit- .box{ display: -webkit-f

CSS Flex弹性布局

关于css3的flex布局,阮一峰老师的文章写的清晰易懂又全面,这里附上链接http://www.ruanyifeng.com/blog/2015/07/flex-grammar.html?utm_source=tuicool 浏览器支持 布局的传统解决方案,基于盒状模型,依赖 display属性 + position属性 + float属性.它对于那些特殊布局非常不方便,比如,垂直居中就不容易实现.2009年,W3C提出了一种新的方案----Flex布局,可以简便.完整.响应式地实现各种页面布

flex弹性布局例子

<style> ul{ display: flex; width:300px; } li{ flex: 1; text-align: center; line-height: 100px; } ul li{ list-style:none; background:#6bc3e6; border-right:1px solid #fff; color:#fff; } body,p{margin:0;} </style> <body> <ul> <li&g

真香的flex弹性布局

如何实现一个左中右的布局 在flex出现之前 #box{ color: white; } #left{ float: left; width: 30%; background-color: red; } #right{ float: right; width: 20%; background-color: green; } #center{ background-color: blue; overflow:hidden; /* 去除浮动换成 margin: 0 20% 0 30%; 效果一样 *