flex布局

Flexible Box Layout:

  弹性赫模型布局:提供一种更加高效的方式来对 容器中的条目进行布局、对齐和分配空间


二、盒模型的概念

1、容器:采用flex 布局的元素都称为容器 Flex Container

2、项目:容器内的所有子元素自动成为容器成员,称为项目  Flex Item

3、两根轴:

      3-1main axis(主轴):

              容器中水平的称为主轴

              main start主轴的开始位置

              main end主轴的结束位置

      3-2、cross axis(交叉轴):

              容器中垂直的称为交叉轴。

              cross start交叉轴的开始位置。

              cross end交叉轴的结束位置。

4、项目默认按照主轴排列:

     4-1:main size单个项目占据的主轴空间

     4-2cross size单个项目占据的交叉轴空间


三、使用

1、任何容器都可以指定为flex布局:

       1-1:.box { display: flex; }

       1-2:flex布局之后,子元素成为内联块元素

       1-3:注意:display: -webkit-flex;

2、行内元素也可以使用flex布局:.box section { display: inline-flex; }

3、注意设置后,float /clear / vertical-align将失效

四、容器的样式

/*给容器标签设置flex属性,则该容器中项目的布局就会按照flex的方式布局*/

/*如果父标签成了flex的容器,则子标签会有内联块样式的相关属性;且子标签所设置的float\clear\vertical-align属性会失效*/

1、   flex-direction:决定主轴的方向(项目的排列方向)

         /*通过修改主轴的方向,进而修改项目的布局顺序*/

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

         1-1值:    row(默认值)   主轴为水平方向(左到右)

                          row-recerse      主轴为水平方向(右到左)

                          column          主轴为垂直方向(上到下)

                         column-reverse        主轴为垂直方向(下到上)


2、 flex-wrap:默认情况下,项目都排在一条线(轴线),如果一条轴线排不下,flex-wrap决定该如何换行。

指定项目是否换行  flex-wrap: nowrap | wrap| wrap-reverse

       1-1值:   no-wrap(默认)不换行

                      wrap   换行,第一行在上方

                       wrap-reverse  换行,第一行在下方


3、 flex-flow: flex-flow属性是flex-direction属 性和flex-wrap的简写形式

        默认值如 flex-flow:wrap row


4、 justify-content:决定项目在主轴上的对齐方式(以下属性默认从左向右为例)

        justify-content: flex-start | flex-end | center |space-between | space-around;         

      1-1值:   flex-start:研左侧对齐

                      flex-end:沿右侧对齐

                      center:沿中间对齐

                      space-around:均匀分布(项目两侧留白相等)

                      space-between:项目靠两侧对齐


5、align-items:决定项目沿交叉的对齐方式(以默认从上到下为例)。

           align-items:flex-start | center | flex-end | stretch | baseline

        5-1值:  flex-start:沿上方对齐

                     center:沿中间对齐

                     flex-end:沿下方对齐

                     baseline:沿文字基线对齐

                    stretch:默认值 填满整个交叉轴,将占满整个容器的高度


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

       align-content: flex-start | flex-end | center | space-between | space-around | stretch:默认值

        6-1值:flex-start:沿交叉轴起点对齐

                     flex-end:沿交叉轴结束点对齐

                     center:沿交叉轴中点对齐

                     space-between:沿交叉轴两侧对齐

                     space-around:沿交叉轴

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


align-items和align-content的异同

相同点:都是设置项目在交叉轴方向上的对齐方式

不同点:

在只有单根轴线(项目不换行)时,使用align-items设置对齐方式

在有多跟轴线(项目换行)时,使用align-content把多跟交叉轴合并为一根,每一行上的项目都参照同一根交叉轴进行对齐。

如果在多跟轴线情况下使用align-items来设置交叉轴方向上的对齐方式,每一行的项目会参照自己这一行上的交叉轴进行对齐(效果:行与行之间有空隙)


、项目的属

1、 flex-grow:[number] 定义项目的放大比例

      number: 数值 默认为0 不放大,值越大,放大比率越大

      默认为0,即如果存在剩余空间,也不放大

       如果所有的flex-grow属性都为1,则他们将等分剩余空间如果一个项目的flex-grow属性为            2,其它项目都为1,则前者占据的剩余空间将⽐其它项多一倍


2、flex-shrink:[number]  定义了项目的缩小比例

       number: 数值 默认1 自动缩小,值越大,缩小比率越大

       默认为1即如果空间不足,该项目将缩小

       如果所有的项目flex-shrink属性都为1,当空间不足时,都将等比例缩小。如果一个项目的          flexshrink属性为0,则其它项目都为1,则空间不足时,前者不缩小。

        负值对该属性无效


3、flex-basis:定义了在分配多余空间之前,项目占据的主轴空间

                flex-basis: auto | pixel | 百分比

              默认值为auto,即项目的本来大小

                auto : 使用项目本身大小

                pixel : 使用指定的像素值

                percent : 使用指定的百分比

                                 100% 当wrap 时,项目会占容器的整个宽度

                                当nowrap 时, 项目会占容器主轴剩余的宽度(无他放大无效)


4、flex flex: flex-grow  | flex-shrink | flex-basis

       如:flex:1 1 100%


5、align-self:属性允许单个项目有与其它项目不一样的对齐方式,可覆盖align-items属性

      flex-start | center | flex-end | stretch | baseline 决定项目自身的对齐方式(相对于交叉轴)

      默认值auto表示继承父元素的align-items属性,如果没有父元素,则等同于stretch

     该属性有6个值,除了auto,其它都与align-items属性完全一致


6、 order定义项目的排列顺序 数值越小,排列越靠前 默认为0

         order: [number] 决定项目的顺序


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,053评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,527评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,779评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,685评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,699评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,609评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,989评论 3 396
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,654评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,890评论 1 298
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,634评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,716评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,394评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,976评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,950评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,191评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,849评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,458评论 2 342

推荐阅读更多精彩内容

  • 网页布局(layout)是CSS的一个重点应用。 一、Flex布局是什么? Flex是Flexible Box的缩...
    抱着熊喵啃什么阅读 632评论 0 4
  • 网页布局(layout)是CSS的一个重点应用。 布局的传统解决方案,基于盒状模型,依赖display属性 +po...
    老夫的天阅读 683评论 2 6
  • 转自--阮一峰, 此人写的很详细, 收藏了一下, 非常感谢 网页布局(layout)是CSS的一个重点应用。 布局...
    春雨霏霏_____阅读 652评论 0 0
  • 一、Flex布局是什么? Flex是Flexible Box的缩写,意为”弹性布局”,用来为盒状模型提供最大的灵活...
    穿越人海遇见你阅读 4,752评论 0 3
  • 写在前面 之前一直对于布局有一种迷茫,不知道该如何学习,以及学习到什么程度,在论坛上进行了提问,老师给我做了解答。...
    KoalaT阅读 295评论 0 2