flex 布局

flex只是css3的一个属性 ,flex又称‘弹性布局’,它使得盒子的子元素可以自动排列

{
 display:flex;
}

经典的flex模型图:

响应式布局之——flex

说明:

  • 主轴不一定是横向的,它和侧轴垂直,由 flex-direction 属性决定
  • flex item 不指定高度时,等于父元素的高度(换行则比例平分)

flex-container 相关属性


display:flex / inline-flex 都是flex布局, inline类似 inline-block ,盒子被加入了inline模型特性

1. flex-direction

flex-direction 决定了主轴和主轴方向,子元素顺着主轴的方向依次排列

  • row 默认值,主轴水平向右(元素水平向右排列)
  • column 主轴垂直向下(元素垂直向下排列)
  • row-reverse 水平反向(向左)
  • column-reverse 垂直反向(向上)

注:主要是row和column

示例:

响应式布局之——flex

2. justify-content

所有子元素沿主轴的排列方式(单行多行都可)

  • flex-start 默认值
  • center
  • flex-end
  • space-between
  • space-around

示例:

响应式布局之——flex

3. align-content

侧轴有长度时,所有子元素沿侧轴的排列方式,只适用于多行的情况(wrap)

  • strech 默认值,不排列,高度比例平分父元素
  • flex-start
  • center
  • flex-end
  • space-between 两端对齐,第一行放起点,最后一行放终点,其他行保持间距相等
  • space-around 元素被空间环绕,所有行的间距都相等,起点和终点的距离元素间距是行间距的一半

示例:

响应式布局之——flex

4. align-items

侧轴有长度时,每个子元素沿侧轴的排列方式

  • strech 默认值,不排列,高度自适应父元素
  • flex-start 子元素沿侧轴起始点排列
  • center 中心点
  • flex-end 终点
  • baseline 根据第一个子元素的基线(content) 排列

示例:

响应式布局之——flex

5. flex-wrap

此属性指定子元素是否换行

  • nowrap 默认,不换行,如果子元素总长度大于父元素则等比压缩
  • wrap 换行,排不下的元素换行沿侧轴排列 ,如果高度不够则会超出
  • wrap-reverse 侧轴反向

注:侧轴其他操作,优先执行wrap

6. flex-flow

flex-flow:'direction' 'wrap' 是 flex-direction 和 flex-wrap 的组合,方便简写,类似 background

flex-item 相关属性


1. order

order:num 用来指定子元素的顺序,默认0,值大的排在后面,也可以是负数

2. flex-grow

flex-grow:num 用来指定扩展分配比例,所有子元素长度小于父元素长度时,添加此属性的子元素,会按比例来分配剩余的宽度

3. flex-shrink

flex-shrink:num 在未指定wrap时,用来指定压缩比例(减去 压缩的总长度百分比),默认1

4. flex-basis

flex-basis:px 类似grow,分配剩余长度(像素),总和大于剩余宽度时,按比例分配

5. align-self

align-self:xx 指定元素自身的排列方式,优先级高于 align-items,值类似

应用


一个盒子多个子元素,最后一个子元素高度自适应

关键:flex-grow:1 分配剩余高度 | flex-shrink:0空间不够时不压缩

最后一个子元素如果高度没被其孩子撑高,直接flex-grow: 1即可。
如果撑的比剩余高度还要高,那么其余的子元素高度会按比例缩小(默认值造成),此时需要修改为flex-shrink:0

例子: https://jsfiddle.net/779102260/6tgym82e/

单个子元素靠右

方法1:

flex: 1; // 简写
text-align: right;

方法2:

margin-left: auto;

居中

元素居中使用flex十分简单

  • 水平居中:justify-content: center;
  • 垂直居中:align-items: center;
image.png

上中下布局

上下固定高度,中间自适应高度

image.png
body{
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    height: 100vh;
}
#header{
    background: #ccc;
    height: 100px;
}
#main{
    background: #ddd;
    flex-grow: 1; /*剩余的高度分配给main*/
}
#footer{
    background: #bbb;
    height: 60px;
}

左侧固定右侧自适应

image.png
body{
    padding: 0;
    margin: 0;
    display: flex;
    height: 100vh;
}
#left{
    background: #ccc;
    width: 200px;
}
#right{
    background: #ddd;
    flex-grow: 1;
}


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

推荐阅读更多精彩内容