微信小程序 | CSS | Flex布局

简介: 微信小程序 | CSS | Flex布局

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

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


1、基本概念


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


2、Flex容器属性


Flex总共有6个属性

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


1. flex-direction属性

flex-direction决定了item里面排列的方向,有下面四个属性值

  • row(默认值):横向排序,从左边起开始排列item。
  • row-reverse:横向排序,从右边起开始排列item。
  • column:纵向排列,从顶部开始排列item。
  • column-reverse:纵向排列,从底部开始排列item。


2. flex-wrap属性

默认情况下,项目都排在一行上不换行,flex-wrap有三个属性值

  • nowrap (默认)不换行
  • wrap 如果第一行满了,换行
  • wrap-reverse 换行,第一行在下方


3. flex-flow属性

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


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

  • flex-start(默认值):左对齐
  • flex-end:右对齐
  • center: 居中
  • space-between:等距对齐,两端对齐,item之间的间隔都相等。
  • space-around:每个item两侧的间隔相等。所以,item之间的间隔比item与边框的间隔大一倍。


5. align-items属性

align-items用来定义item上下对齐的方式,也有五种

  • flex-start:向上对齐
  • flex-end:向下对齐。
  • center:居中。
  • baseline: item的第一行文字的基线对齐。
  • stretch(默认值):如果item未设置高度或设为auto,将占满整个容器的高度。


6. align-content属性

align-content是多行对齐方式,如果只有把一行,此属性不起作用

  • flex-start:向上对齐。
  • flex-end:向下对齐。
  • center:居中。
  • space-between:等距对齐,两端对齐,item之间的间隔都相等。
  • space-around:每个item两侧的间隔相等。所以,item之间的间隔比item与边框的间隔大一倍。
  • stretch(默认值):所有item占满整个容器。


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


3、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: 100%;
  background-color: rgb(13, 134, 78);
  display: flex;
}
.item {
  height: 100rpx;
  width: 100rpx;
  border: 5rpx solid #fff;
}

image.png

上图为初始效果图,因为 flex-direction默认为row,所以刚开始会横向排列,如果要纵向排列加入flex-direction设置为column即可

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: 100%;
  background-color: rgb(13, 134, 78);
  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: 100%;
  background-color: rgb(13, 134, 78);
  display: flex;
  /* 改动的代码 */
  flex-direction: row;
  justify-content: space-between;
  align-items: baseline;
}
.item {
  height: 100rpx;
  width: 100rpx;
  border: 5rpx solid #fff;
  /*占比1*/
  flex-grow: 1;
}
.item2 {
  height: 100rpx;
  width: 100rpx;
  border: 5rpx solid #fff;
  /*占比1*/
  flex-grow: 1;
}

image.png


总结


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


目录
相关文章
|
23天前
|
前端开发 UED 容器
在 CSS 中使用 Flex 布局实现页面自适应时需要注意什么?
【10月更文挑战第22天】在使用 Flex 布局实现页面自适应时,需要对其基本原理和特性有深入的理解,同时结合具体的布局需求和场景,进行细致的调整和优化。通过合理的设置和注意事项的把握,才能实现理想的自适应效果,提升用户体验。还可以根据实际情况进行更深入的探索和实践,以不断提升 Flex 布局的应用能力。
|
29天前
|
小程序 前端开发 开发者
小程序的页面如何布局?
【10月更文挑战第16天】小程序的页面如何布局?
46 1
|
1月前
|
数据可视化 前端开发 搜索推荐
FLEX组件可视化设计器CSS3代码生成器
FLEX组件可视化设计器CSS3代码生成器
38 4
|
16天前
|
前端开发 容器
实现CSS品字布局
【10月更文挑战第27天】
|
1月前
|
前端开发 容器
使用 CSS Grid 布局实现响应式设计
【10月更文挑战第1天】使用 CSS Grid 布局实现响应式设计
50 4
|
1月前
|
前端开发 容器
前端技术分享:利用CSS Grid布局实现响应式设计
【10月更文挑战第1天】前端技术分享:利用CSS Grid布局实现响应式设计
|
2月前
|
前端开发 容器
css布局-弹性布局学习笔记
这篇文章是关于CSS弹性布局的学习笔记,详细介绍了flex容器和元素的相关属性,包括flex-direction、flex-wrap、flex-flow、justify-content、align-items、align-content以及order、flex-grow、flex-shrink、flex-basis、flex和align-self等,解释了这些属性在弹性盒子布局中的作用和用法。
|
1月前
|
前端开发 开发者 容器
CSS3:flex&box-sizing
本文介绍了CSS中的Flex布局及其相关属性,如`flex-direction`、`flex-wrap`、`justify-content`等,并通过代码示例展示了如何使用这些属性来控制容器内的项目排列方式。同时,还讲解了`align-items`属性用于定义子元素在交叉轴上的对齐方式,以及`box-sizing`属性的不同取值对元素尺寸计算的影响。
|
2月前
|
JavaScript 前端开发
网页前端课程设计-【模仿】香港中文大学官网,轮播图及div+css布局,js的dom操作
这篇文章介绍了如何模仿香港中文大学官网进行网页前端课程设计,包括使用div+css布局、js的DOM操作以及实现轮播图等技术细节。