flex弹性布局教程-09-容器属性flex-flow
本节目标
- 掌握flex-flow的使用,flex-flow是flex-direction和flex-wrap的合集。
- 掌握上左右下的布局编写技巧。
内容摘要
本篇介绍了容器属性 flex-flow,是flex-direction和flex-wrap的合集,前面有讲解过相关属性了。这边就来做个应用。
阅读时间大约10~15分钟。
flex-flow基础
flex-flow属性flex-flow是flex-direction和flex-wrap的合集。语法格式如下:
.container {flex-flow: flex-direction flex-wrap;
}
其中:
默认值为:row nowrap,意思就是主轴方向水平向右,不换行。
这边两个属性前面两章都讲解过了,就不再赘述。下面来个实务中常用的例子。
flex-flow应用
实例1,实现如下上左右下布局,要求屏幕宽度变化时能够自动适应:
我们可以看出这个是一个移动端的页面,如果按照之前使用 div+css,样式使用float的方式来做,左边和右边要固定尺寸,要自适应就没有办法了。
这边我们用 flex 来试试,非常简单,总共步骤分为7步,4~6步是flex相关的设置。
1)写出html代码:
<div class="container"><div class="header">头部</div><div class="left">左边</div><div class="right">右边</div><div class="footer">尾部</div>
</div>
html代码很简单,就是一个container容器,包含4个div。现在页面显示就是这样4个div:
2)设置 * 的 margin 和 padding 为0:
* {margin: 0;padding: 0;
}
这个是为了移除所有元素的默认边距和内边距,方便精确计算和设置。
3)设置 div 的背景色:
.header,
.left,
.right,
.footer {background-color: lightblue;
}
运行效果如下:
上面铺垫了一些步骤,下面就是 flex 布局的关键步骤了。
4)设置容器为 flex 弹性布局,根据页面布局大小来看header和footer宽度为100%:
.container {display: flex;
}.header,
.footer {flex-basis: 100%;
}
运行效果如下:
但是这样并没有效果,我们知道如果项目总宽度超过容器,那么项目会自己压缩,如果能自己换行就好了。
5)设置容器内项目自动换行:
.container {display: flex;/* 设置容器内项目自动换行 */flex-flow: wrap;
}
可以直接用 flex-wrap,用flex-flow也是可以的。
运行效果:
按照预想的显示,下面再对left和right处理一下即可。
6)设置left和right的宽度,这边用flex-grow来占用剩余空间。
.left {flex-grow: 1;
}
.right {flex-grow: 3;
}
运行效果:
至此 flex 布局的关键代码就完了。后面我们再设置一下项目的高度和间距就好了。
7)设置项目的高度和间距:
.header,
.footer {height: 6.25rem;
}.header {margin-bottom: 0.625rem;
}.left {height: 18.75rem;
}.right {height: 18.75rem;margin-left: 0.625rem;
}.footer {margin-top: 0.625rem;
}
运行效果:
最后来一个完整代码,flex相关的代码都加了标注:
<!DOCTYPE html>
<html><head><meta name="viewport"content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" /><meta charset="utf-8"><title>上左右下弹性布局</title></head><body><style type="text/css">* {margin: 0;padding: 0;}.header,.left,.right,.footer {background-color: lightblue;}.container {/* 设置容器为flex布局 */display: flex;/* 设置容器内项目自动换行 */flex-flow: wrap;}.header,.footer {/* 设置header和footer宽为100% */flex-basis: 100%;height: 6.25rem;}.header {margin-bottom: 0.625rem;}.left {/* 设置left的放大系数 */flex-grow: 1;height: 18.75rem;}.right {/* 设置right的放大系数 */flex-grow: 3;height: 18.75rem;margin-left: 0.625rem;}.footer {margin-top: 0.625rem;}</style><div class="container"><div class="header">头部</div><div class="left">左边</div><div class="right">右边</div><div class="footer">尾部</div></div></body>
</html>
本节总结
- flex-flow是flex-direction和flex-wrap的合集。
- 通过 宽度 和 换行属性的结合可以巧妙的实现不同的布局。
flex弹性布局教程-09-容器属性flex-flow相关推荐
- flex弹性布局教程-10容器属性justify-content
本节目标 掌握justify-content的基础使用. 掌握项目多列排列使用justify-content对齐的技巧. 内容摘要 本篇介绍了容器属性justify-content,用来设置项目在主轴 ...
- flex弹性布局教程-07容器属性flex-direction
本节目标 掌握flex-direction的使用. 了解主轴变化的概念. 内容摘要 本篇讲解了容器属性 flex-direction,用来设置主轴的方向. 阅读时间大约10~15分钟. flex容器属 ...
- flex弹性布局教程-12容器属性align-content
本节目标 掌握align-content的基础使用. 掌握align-content和justify-content的区别. 掌握align-content和align-items的区别. 内容摘要 ...
- flex弹性布局教程-04项目属性flex-grow
本节目标 掌握flex-grow的使用. 掌握flex-grow放大的计算公式(难点). 掌握编写导航条的技巧. 内容摘要 本篇介绍了项目属性 flex-grow,用于定义项目的扩大系数,用于分配容器 ...
- flex弹性布局教程-03-项目属性flex-basis
本节目标 掌握 flex-basis 的用法. 了解 flex-basis 和 width 的不同. 阅读时间大约5分钟. 内容摘要 本篇介绍了 flex 项目属性的第一个 flex-basis ,用 ...
- Flex 弹性布局教程以及对主轴 交叉轴的理解 :语法篇
弹性布局的主轴交叉轴的理解 容器默认存在两根轴:水平的主轴(main axis)和垂直的交叉轴(cross axis).主轴的开始位置(与边框的交叉点)叫做main start,结束位置叫做main ...
- CSS中使用flex弹性布局实现上下左右垂直居中排列并设置子元素之间的间距
场景 Flex是Flexible Box的缩写,意为"弹性布局". 怎样使用弹性布局实现页面上下两个元素上下左右垂直居中排列. 实现如下类似布局 最外层是是一个div,div里面是 ...
- 页面布局 - flex弹性布局
flex弹性布局 html: <!DOCTYPE html> <html><head><meta charset="utf-8" /> ...
- 移动web现状、viewport视口、二倍图、移动web开发主流方案、布局技术选型(流式布局、flex弹性布局、less+rem+媒体查询布局、混合布局、媒体查询、bootstrap)
移动端web现状: 移动端常见浏览器:UC浏览器,QQ浏览器,Opera浏览器,百度手机浏览器,360安全浏览器,谷歌浏览器,搜狗手机浏览器,猎豹浏览器及杂牌浏览器.移动端常见的浏览器都是基于webk ...
最新文章
- windows2008域下exchange2007sp1部署系列一
- Angularjs中文教程
- Microsoft.Net框架程序设计学习笔记(11):类型构造器
- zendStudio|Eclipse 相关收藏
- javascript span ie 与FF
- C++ COM编程之QueryInterface函数(二)
- 「直播回顾」Mars:加速数据科学的新方式
- modelsim与quartus仿真的区别
- 虚拟光驱安装WIN7(client mac addr: no DHCP问题)
- 定积分求导例题_高中数学导数简单题——定积分、导数、导数的几何意义等解题方法...
- 传教士与野人渡河问题(使用C++解决)
- 计算机全选的键盘,全选快捷键是什么,教您电脑全选快捷键是什么
- U8二开之界面增加按钮处理事件
- 全球与中国网络连接视频门铃对讲机设备市场深度研究分析报告
- 写运维实习生第五周实习周报,包括心得体会和下周计划,多于300字
- check the manual that corresponds to your MySQL server version for the right
- Harmonious Graph (并查集 —父亲为最大值)
- 汽车CAN通信基础知识-Java之Socket通信实战
- 超好看的二次元透明网站登录页模板
- 数字VR虚拟博物馆的功能介绍