CSS-伸缩布局

主轴:默认水平方向
侧轴:默认垂直方向
这两个轴的方向都是可变的,可通过flex-direction来变更,如果将主轴变为垂直方向,那么侧轴会自动变为水平方向

哪个父盒子需要自身的内容自动伸缩排布,就设置display:flex属性:

1、父盒子里面的盒子可以通过flex属性来指定划分父盒子的份数

子盒子可以不设宽高度,那么默认占父元素的全部高度和根据分数充满父元素的宽度(如果主轴方向是水平的,也就是父元素里面的元素水平排布,那么就算给子元素添加宽度也无效,因为他会按照分数充满整个父元素)

<div class="content">
        <div class="item"></div>
        <div class="item"></div>
        <div class="item"></div>
</div>


.content {
            width: 80%;
            height: 400px;
            border: 1px red solid;
            margin: 30px auto;
            display: flex;/*将该盒子设为伸缩布局*/
}

.item {/*子盒子不设高度,那么在这里默认占父元素的全部高度*/
    background: pink;
    float: left;
}
.item:nth-child(1){         
    flex: 1;  /*占一份*/
}
.item:nth-child(2){         
    flex: 2;  /*占一份*/
}
.item:nth-child(3){         
    flex: 3;  /*占一份*/
}

如果父元素采取了百分比,那么为了防止盒子不被挤压的变形,我们可以给他们设置最大和最小宽度:min-width, max-width


image.png

默认情况下主轴是水平方向,设置主轴为垂直方向:flex-direction: column;

给父元素添加flex-direction:column后


image.png

2、上面我们在子盒子中用了flex属性设置了子盒子占据父盒子的份数,现在讲讲justify-content属性():调整主轴对齐

这个属性是给父盒子添加的,添加了这个属性就不要给子盒子添加flex属性了哦

justify-content:
取值:
flex-start:伸缩项目向一行的起始位置靠齐。
flex-end:伸缩项目向一行的结束位置靠齐。
center:伸缩项目向一行的中间位置靠齐。
space-between:伸缩项目会平均地分布在行里。第一个伸缩项目一行中的最开始位置,最后一个项目在一行中最终点位置。
space-around:伸缩项目会平均地分布在行里,两端保留一半的空间。(每个项目两侧的间隔相等。所以,项目之间的间隔比项目与边框的间隔大一倍。)


image.png
当justify-content:flex-start;
image.png
当justify-content:flex-end;
image.png
当justify-content:space-between;
image.png
当justify-content:space-around;
image.png
当justify-content:center;

image.png


3、侧轴对齐align-items:(因为当前的主轴方向是水平方向,所以现在侧轴方向是竖直方向)

这个属性是给父盒子添加的,添加了这个属性就不要给子盒子添加flex属性了哦
侧轴对齐。 align-items 属性定义项目在伸缩容器的当前行的侧轴(垂直于主轴)上的对齐方式。

align-items:
flex-start:伸缩项目在侧轴起点边的外边距紧靠住该行在侧轴起始边。(侧轴的起点对齐。)
flex-end:伸缩项目在侧轴终点边的外边距紧靠住该行在侧轴终点边。(侧轴的终点对齐。)
center:伸缩项目的外边距盒在该行的侧轴上居中放置。(侧轴的中点对齐。)
stretch:默认值,伸缩项目拉伸填充整个容器。(如果项目未设置高度,将占满整个容器的高度。)

注意:以下测试给三个子元素设置了width: 150px;height: 200px;

image.png

当align-items: flex-start;


image.png

当align-items: flex-end;


image.png

当aling-items:center时


image.png

4、align-content属性(与align-items属性很相似)

align-content属性定义了多根轴线(即多行)的对齐方式。如果项目只有一根轴线,该属性不起作用。
因为这个属性在多行情况下才生效,所以必须设置flex-wrap:wrap属性

align-content:
取值:
flex-start :各行向伸缩容器的起点位置堆叠。
flex-end :各行向伸缩容器的结束位置堆叠。
center :各行向伸缩容器的中间位置堆叠。
space-between :各行在伸缩容器中平均分布。
space-around :各行在伸缩容器中平均分布,在两边各有一半的空间。

5、flex-wrap:是否换行

默认情况下,项目都排在一条线(又称”轴线”)上。flex-wrap属性定义,如果一条轴线排不下,是否需要换行?
取值:

nowrap(默认):不换行,强制一行显示,会收缩每个项的宽度(即使给每个项指定了宽度)。
wrap:换行,第一行在上方。
wrap-reverse:换行,第一行在下方(较少使用)。

6、 order属性

order属性定义项目的排列顺序。数值越小,排列越靠前,默认为0。
比如有三个项目,想把最后一个项目放在最前面,这时候可以设置order:-1,想放在最后面可以设置order:1

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

推荐阅读更多精彩内容

  • 伸缩布局 如何使用伸缩布局?只需要给元素设置 display: flex;属性 伸缩布局分类伸缩容器: 给哪个元素...
    喝酸奶要舔盖__阅读 739评论 0 2
  • 伸缩布局(弹性布局) display:flex 给谁添加了display:flex,谁就是伸缩容器 伸缩容器中的盒...
    AuglyXu阅读 3,544评论 0 1
  • H5移动端知识点总结 阅读目录 移动开发基本知识点 calc基本用法 box-sizing的理解及使用 理解dis...
    Mx勇阅读 4,453评论 0 26
  • 移动开发基本知识点 一.使用rem作为单位 html { font-size: 100px; } @media(m...
    横冲直撞666阅读 3,460评论 0 6
  • 一、css的布局模式 css2.1中定义了四种布局模式,由一个盒与其兄弟、祖先盒的关系决定其尺寸与位置的算法。 块...
    LemonnYan阅读 1,050评论 0 1