html中怎么理解弹性布局,深入理解弹性盒布局(fiex-box)——Web前端系列自学笔记...

弹性盒布局

弹性盒布局概述

说到响应式,就不得不提CSS3中的弹性盒布局了,它可以轻松的创建响应式网页布局,为盒状模型增加灵活性。

CSS3 弹性盒( Flexible Box 或 flexbox),是一种当页面需要适应不同的屏幕大小以及设备类型时确保元素拥有恰当的行为的布局方式。

引入弹性盒布局模型的目的是提供一种更加有效的方式来对一个容器中的子元素进行排列、对齐和分配空白空间。

eab254b9c1fd48f897cc05b4f5c99e8b.jpg

弹性盒改进了块模型,既不使用浮动,也不会在弹性盒容器与其内容之间合并外边距,是一种非常灵活的布局方法。

弹性盒布局属性

display

display用于指定弹性盒的容器,其值可以为flex;

如果为行内元素,值为inline-flex。

flex-flow

flex-flow 是属性 flex-direction 和 flex-wrap 的简写,用于排列弹性子元素。

f68470111c92492d8502587cb1b2e529.jpg

3689bb18e5a849f585436375bee10d3a.jpg

6fb6ad18a15d47758cf41d15179c92b6.jpg

justify-content

justify-content属性能够设置子元素如何在当前轴方向的排列,其取值如下表所示。(在主轴上如何对齐 )

7b58dc066bc44f8284c221139d3d2780.jpg

ae1219a8b08e4dc7beb344a4ea518299.jpg

align-items

align-items属性用于设置子元素在垂直于轴的方向上的排列,其取值如下表所示。(在交叉轴上如何对齐 )

510c32fcf56f4688b7bd1eb385d467e8.jpg

举例:

f5328114180142f79de42a6d62a1b7e4.jpg

order

order属性用于设置子元素出现的顺序。

order允许我们自定义项目的排列顺序,默认为0,属性值是数字,数值越小越靠前,有点类似我们优先队列中的优先级

举例:

658b1914494f4d3e800cebc4756d6ad6.jpg

flex

flex属性是flex-grow(扩展比率), flex-shrink(收缩比率)和flex-basis(宽度,像素值) 的缩写,能够设置子元素的伸缩性。

举例:

4909e260c11641ae995d06ce1ced590a.jpg

align-self

align-self属性能够覆盖容器中的align-items属性,用于设置单独的子元素如何沿着纵轴排列。

其取值有auto|flex-start|flex-end|center|baseline|stretch,每个值的意义与align-items属性的取值类似。

举例:

78bb734a930c4a469d6b896952f4e99f.jpg

总结

弹性容器的每一个子元素变为一个弹性子元素,弹性容器直接包含的文本变为匿名的弹性子元素。

第2单元中,多列布局中的column-*属性对弹性子元素无效。

第1单元中,float 和 clear 对弹性子元素无效。使用 float 会导致 display 属性计算为 block.。

vertical-align属性对弹性子元素的对齐无效。

弹性盒布局小案例

弹性盒属性

min-height: 200px;

display: flex;/*指定弹性盒的容器*/

/*

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

flex-wrap: nowrap|wrap|wrap-reverse;

*/

flex-flow: row;/*弹性盒子元素按横轴方向顺序排列*/

justify-content: center;/*设置弹性盒子元素向行中间位置对齐*/

align-items: flex-end;/*弹性盒子元素向垂直于轴的方向上的中间位置对齐*/

background-color: gray;

}

.A,.B,.C {

background-color: white;

border:1px solid gray;

}

.box div.A {

order: 1;/*order设置该子元素出现的顺序*/

flex-grow: 0;/*扩展比率*/

flex-shrink: 1;/*收缩比率*/

flex-basis: auto;/*宽度,像素值*/

align-self: center;/*该子元素在该行的纵轴上居中放置。*/

}

.box div.B {

order: 2;

flex: 0 1 auto;/*扩展比率0、收缩比率1和宽度居中的缩写形式*/

align-self: center;

}

.box div.C {

order: 3;

flex: 0 1 auto;

align-self: center;

}

A
B
C

实现效果图

6e6e7adcb6364342b4ee5da52f176496.jpg

使用弹性盒布局建设个人社交网站

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值