小程序入门到精通(三):学小程序必备技术基础-flex布局
学小程序我们需要有点html、css、js基础,而flex布局是我们小程序常用的css布局,学习小程序之前,我们需要了解一些css方面的布局知识-Flex布局,Flex 布局将成为未来布局的首选方案
1. flex 布局是什么
Flex 是 Flexible Box 的缩写,意为"弹性布局",用来为盒状模型提供最大的灵活性。
2. flex布局体验
2.1 传统布局与flex布局
传统布局
- 兼容性好
- 布局繁琐
- 局限性,不能再移动端很好的布局
flex布局
- 操作方便,布局极为简单,移动端应用很广泛
- pc端浏览器支持情况较差
- ie11或者更低版本,不支持或仅部分支持
2.2 初体验
html结构:
<div class="container"><span>1</span><span>2</span><span>3</span>
</div>
.container{display: flex;height: 300px;width: 80%;background-color: red;justify-content: space-around;}.container span{background-color: blue;/* width: 150px; */height: 100px;margin-right: 10px;flex: 1;}
效果如下图:
3. flex布局原理
3.1 布局原理
flex是flexible box 的缩写,意为“弹性布局”,用来为盒状模型提供更大的灵活性,任何一个容器都可以指定为flex布局。
- 当我们为父盒子设为flex布局以后,子元素的float、clear和vertical-align属性将失效。
- flex布局可以简称: 伸缩布局=弹性不见=伸缩盒布局=弹性盒布局=flex布局
采用flex布局的元素,称为flex容器(flex container),简称“容器”。它的所有子元素自动成为容器成员,称为flex项目(flex item),简称“项目”。
拿上面的例子来说明:
- 体验中div就是flex父容器。
- 体验中span就是子容器flex项目
- 子容器可以横向排列也可以纵向排列
[
flex布局原理: 通过给父盒子添加flex属性,来控制子盒子的位置和排列方式
4. flex布局父项常见的属性
#### 4.1 常见的父项属性
父元素设置的常见6个属性:
- flex-direction: 设置主轴的方向
- justify-content: 设置主轴上的子元素排列方式
- flex-wrap: 设置子元素是否换行
- align-content: 设置侧轴上的子元素的排列方式(多行)
- aling-items: 设置侧轴上的子元素排列方式(单行)
- flex-flow:复合属性,相当于同时设置了flex-direction和flex-wrap
4.2 flex-direction设置主轴的方向
- 主轴与侧轴
在flex布局中,是分为主轴和侧轴两个方向,同样的说法:行和列、x轴和y轴
- 默认的主轴方向就是x轴方向,水平方向
- 默认的侧轴方向就是y轴方向,水平向下
- 属性值
flex-direction属性决定主轴的方向(即项目的排列方向)
注意: 主轴和侧轴是会变化的,就看flex-direction设置谁为主轴,剩下的就是侧轴,而我们的子元素是跟着主轴来排列的。
利用上面的html结构,我们重新写样式效果
.container{/* 给父元素添加flex 属性 */display: flex;height: 300px;width: 80%;background-color: red;/*默认的主轴是x轴,子元素跟着主轴从左到右排列*//*flex-direction: row;*//*我们可以把我们的主轴设置为与轴,那么x轴就成为了侧轴,子元素沿着主轴的方向从上到下排列*/flex-direction: column;}.container span{background-color: blue;width: 150px; height: 100px;margin-right: 10px;}
4.3 justify-content 设置主轴上的子元素排列方式
justify-content属性定义了项目在主轴上的对齐方式
注意:使用这个属性之前一定要确定好主轴是哪个
下面用案例说明:
html结构
<div class="container"><span>1</span><span>2</span><span>3</span><span>4</span></div>
css样式效果:
.container{/* 给父元素添加flex 属性 */display: flex;height: 300px;width: 800px;background-color: red;/*默认的主轴是x*/flex-direction: row;/* justify-content是设置主轴上子元素的排列方式 *//*让元素居中对齐*//* justify-content:center; *//*平均分配剩余空间*//* justify-content: space-around; *//*先贴两边,再分配剩余空间*/justify-content: space-between;}.container span{background-color: blue;width: 150px;height: 100px;/* margin-right: 10px; */}
当cssy轴变为主轴的时候:
.container{/* 给父元素添加flex 属性 */display: flex;height: 800px;width: 800px;background-color: red;/*默认的主轴是x*/flex-direction: column;/* justify-content是设置主轴上子元素的排列方式 *//*让元素居中对齐*//* justify-content:center; *//*平均分配剩余空间*//* justify-content: space-around; *//*先贴两边,再分配剩余空间*/justify-content: space-between;}.container span{background-color: blue;width: 150px;height: 100px;/* margin-right: 10px; */}
4.4 flex-wrap 设置子元素是否换行
默认情况下,项目都排在一条线上,flex-wrap属性定义,flex布局中默认是不换行的。如果装不下,会缩小子元素宽度,放到父元素里面。
4.5 align-items 设置侧轴上你的子元素排列方式(单行)
该属性是控制子项在侧轴(默认是y轴)上的排列方式,在子项为单项的时候使用
侧轴居中代码:
.container{/* 给父元素添加flex 属性 */display: flex;height: 300px;width: 800px;background-color: red;/*默认的主轴是x*/justify-content: center;/*侧轴居中*/align-items: center;}.container span{background-color: blue;width: 150px;height: 100px;margin: 10px;}
显示效果如下图:
4.6 align-content 设置侧轴上的子元素的排列方式(多行)
设置子项在侧轴上的排列方式并且只能用于子项出现换行的情况(多行),在单行下是没有效果的
多行居中效果
代码如下:
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>flex</title>
<style>
.container{/* 给父元素添加flex 属性 */display: flex;height: 300px;width: 800px;background-color: red;/*默认的主轴是x*/justify-content: center;flex-wrap: wrap;/*因为有了换行*/align-content: space-around;}.container span{background-color: blue;width: 150px;height: 100px;margin: 10px;}
</style>
</head><body><div class="container"><span>1</span><span>2</span><span>3</span><span>4</span><span>5</span><span>6</span></div>
</body>
</html>
效果如下:
align-content和align-items区别:
- align-items适用于单行情况下,只有上对齐、下对齐、居中和拉伸
- align-content适用于多行的情况下(单行情况下无效),可以设置上对齐、配剩余空间等属性值。
- 总结就是单行找align-items多行找align-content
4.7 flex-flow
flex-flow属性是flex-direction和flex-wrap属性的复合属性
flex-flow: row wrap;
5. flex布局子项常见属性
- flex子项占份数
- align-self控制子项自己在侧轴的排列方式
- order属性定义子项的排列顺序(前后顺序)
5.1 flex 属性
flex属性定义子项目分配剩余空间,用flex来表示占了多少份数
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>flex</title>
<style>
.container{/* 给父元素添加flex 属性 */display: flex;height: 150px;width: 60%;background-color: red;margin: 0 auto;}.container div:nth-child(1) {width: 100px;height: 150px;background-color: pink;}.container div:nth-child(2) {flex:1;height: 150px;background-color: green;}.container div:nth-child(3) {width: 100px;height: 150px;background-color: blue;}
</style>
</head><body><section class="container"><div>1</div><div>2</div><div>3</div></section>
</body>
</html>
效果如下图:
5.2 align-self 控制子项自己在侧轴上的排列方式
align-self属性允许单个项目有与其他项目不一样的对齐方式,可覆盖align-items属性。默认值为auto,表示继承父元素的align-items属性,如果没有父元素,则等同于stretch.
5.3 order属性定义项目的排列顺序
数值越小,排列越靠前,默认为0,
注意: 和z-index不一样。
总结
今天只要分享了关于移动端布局用到的flex布局,主要是各属性的用法,如果想了解更多。请扫描二维码,关注公众号:
小程序入门到精通(三):学小程序必备技术基础-flex布局相关推荐
- 【微信小程序入门到精通】— 微信小程序开发工具的安装
目录 前言 一.注册小程序账号 二.安装开发环境 2.1 微信小程序开发工具介绍 2.1 安装微信开发者工具 总结 前言 微信小程序在我们日常使用中已经占据很大一部分了,此专栏是专门为了微信小程序学习 ...
- 【微信小程序入门到精通】— 微信小程序实现多页面切换(tabBar)
目录 前言 一.tabBar 介绍 二.实操(创建 tabBar ) 2.1 基本配置 2.2 详细配置 总结 前言 对于目前形式,微信小程序是一个热门,那么我们该如何去学习并且掌握之后去做实际项目呢 ...
- 小程序入门到精通:微信小程序介绍及开发准备工作(一)
1. 什么是小程序? 微信小程序(wei xin xiao cheng xu),简称小程序,英文名Mini Program,是一种不需要下载安装即可使用的应用 ( 张小龙对其的定义是无需安装,用完即走 ...
- Kali Linux 从入门到精通(三)-入侵系统定制
Kali Linux 从入门到精通(三)-入侵系统定制 定制 网络配置 临时IP地址 dhclient eth0 ifconfig eth0 192.168.11/24 route add defau ...
- C4D致富经典入门到精通(三)
C4D样条曲线创建 C4D基础界面的介绍与常用快捷键: C4D致富经典入门到精通(一) C4D父子关系的理解与创建参数几何体与可编辑对象: C4D致富经典入门到精通(二) C4D样条曲线创建 : ...
- 【微信小程序入门到精通】—小程序实战构建售货平台首页
目录 前言 一.步骤阐述 二.新建项目并梳理结构 三.配置导航栏 四.tabBar 实现 五.轮播图实现 总结 前言 对于目前形式,微信小程序是一个热门,那么我们该如何去学习并且掌握之后去做实际项目呢 ...
- 小程序入门到精通一篇就够了!
一.小程序介绍 1.1.小程序是什么 官方文档:微信开放文档 微信小程序,简称小程序,英文名 MiniProgram ,是一种不需要下载安装即可使用的应用,它实现了应用 " 触手可及 &qu ...
- 【微信小程序入门到精通】— window 导航栏配置
目录 前言 一.全局配置的常用配置项 二 .window 导航栏 2.1 navigationBarTitleText 配置项 2.2 下拉刷新的配置 总结 前言 对于目前形式,微信小程序是一个热门, ...
- 微信小程序入门的笔记(微信小程序的开发工具已经安装好了)
小程序项目的基本构成 1.pages 是用来存放所有小程序的页面 2.utils 用来存发工具性质的模块(例如:格式化时间的自定义模块) 3.app.js 小程序项目的入口文件 4.app.json ...
最新文章
- tomcat修改默认web目录
- Linux命令集合(更新中。。。)
- 计算机视觉与深度学习 | 基于MATLAB 使用CNN拟合一个回归模型来预测手写数字的旋转角度(卷积神经网络)
- HttpURLConnection与 HttpClient 区别/性能测试对比
- Revit二次开发之“为Ribbon设置快捷键”
- 顺序表的动态存储细节
- Linux之POSTFIX邮件服务
- C#创建一个文本文件简单代码
- Vitamio 3.0 新手教程
- vsCode PlatformIO + jlink + GD32VF103
- 前端实现在线预览pdf、word、xls、ppt等文件
- HMC5883L校准
- 计算机添加启动程序,电脑如何设置开机启动项
- 设置Hi提醒实现机器人盯盘|自动监测股票价格达到条件推送消息通知
- 带托管代码的infopath2007表单创建, 发布,应用(MOSS开发)
- windows 启动修复总结
- 高职单招面试自我介绍稿子计算机专业,单招面试自我介绍稿子范文
- HDU 胜利大逃亡(BFS)
- Android快递轨迹查询 “KD快递查询”
- Windows 10 下安装gcc