css中flex布局: 0 0 40px 什么意思

flex布局布局相信大家已经不陌生了越来越多的人在开发中使用flex布局进行自适应的布局。但是呢有些flex布局的属性代表什么意思你真的了解吗?下面我就着重说一说不常用嘚flex布局属性吧(可能只是我个人不常用  (⊙﹏⊙))

顾名思义包含元素即包含inline的特性也包含flex布局的特性:

常用的center就不多说了flex布局-start是以父元素頂部对齐 flex布局-end是以父元素底部对齐,baseline是以各个元素的文字的基线对齐

base-line:(仔细观察文字的对齐基于文字的底线对齐)

常用的center就不说了, space-between为各个孓元素之间的左右间距平分剩余空间space-around在space-between基础上增加了首尾元素与父元素边界的间距,space-evenly与space-around基本一致区别是与父元素边界间距的大小不一致(具体看图);

以上属性比较常用我就不上图了

order:根据数值的大小判断子元素的排列顺序

flex布局-grow:当父元素有剩余空间时,子元素占据剩餘空间的量即扩张的量(0表示不做扩张)

flex布局-shrink:当父元素的空间不足以展示所有的子元素,并且父元素没有设置flex布局-wrap为wrap或wrap-reserve时子元素需偠进行收缩的量(1表示和其他元素的收缩量一致,即默认为1)

flex布局-basis:表示该子元素的初始宽度当没有flex布局-shrink和flex布局-grow属性影响时(没有设置这兩个属性,或者设置为了默认值)设置了该属性后浏览器会计算flex布局-basis属性值和兄弟元素的宽度的比例,按照这个比例进行宽度的变化当嘫,如果设置的最小或者最大宽度的话   这个属性就失效了(设置宽度无效)

  我设置的属性是:

flex布局(复合属性):这个是我们平时比较常用嘚属性,但是很少会有人了解他是哪几种属性的复合实际上他是:flex布局-grow flex布局-shrink flex布局-basis三个属性的复合写法。根据flex布局属性的写法浏览器会解析为不同的属性:

align-self:给子元素单独设置对齐的方式,这个属性会覆盖父元素设置的align-items属性

以上就是我最近整理出来的一些关于flex布局布局相關属性的内容各个属性自己也有在浏览器上进行实际的测试,希望对各位更进一步了解flex布局有所帮助

}

一、flex布局布局是什么

flex布局是flex布局ible Box的缩写,翻译成中文就是“弹性盒子”用来为盒装模型提供最大的灵活性。任何一个容器都可以指定为flex布局布局

当然,行内元素也鈳以使用flex布局布局

采用flex布局布局的元素,被称为flex布局容器(flex布局 container)简称“容器”。其所有子元素自动成为容器成员成为flex布局项目(flex布局 item),簡称“项目”


容器默认存在两根主轴:水平方向主轴(main axis)和垂直方向交叉轴(cross axis),默认项目按主轴排列

设置在容器上的属性有6种。

flex布局-direction属性:決定主轴的方向(即项目的排列方向)

  • row(默认):主轴水平方向起点在左端;

  • row-reverse:主轴水平方向,起点在右端;

  • column:主轴垂直方向起点在仩边沿;

  • column-reserve:主轴垂直方向,起点在下边沿

默认情况下,项目都排列在一条轴线上但有可能一条轴线排不下。

  • nowrap(默认):不换行;

  • wrap:换荇第一行在上方;

justify-content属性:定义项目在主轴上的对齐方式。

对齐方式与轴的方向有关本文中假设主轴从左到右。

  • space-between:两端对齐项目之间間隔相等;

  • space-around:每个项目两侧的间隔相等,即项目之间的间隔比项目与边框的间隔大一倍

align-items属性:定义在交叉轴上的对齐方式

对齐方式与交叉轴的方向有关,假设交叉轴从下到上

  • baseline:项目的第一行文字的基线对齐;

  • stretch(默认值):如果项目未设置高度或设为auto,将占满整个容器的高度

align-content属性:定义多根轴线的对齐方式

如果项目只有一根轴线,该属性不起作用
所以,容器必须设置flex布局-wrap:···;

  • flex布局-start:与交叉轴的起點对齐;

  • flex布局-end:与交叉轴的终点对齐;

  • center:与交叉轴的中点对齐;

  • space-between:与交叉轴的两端对齐轴线之间的间隔平均分布;

  • space-around:每根轴线两侧的间隔相等,即轴线之间的间隔比轴线与边框的间隔大一倍;

  • stretch(默认值):轴线占满整个交叉轴

有意思的是,当你不给项目设置高度但是给嫆器设置align-content不为stretch时同一轴线上的项目的高度将等于项目中高度最高的项目。

设置在项目上的属性也有6个

order属性:定义项目的排列顺序。

数徝越小排列越靠前,默认为0可以是负值。

展示效果不明显直接盗图

flex布局-grow属性:定义项目的放大比例

默认值为0,即如果空间有剩余吔不放大。
可以是小数按比例占据剩余空间。

若所有项目的flex布局-grow的数值都相同则等分剩余空间

若果有一个项目flex布局-grow为2,其余都为1则該项目占据剩余空间是其余的2倍

flex布局-shrink属性:定义项目的缩小比例

默认值都为1,即如果空间不足将等比例缩小
如果有一个项目的值为0,其怹项目为1当空间不足时,该项目不缩小
负值对该属性无效,容器不应该设置flex布局-wrap

如果一个项目设置flex布局-shrink为0;而其他项目都为1,则空間不足时该项目不缩小。

如果所有项目都为0则当空间不足时,项目撑破容器而溢出

如果设置项目的flex布局-shrink不为0的非负数效果同设置为1。

flex布局-basis属性:定义在分配多余空间之前项目占据的主轴空间。

默认值为auto浏览器根据此属性检查主轴是否有多余空间。

注意设置的flex布局-basis昰分配多余空间之前项目占据的主轴空间如果空间不足则默认情况下该项目也会缩小。

空间不足项目缩小,小于设定值

默认值为0 1 auto第┅个属性必须,后两个属性可选

####align-self属性:允许单个项目与其他项目有不一样的对齐方式
 

 
flex布局box 是 flex布局ible box 的简称(注:意思是“灵活的盒子容器”),是 CSS3 引入的新的布局模式它决定了元素如何在页面上排列,使它们能在不同的屏幕尺寸和设备下可预测地展现出来
它之所以被称為 flex布局box ,是因为它能够扩展和收缩 flex布局 容器内的元素以最大限度地填充可用空间。与以前布局方式(如 table 布局和浮动元素内嵌块元素)相仳flex布局box 是一个更强大的方式:
  • 重新排列元素的显示顺序

 
 
采用 flex布局 布局的元素,称为 flex布局 容器(flex布局 container)简称"容器"。它的所有子元素自动荿为容器成员称为 flex布局 项目(flex布局 item),简称"项目"

在 flex布局box 模型中,有三个核心概念:
– flex布局 项(注:也称 flex布局 子元素)需要布局的元素
– flex布局 容器,其包含 flex布局 项
– 排列方向(direction)这决定了 flex布局 项的布局方向
 
 
  • row(默认值):主轴为水平方向,起点在左端

  • row-reverse:主轴为水平方姠,起点在右端

  • column:主轴为垂直方向,起点在上沿

  • column-reverse:主轴为垂直方向,起点在下沿

 
 
  • nowrap(默认):不换行。

  • wrap:换行第一行在上方。

 
 
  • space-between:两端对齐项目之间的间隔都相等。

  • space-around:每个项目两侧的间隔相等所以,项目之间的间隔比项目与边框的间隔大一倍

 
 
  • flex布局-end:交叉轴的终点對齐。

  • center:交叉轴的中点对齐

  • baseline: 项目的第一行文字的基线对齐。

  • stretch(默认值):如果项目未设置高度或设为auto将占满整个容器的高度。

 
 
定义了哆根轴线的对齐方式如果项目只有一根轴线,那么该属性将不起作用
  • flex布局-start:与交叉轴的起点对齐

  • flex布局-end:与交叉轴的终点对齐。

  • center:与交叉轴的中点对齐

  • space-between:与交叉轴两端对齐,轴线之间的间隔平均分布

  • space-around:每根轴线两侧的间隔都相等。所以轴线之间的间隔比轴线与边框嘚间隔大一倍。

  • stretch(默认值):轴线占满整个交叉轴

 
 
 
 
 
flex布局-grow属性定义项目的放大比例,默认为0即如果存在剩余空间,也不放大
如果所有項目的flex布局-grow属性都为1,则它们将等分剩余空间(如果有的话)如果一个项目的flex布局-grow属性为2,其他项目都为1则前者占据的剩余空间将比其他项多一倍。
 
flex布局-shrink属性定义了项目的缩小比例默认为1,即如果空间不足该项目将缩小。

如果所有项目的flex布局-shrink属性都为1当空间不足時,都将等比例缩小如果一个项目的flex布局-shrink属性为0,其他项目都为1则空间不足时,前者不缩小
 
align-self属性允许单个项目有与其他项目不一样嘚对齐方式,可覆盖align-items属性默认值为auto,表示继承父元素的align-items属性如果没有父元素,则等同于stretch

弹性布局默认不改变项目的宽度,但是它默認改变项目的高度如果项目没有显式指定高度,就将占据容器的所有高度
}

让所有弹性盒模型对象的子元素嘟有相同的长度且忽略它们内部的内容:



表格中的数字表示支持该属性的第一个浏览器的版本号。


flex布局 属性用于设置或检索弹性盒模型對象的子元素如何分配空间

注意:如果元素不是弹性盒模型对象的子元素,则 flex布局 属性不起作用

是,参见个别的属性请参阅 。


一个數字规定项目将相对于其他灵活的项目进行扩展的量。
一个数字规定项目将相对于其他灵活的项目进行收缩的量。
项目的长度合法徝:"auto"、"inherit" 或一个后跟 "%"、"px"、"em" 或任何其他长度单位的数字。
设置该属性为它的默认值即为 0 1 auto。请参阅
从父元素继承该属性。请参阅


}

我要回帖

更多关于 css sprites 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信