转载:https://blog.csdn.net/u012927188/article/details/83040156

  相信刚开始学习开发小程序的初学者一定对界面的布局很困扰,不知道怎么布局,怎么摆放位置,其原因是不了解CSS样式的属性,所以,今天代码君打算写一篇关于CSS的教程,给大家普及一下。

说起CSS布局,首先要讲解的就是FLex布局,这个可以说是一个万能钥匙,遇到什么复杂的布局,都可以通过Flex布局搞定,为了方便大家理解Flex属性,我将会一步步解析FLex的属性,并附上效果图

基本概念
  采用 Flex 布局的元素,称为 Flex 容器(flex container),简称"容器"。它的所有子元素自动成为容器成员,称为 Flex 项目(flex item),简称"项目"。

Flex容器属性,Flex总共有6个属性:

     flex-direction:设置排列方向
  flex-wrap :内容满一行,是否换行
  flex-flow flex-direction:属性和flex-wrap属性的简写形式
  justify-content :左右对齐方式
  align-items :上下对齐方式
  align-content :多行上下对齐方式

一、flex-direction属性:
flex-direction决定了item里面排列的方向,有下面四个属性值:
  row(默认值):横向排序,从左边起开始排列item。
  row-reverse:横向排序,从右边起开始排列item。
  column:纵向排列,从顶部开始排列item。
  column-reverse:纵向排列,从底部开始排列item。
二、flex-wrap属性:
默认情况下,项目都排在一行上不换行,flex-wrap有三个属性值:
  nowrap (默认)不换行
  wrap 如果第一行满了,换行
  wrap-reverse 换行,第一行在下方
三、flex-flow属性:

  flex-flow属性是flex-direction属性和flex-wrap属性的简写形式,这里不建议使用,就不介绍了

四、justify-content属性:
justify-content用来定义item 左右对齐的方式,有以下五种

  flex-start(默认值):左对齐
  flex-end:右对齐
  center: 居中
  space-between:等距对齐,两端对齐,item之间的间隔都相等。
  space-around:每个item两侧的间隔相等。所以,item之间的间隔比item与边框的间隔大一倍。
五、align-items属性:
align-items用来定义item上下对齐的方式,也有五种
  flex-start:向上对齐
  flex-end:向下对齐。
  center:居中。
  baseline: item的第一行文字的基线对齐。
  stretch(默认值):如果item未设置高度或设为auto,将占满整个容器的高度。
六、align-content属性:
align-content是多行对齐方式,如果只有把一行,此属性不起作用
  flex-start:向上对齐。
  flex-end:向下对齐。
  center:居中。
  space-between:等距对齐,两端对齐,item之间的间隔都相等。
  space-around:每个item两侧的间隔相等。所以,item之间的间隔比item与边框的间隔大一倍。
  stretch(默认值):所有item占满整个容器。
七、扩展:

  如果想对容器内的item按比例划分的话,可以用flex-grow属性,赋值就是该item占一行的比例

Flex属性实战

初始代码

<!--index.wxml-->
<view class="container">
<view class="item">
v1
</view>
<view class="item">
v2
</view>
<view class="item">
v3
</view>
</view>
/**index.wxss**/
.container {
height: 1000rpx;
width: %;
background-color: rgb(, , );
display: flex;
} .item {
height: 100rpx;
width: 100rpx;
border: 5rpx solid #fff;
}

image.png

改过属性的效果图如上,剩下的两个属性就不演示了,接下来试一下justify-content左右对齐方式,我们就实现一下等距对齐方式吧

/**index.wxss**/
.container {
height: 1000rpx;
width: 100%;
background-color: rgb(13, 134, 78);
display: flex; /* 改动的代码 */
flex-direction: row;
justify-content: space-between;
}

image.png

ok,接下来是上下对齐,align-items这个里面有一个和左右对齐不一样的,就是根据内容文字对齐baseline,让我们看一下效果是什么样的,为了有对比性,我把文字的高度设置的不一样

/**index.wxss**/
.container {
height: 1000rpx;
width: %;
background-color: rgb(, , );
display: flex; /* 改动的代码 */
flex-direction: row;
justify-content: space-between;
align-items: baseline;
} .item {
height: 100rpx;
width: 100rpx;
border: 5rpx solid #fff;
} .item2 {
height: 100rpx;
width: 100rpx;
border: 5rpx solid #fff;
padding-top: 20rpx;
}

image.png

看到了吧,这个属性就是根据第一行文字为基线对齐的,因为第二个view字位置和其他不一样,所以整体往上移动了,最后一个,实现以下等比划分item,用到的属性是flex-grow,这个属性需要设置在item里面才可以

/**index.wxss**/
.container {
height: 1000rpx;
width: %;
background-color: rgb(, , );
display: flex; /* 改动的代码 */
flex-direction: row;
justify-content: space-between;
align-items: baseline;
} .item {
height: 100rpx;
width: 100rpx;
border: 5rpx solid #fff;
/*占比1*/
flex-grow: ;
} .item2 {
height: 100rpx;
width: 100rpx;
border: 5rpx solid #fff;
/*占比1*/
flex-grow: ;
}

总结

好了,这些就是Flex的全部属性,最后告诉一下读者,不要只看文章,一定要跟着教程,去实战一下,只有这样,才可以对属性了解透彻,如果你掌握这些,相信市面上的小程序基础布局,你都可以实现的。

微信小程序CSS之Flex布局的更多相关文章

  1. 微信小程序_(组件)flex布局

    小程序建议使用flex布局进行排版 flex是一个盒装弹性布局 flex是一个容器,所有子元素都是他的成员 定义布局:display:flex flex容器的属性: 一.flex-direction: ...

  2. 微信小程序 View:flex 布局

    微信小程序 View 支持两种布局方式:Block 和 Flex 所有 View 默认都是 block 要使用 flex 布局的话需要显式的声明: display:flex; 下面就来介绍下微信小程序 ...

  3. 在微信小程序中学习flex布局

    网页布局(layout)是CSS的一个重点应用. 布局的传统解决方案,基于盒状模型,依赖display属性 + position属性 + float属性.它对于那些特殊布局非常不方便,比如,垂直居中就 ...

  4. 微信小程序css篇----flex模型

    一.Flex布局是什么? Flex是Flexible Box的缩写,意为"弹性布局",用来为盒状模型提供最大的灵活性. 任何一个容器都可以指定为Flex布局. .box{displ ...

  5. 微信小程序:原生热布局终将改变世界

    关于本文的所有观点都是网上收集,与作者本人没有任何关系! 最近朋友圈已经被微信小程序刷屏了,这也难怪,腾讯的产品拥有广泛的影响力,谁便推出个东西,都会有很多人认为会改变世界,这不,张小龙刚一发布微信小 ...

  6. 微信小程序-表格形式如何布局?

    微信小程序没有现成的table标签,该怎么布局呢? <view class="my-grids"> <block wx:for="{{grids}}&q ...

  7. 微信小程序 - 非入侵式布局

    非入侵式布局,就是不影响原有内容以及代码,增加用户体验感(UE)的一种方式. 例如我们每个接口必须返回: 0:请求成功 -1:请求失败 .... 这样就便于前端判断数据是否加载成功,然后以客观的方式提 ...

  8. 微信小程序css继承

    在微信小程序里写的全局样式,pages里的组件是可以继承的,但是components里只能继承font和color属性.

  9. 学习微信小程序之css16常见布局

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

随机推荐

  1. 医院信息集成平台(ESB)实施、建设方案

    医院信息集成平台(ESB)实施.建设方案 基于中立.标准.开放的IT架构和数据标准,打造插拔式医院应用生态. 解决方案 基于ESB集成总线,构建医院信息化建设顶层设计.                 ...

  2. RxJava的concat操作符

    更多文章请点击:http://77blogs.com/?p=170 转载请标明出处:https://www.cnblogs.com/tangZH/p/12088332.html,http://77bl ...

  3. HDFS基本命令fs的使用操作

    HDFS(Hadoop Distributed File System)就是hadoop分布式文件系统,fs是操作HDFS文件的一个常用命令. 1.hadoop fs -help 查看fs使用帮助 2 ...

  4. 修改PR Cs6,PS Cs6,AU Cs6的启动界面

    转载来源:https://jingyan.baidu.com/article/09ea3ede00aeedc0aede39ca.html 百度了很多,只见PS Cs6的启动界面修改教程,PR,AU C ...

  5. python中的“赋值与深浅拷贝”

    Python中,赋值与拷贝(深/浅拷贝)之间是有差异的,这主要源于数据在内存中的存放问题,本文将对此加以探讨. 1 赋值(添加名字) 赋值不会改变内存中数据存放状态,比如在内存中存在一个名为data的 ...

  6. iMacros 入门教程-基础函数介绍(3)

    imacros 的 PAUSE 函数用法 这个函数的作用是暂停程序的运行,也就是断点. 对于有时运行到某一步需要输入内容时,或者需要调试时非常有用 如果你混着 pause 和 wait 一起用,那么当 ...

  7. 《Adaptive Density Map Generation for Crowd Counting》密集人群检测论文笔记

    背景 密度图\(D_g\)的生成对于最终网络预测结果\(D_e\)至关重要,但是密度图\(D_g\)生成的过程中,高斯核的大小常常是手动设定的,并且对于不同的数据集,核大小和形状通常不一样.这些手动选 ...

  8. 【redis】spring boot利用redis的Keyspace Notifications实现消息通知

    前言 需求:当redis中的某个key失效的时候,把失效时的value写入数据库. github: https://github.com/vergilyn/RedisSamples 1.修改redis ...

  9. 纪中20日c组模拟赛

    赛后感想 多写点东西总是好的,但是在最后,算法就不要改动了(就这样我少了10分) 题解 T1 2121. 简单游戏 T2 2122. 幸运票

  10. 小白的java学习之路 “ 变量、数据类型和运算符”

    一.变量: 1.什么是变量? 变量是一个数据存储空间的表示 变量由:变量名  变量类型  变量的值 2.创造变量的两种方法: 1.声明-->赋值-->取值 //声明变量 int money ...