转载: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. 简化MVVM属性设置和修改 - .NET CORE(C#) WPF开发

    微信公众号:Dotnet9,网站:Dotnet9,问题或建议:请网站留言, 如果对您有所帮助:欢迎赞赏. 简化MVVM属性设置和修改 - .NET CORE(C#) WPF开发 阅读导航 常用类属性设 ...

  2. opencv —— resize、pyrUp 和 pyrDown 图像金字塔(高斯金字塔、拉普拉斯金字塔)与尺寸缩放(向上采样、向下采样)

    我们经常会将某种尺寸的图像转化为其他尺寸的图像,如果需要放大或者缩小图像的尺寸,在 OpenCV 中可以使用如下两种方法: resize 函数,最直接的方法. pyrUp 和 pyrDown 函数,即 ...

  3. Post方式 前后端分离开发postman工具首次使用心得及注意事项

    使用前:2009年以前,一直用asp(非asp.net)语言开发网站,网页调用数据等操作,是通过asp标签<%%>嵌入到HTML标签语言中.相隔八年后,听说最近都是MVC后又什么前后端分离 ...

  4. jsp的九大内置对象+四大作用域

    1.request是httpServletRequest的对象,代表发送的请求信息 2.response是httpServletResponse的对象,代表响应请求返回的信息 3.session会话是 ...

  5. [Python]爬取 游民星空网站 每周精选壁纸(1080高清壁纸) 网络爬虫

    一.检查 首先进入该网站的https://www.gamersky.com/robots.txt页面 给出提示: 弹出错误页面 注: 网络爬虫:自动或人工识别robots.txt,再进行内容爬取 约束 ...

  6. 生成随机数(C++)

    // generate random number #include <iostream> #include <iomanip> #include <cstdlib> ...

  7. Spring MVC 定时任务注解说明

    一.注解说明. Spring 自带的定时任务执行@Scheduled注解,可以定时的.周期性的执行一些任务.查看@Scheduled的注解可以看到有以下三种: 1.1 String cron() de ...

  8. PHP OOP

    <?php //1. Class and object /* object-oriented concept an object can be almost any items or conce ...

  9. Docker入门(windows安装)

    Docker入门(安装)Docker是一种轻量级容器技术,实际中直接运行在当前操作系统(Linux)上,而不是虚拟机中.PaaS提供了存储,数据库,网络,负载均衡,自动扩展等功能,Docker云平台就 ...

  10. vue 学习3

    在 2.5.0 及以上版本中,如果你使用了单文件组件 $children,$slots,$attrs .... $attrs 可以透传props 注意.模板标签上有:属性="a", ...