转载: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. 用PHP&JS实现的ID&密码校验程序

    声明:本程序纯粹是本人在学习过程中突发奇想做的,并未考虑任何可行性,实用性,只是留下来供以后参考. 前端页面 sign.html <!DOCTYPE html> <html> ...

  2. opencv —— boundingRect、minAreaRect 寻找包裹轮廓的最小正矩形、最小斜矩形

    寻找包裹轮廓的最小正矩形:boundingRect 函数 返回矩阵应满足:① 轮廓上的点均在矩阵空间内.② 矩阵是正矩阵(矩形的边界与图像边界平行). Rect boundingRect(InputA ...

  3. Windows10访问Ubuntu子系统(WSL)的桌面环境

    原文地址:https://blog.csdn.net/xmh19936688/article/details/90212960 Windows10访问Ubuntu子系统(WSL)的桌面环境文章目录Wi ...

  4. Python+PyQT5的子线程更新UI界面的实例《新手必学》

    今天小编就为大家分享一篇Python+PyQT5的子线程更新UI界面的实例,具有很好的参考价值,希望对大家有所帮助.一起跟随小编过来看看吧子线程里是不能更新UI界面的,在移动端方面.Android的U ...

  5. javaweb垃圾分类查询系统源码 ssm+mysql

    需求 基于SSM实现一个垃圾分类查询管理系统, 用户可以根据自定义查询分类信息, 管理员可以对分类信息, 垃圾详情信息进行增删改查的管理 运行环境 jdk1.8,tomcat8.5,mysql5.6, ...

  6. SpringBoot缓存 --(二)Redis单机缓存

    pom.xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId> ...

  7. Windows下 JDK1.8环境配置

    安装JDK1.8,安装时会安装jdk.jre. 如果只是在IDEA中写写代码,安装完jdk,在IDEA中指定jdk路径就可以了. 如果要在命令行下执行jdk的命令,比如java.javac,或者要使用 ...

  8. vue2.0嵌套组件之间的通信($refs,props,$emit)

    vue的一大特色就是组件化,所以组件之间的数据交互是非常重要,而我们经常使用组件之间的通信的方法有:props,$refs和emit. 初识组件之间的通信的属性和方法 props的使用 子组件使用父组 ...

  9. 0x00 C语言-环境配置

    这里介绍怎么将安装好的v2019配置成可以编写c/c++以及windows应用程序的编译器. vs2019下载地址(官网):https://visualstudio.microsoft.com/zh- ...

  10. instanceof读解

    function instance(l,r){ let 0 = r.prototype; let v = l.__proto__; while(true){ if(v === null){ retur ...