关于flex弹性盒子的整理

伸缩盒子模型控制的是父子关系

父元素:伸缩容器
子元素:伸缩项目
主轴:start-end
交叉轴(侧轴)

开启弹性盒子,必须在父元素中设置开启弹性布局

display: flex;

稍微低一点的版本需要加上前缀

display: -webkit-flex;

1、当不设置宽度的时候,内容撑开宽度
2、项目沿着主轴一次排列
3、高度默认撑满整个容器

1、当项目的宽度相加没有超过父级的宽度,那么项目不进行压缩
2、当项目的宽度现价超出父级的宽度,项目进行压缩,并且填满父级容器


一、flex容器 主轴方向flex-direction:

row/*row默认值:由左向右*/
row-reverse/*row-reverse:由右向左*/
column:主轴与侧轴发生对调/*colume:主轴由上向下*/
column-reverse/*column-reverse:主轴由下向上*/

flex容器 主轴方向布局方向老版本

-webkit-box-orient: horizontal;
-webkit-box-orient: vertical;
-webkit-box-direction: reverse;
-webkit-box-direction: normal;

老版本如果要实现反向和反方向需要书写两个属性


二、富余空间管理(主轴)

justify-content:   
    flex-start  /*默认 在主轴开始位置 一次排列*/   
    flex-end   /*右对齐到主轴结束位置(不是反转)*/  
    center   /*项目在主轴内居中*/   
    space-around:/*富裕空间包含项目*/   
    space-between:/*伸缩项目包含富裕空间*/

富余空间管理(主轴)老版本

-webkit-box-pack: start; --- 默认值:富裕空间在右边
-webkit-box-pack:end; --- 富裕空间在左边
-webkit-box-pack:center; --- 富裕空间包含伸缩项目的整体,使伸缩项目整体在中


三、富余空间管理(侧轴)

align-items:
    flex-start/*侧轴上对齐*/
    flex-end/*侧轴下对齐*/
    baseline/*基线对齐*/
    center/*侧轴居中*/
    stretch/*默认撑满侧轴*/

富余空间管理(侧轴)老版本

-webkit-box-align:
    start
    end
    center


四、弹性空间

flex-grow:1:
将富裕空间分配到项目上

-webkit-box-flex: 1;


例子:
.outer div:nth-child(1){
    width: 20%;
    /*justify-content: 只是控制富裕空间怎么排列,但是并没有把富裕空间分配给项目使用;*/
    
    /*将富裕空间分配给这个项目*/
    flex-grow: 1;
    background-color: #4c71ff;
}
.outer div:nth-child(2){
    width: 30%;
    flex-grow: 2;
    line-height: 100px;
    background-color: #ce89ff;
}

五、新版本特有

/*项目超出父级宽度换行*/
    flex-wrap: wrap;

    /*超出父级的宽度就压缩,不换行*/
    /*flex-wrap: nowrap;*/

    /*超出父级的宽度 换行并改变侧轴的start和end的的位置*/
    /*flex-wrap: wrap-reverse;*/

六、控制整体侧轴的富裕空间

 /*开启弹性盒子*/
display: flex;

/*项目超出父级宽度换行*/
flex-wrap: wrap;

/*侧轴居中,只在当前项目所在的行居中*/
align-items: center;

/*控制项目整体打包在侧轴的排列*/
/*align-content: flex-start;*/
/*align-content: flex-end;*/
align-content: center;

/*冲突:
    在项目换行后,侧轴的排列优先用align-content
    在项目没有换行时,侧轴的排列优先用align-items*/

/*在主轴居中*/
justify-content: center;

七、flex-flow:;

flex-flow: wrap column; //换行、方向的合写样式

八、项目的排列顺序(flex项目)

order: 1;
order排序,把排序元素先单独拿出来,让剩余元素先正常排列,排完之后,order元素在其后边再进行顺序排列
order是沿着主轴方向进行排序的

九、项目自身侧轴的富裕空间(flex项目)

元素自身侧轴控制.png
每一个项目控制自身的侧轴
    align-self: flex-start;
    align-self: flex-end;
    align-self: center;
    
案例:三个元素各自占一列


<style>
        .outer{
            width: 1000px;
            height: 300px;
            margin: 0 auto;
            border:1px solid #000;
            /*开启弹性盒子*/
            display: flex;
        }
        .outer div:nth-child(1){
            width: 50%;
            background-color: #4c71ff;
            align-self: flex-start;
        }
        .outer div:nth-child(2){
            width: 30%;
            background-color: #ce89ff;
            align-self: center;
        }
        .outer div:nth-child(3){
            width: 60%;
            background-color: #ffaf8a;
            align-self: flex-end;
        }
    </style>
</head>
<body>
<div class="outer">
    <div>11</div>
    <div>22</div>
    <div>33</div>
</div>
</body>

十、收缩率(flex项目)

当伸缩项目设置宽度,比容器宽度还要大时,元素并没有发生溢出的情况,那此时就出现一个东西叫 收缩因子(收缩率)
flex-shrink:拉伸因子 0 ---不拉伸
flex-shrink:收缩因子 默认值:1 --- 收缩

十一、子元素的基准值

flex-basis:0

十二、等分布局,在父级开启了display:flex; 子元素设置flex:1;

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