以下文章主要探讨 HTML5 中 CSS3 提供的用来实现未来响应式弹性伸缩布局方案。

一、flex布局的语法

块级元素 :display: flex ———— 将容器盒模型作为块级弹性伸缩盒显示

行内元素 :display: inline-flex ———— 将容器盒模型作为内联级弹性伸缩盒显示

设置flex布局后,flex item的float、clear和vertical-align 属性都失效

flex布局默认为横向

二、容器属性

flex的排列属性:

元素名称 说明

flex-direction:column

设置从上往下排列

flex-direction:row

设置从左到右排列

flex-direction:row-reverse

设置从右到左排列

flex-direction:column

设置从上到下排列

flex-direction:column-reverse

设置从下到上排列

#div{display:flex;flex-direction:column
}—————— 当子级flex为1时,设置属性自动均分

flex换行属性:

没有设置子级flex为1时:flex-wrap

没有设置高度时会均分父级

元素名称 说明

flex-wrap:nowrap

默认值,都在一行或一列显示

flex-wrap:wrap

伸缩项目无法容纳时,自动换行

flex-wrap:wrap-reverse

伸缩项目无法容纳时,自动换行,方向和 wrap 相反

当  flex-wrap: nowrap  时 ———— 默认值,都在一行或一列显示:

当  flex-wrap:wrap   时  ————伸缩项目无法容纳时,自动换行 :

当  flex-wrap:wrap-reverse  时 ———— 伸缩项目无法容纳时,自动换行,方向和 wrap 相反 :

flex-flow: row wrap;   ———— 可同时设置排列方向和换行

伸缩属性:

元素名称 说明

justify-content:flex-start

伸缩项目以起始点靠齐

justify-content:flex-end

伸缩项目以结束点靠齐

justify-content:center

伸缩项目以中心点靠齐

justify-content:space-between

伸缩项目平均分布

justify-content:space-around

伸缩项目平均分布,但两端保留一半的空间

当  justify-content:flex-start  时  ————伸缩项目以起始点靠齐 :

当  justify-content:flex-end  时  ———— 伸缩项目以结束点靠齐 :

当  justify-content:center  时  ———— 伸缩项目以中心点靠齐 :

当  justify-content:space-between  时 ———— 伸缩项目平均分布 :

当  justify-content:space-around  时 ————  伸缩项目平均分布,但两端保留一半的空间 :

align-items属性:  ————  处理伸缩项目容器的额外空间

元素名称 说明

align-itmes:flex-start

伸缩项目以顶部为基准,清理下部额外空间

align-itmes:flex-end

伸缩项目以底部为基准,清理上部额外空间

align-itmes:center

伸缩项目以中部为基准,平均清理上下部额外空间

align-itmes:baseline

伸缩项目以基线为基准,清理额外的空间

align-itmes:stretch

伸缩项目填充整个容器,默认

align-content属性:   ————  定义了多根轴线对齐方式

align-content这个属性设置排列方向之后,并且设置换行,这个属性才会起作用。

会拉伸每个项目的所占空间,填充方式为每个项目的下方去增加空白,每一个项目默认从容器顶端开始排列。

元素名称 说明

align-content:flex-start

与交叉轴的起点对齐

align-content:flex-end

与交叉轴的终点对齐

align-content:center

与交叉轴的中点对齐

align-content:space-between

与交叉轴两端对齐,轴线之间的间隔平均分布

align-content:space-around

每根轴线两侧的间隔都相等,所以,轴线之间的间隔比线与边框的间隔大一倍

align-content:stretch

轴线占满整个交叉轴

当  align-content:flex-start  时  ————  与交叉轴的起点对齐 :

当  align-content:flex-end  时  ————  与交叉轴的终点对齐 :

当  align-content:center  时  ————  与交叉轴的中点对齐 :

当  align-content:space-between  时 ———— 与交叉轴两端对齐,轴线之间的间隔平均分布 :

当  align-content:space-around  时  ————  每根轴线两侧的间隔都相等,所以,轴线之间的间隔比线与边框的间隔大一倍:

当  align-content:stretch  时  ————  轴线占满整个交叉轴

三、项目属性

结构:


<body><div id="box"><div class="item">1111</div><div class="item">2222</div><div class="item">3333</div><div class="item">444</div></div>
</body>

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

例:

 <style type="text/css">* {margin: 0;padding: 0;box-sizing: border-box;}/* 定义项目的排列顺序,数值越小排列越靠前,默认为0 */#box {width: 600px;height: 300px;margin: 100px auto;background-color: plum;display: flex;}.item {width: 100px;background-color: gold;}.item:first-child {height: 20px;margin-right: 10px;order: 3;}.item:nth-child(2) {height: 30px;margin-right: 10px;}.item:nth-child(3) {height: 70px;margin-right: 10px;order: 0;}.item:last-child {height: 50px;margin-right: 10px;order: 2;}</style>

flex-grow 定义项目的放大比例,默认为0,即如果存在剩余空间,也不放大

例:

​
<style type="text/css">* {margin: 0;padding: 0;box-sizing: border-box;}#box {width: 600px;height: 300px;margin: 100px auto;background-color: plum;display: flex;}.item {background-color: gold;flex-grow: 1;/* 分配剩余平均空间 ,平均分配的含义是,去掉内容后的空间进行均分,如果本身内容多,虽然均分,但还是占比较大空间*/}.item:first-child {height: 20px;}.item:nth-child(2) {height: 30px;}.item:nth-child(3) {height: 70px;}.item:last-child {height: 50px;}
</style>​

 

flex-shrink 定义了项目的缩小比例,默认为1,即如果空间不足,该项目将缩小

例:

     <style type="text/css">* {margin: 0;padding: 0;box-sizing: border-box;}#box {width: 600px;height: 300px;margin: 100px auto;background-color: plum;display: flex;}.item {width: 200px;background-color: gold;}.item:first-child {height: 20px;flex-shrink: 0;/* 不缩放 */}.item:nth-child(2) {height: 30px;}.item:nth-child(3) {height: 70px;flex-shrink: 5;/* 严重缩放 */}.item:last-child {height: 50px;}</style>

 flex-basls 定义在分配多余空间之前,项目占据的主轴空间

例:

<style type="text/css">* {margin: 0;padding: 0;box-sizing: border-box;}/* 设置同一行内排列属性,默认值为平均分配 */#box {width: 600px;height: 300px;margin: 100px auto;background-color: plum;display: flex;}.item {height: 50px;text-align: center;border: 1px solid aqua;background-color: gold;/* 第一步:平均分配剩余空间 */flex-grow: 1;}.item:first-child {background-color: #FFFF00;/* 第二步,想占多少地方,可以设置宽度 */-width: 150px;flex-basis: 150px;-flex-basis: 40%;-flex-basis: 20rem;}.item:nth-child(2) {background-color: chocolate;/* 第三步:默认值auto */flex-basis: auto;}.item:nth-child(3) {background-color: #008000;}.item:last-child {background-color: red;}</style>

 

align-self 定义交叉轴上的对齐方式,可单独设置父级下的子级位置

例:

     <style type="text/css">*{margin: 0;padding: 0;box-sizing: border-box;}#box{width: 600px;height: 300px;margin: 100px auto;background-color: skyblue;display: flex;align-items: center;}.item{background-color: red;border: 1px solid yellow;height: 50px;line-height: 50px;text-align: center;color: #fff;flex: 1;}.item:first-child{background-color: gold;}.item:nth-child(2){background-color: chocolate;align-self: flex-start;-align-self: flex-end;-align-self: baseline;-align-self: stretch;}.item:last-child{background-color: green;align-self: flex-end;}</style>

flex 是复合属性,代表flex-grow,flex-shrink和 flex-basis的简写

Html——flex布局 弹性布局相关推荐

  1. HTML/CSS布局—Flex布局(弹性布局)

    目的:能够使用Flex布局模型灵活.快速的开发网页 Flex布局/弹性布局: 是一种浏览器提倡的布局模型 布局网页更简单.灵活 避免浮动脱标的问题 作用: 基于 Flex 精确灵活控制块级盒子的布局方 ...

  2. Flutter 布局Row(水平方向布局)、Column(垂直方向布局)、Wrap(可以自动换行的布局)、Flex(弹性布局)、Stack(叠层布局)、

    1.线性布局 Row 水平方向布局 Row({... //表示水平方向子组件的布局顺序(是从左往右还是从右往左),//默认为系统当前Locale环境的文本方向(如中文.英语都是从左往右,而阿拉伯语是从 ...

  3. flex布局(弹性布局、伸缩布局)

    flex是CSS3中的一种布局方式 主要介绍下弹性布局的常用的一些属性 当一个盒子设置为display:flex的时候,盒子会变为一个弹性盒子,盒子内部的子元素会默认沿着主轴方向排布,此时会引出主轴和 ...

  4. 自适应网页(响应式布局)+弹性布局

    1.自适应网页 1.声明viewport元标签 <meta name="viewport" content="width=device-width,initial- ...

  5. CSS display:flex(弹性布局)

    序: ​ 考虑到实际开发中,写样式的机会不多,但是不可能不写,脑子容量总是不够用,每次都查,这次自己就总结下,方便下次查找(举例以下常用六个属性,语法都是加在父元素身上的). 1.flex-direc ...

  6. flex 左右布局_web前端学习:移动端开发常用布局—前端弹性布局总结

    各位已经入坑的前端小伙伴,前面咱们已经给大家分享了移动端开发时候流式布局的应用场景及注意事项,今天再次给大家分享一个布局叫弹性布局,接下来咱们从如下几个方面,全方位的给大家介绍弹性布局的使用. 一:什 ...

  7. flex 左右布局_移动端开发常用布局:前端弹性布局总结

    各位已经入坑的前端小伙伴,前面咱们已经给大家分享了移动端开发时候流式布局的应用场景及注意事项,今天再次给大家分享一个布局叫弹性布局,接下来咱们从如下几个方面,全方位的给大家介绍弹性布局的使用. 一:什 ...

  8. HTML+CSS flex弹性布局

    flex布局原理 flex是flexible box 的缩写,意为"弹性布局",用来为盒状模型提供最大的灵活性,任何一个容器都可以指定为flex布局. 当我们为父盒子设置为flex ...

  9. Css 弹性布局(Flex)详细介绍(Flex 属性详解、场景分析)

    目录​​​​​​​ 前言 Flex 布局是什么? Flex 简介 Flex 容器属性 Flex 基本使用 场景一 flex-direction 场景二 justify-content align-it ...

最新文章

  1. MariaDB/MySQL备份和恢复(三):xtrabackup用法和原理详述
  2. javascript中Math.random()产生随机数总结
  3. 百度竞价排名点击软件_网络营销百问百答之60,百度竞价排名出价是出价高好还是低好...
  4. 2020年财富金字塔出炉,你距离高净值还有多远?
  5. Oracle中Decode()函数使用技巧
  6. JasperReport:声明周期
  7. catboost进行分类并开启GPU模式
  8. 今日头条Web HTTP请求的白名单
  9. java之方法的重写
  10. 基于python的HOG+SVM目标检测算法实现
  11. PyTorch系列 | 快速入门迁移学习
  12. 计算机网络上机指导,计算机网络上机指导书.pdf
  13. 【HTML+CSS】静态网页设计期末大作业——我的家乡无锡印象
  14. 如何在计算机安装WPS,windowsxp系统电脑怎样安装wps插件
  15. 单片机开发之嵌入式基础
  16. Mac 配置maven
  17. JAVA打印十年母亲节,母亲节 一封推迟了十年的信
  18. Unity 灯光系统(一)
  19. 程序员如何管理自己的代码
  20. 圆周率用计算机能算出来不,圆周率到底能不能算尽?人类拿超级计算机算了,结果不敢相信!...

热门文章

  1. 几种开源java绘图组件介绍
  2. matlab闰年,基于MATLAB的万年历计算
  3. JAVA:最基础部分的学习笔记
  4. 阿里业务平台技术质量部——测试开发面试
  5. windows中使用Findwindow函数与FindWindowEx函数来实现自动控制、触发第三方软件事件的方法...
  6. 十二个“一”的转换视角解读
  7. 大型企业财务从“价值反映和守护”走向“价值发掘和创造”
  8. 【CV】第 9 章:图像分割
  9. 【内存】内存检测工具sanitizer[内存泄漏、内存越界] VS valgrind
  10. 【正则】正则表达式替换整行