微信小程序开发学习——页面布局、初始导航栏与跳转

1.盒模型

要求实现效果如图所示:

所有WXML元素都可以看作盒子,在WXSS中"box model”这一术语是用来设计和布局时使用盒模型本质上是一个盒子,封装周围的WXML元素它包括: 边距,边框,填充和实际内容,模型结构如所示。

其中border,margin,padding的各个属性在实操中可以体会作用是什么。

完整代码如下:

wxml

<view class="box">
  <view class="title">盒模型</view>
  <view class="boxModel01">
    .boxModel01{width:80%; height:120px; background-color:yellow; border:3px dashed #FF0000; padding:20px; margin:20px;}
  </view>
  <view class="boxModel02">
      .boxModel02{ width:80%; height:120px; border:5px solid rgb(0,255,0); padding-top:20px; margin-bottom:20px;
      }
    </view>
    <view class="boxModel03">
      .boxModel02{ width:80%; height:120px; border:5px dotted rgba(0,0,255,0.3); padding-left:20px; margin:0 20px;
      }
    </view>
</view>

wxss文件:

.boxModel01{
  width:80%;
  height:100px;
  background-color:yellow;
  border:3px dashed #FF0000;
  padding:20px;
  margin:20px;
}
.boxModel02{
  width:80%;
  height:100px;
  border:5px solid rgb(0,255,0);
  padding-top:20px;
  margin-bottom:20px;
}
.boxModel03{
  width:80%;
  height:120px;
  border:5px dotted rgba(0,0,255,0.3);
  padding-left:20px;
  margin:0 20px;
}

需要注意的是:在CSS中所有边界的长度,可以存在叠加,如果都为空,取最大的为最后的值。

2.flex弹性布局

需要实现如图布局:

Flex是Flexible Box的缩写,用来对盒状模型进行布局。

默认的flex-direction为main方向,即row水平方向。如果要垂直堆叠,需要改变为column

需要注意line-height和height的关联,如果二者相等,最终实现效果为在垂直方向上是居中对齐的。

<!--flexlayout.wxml-->
<view class="box">
  <view class='title'>页面布局示例</view>
  <!--实现三栏水平均匀布局-->
  <view style='display:flex;text-align:center;line-height:80rpx;'>
    <view style='background-color:red;flex-grow:1;'>1</view>
    <view style='background-color:green;flex-grow:1;'>2</view>
    <view style='background-color:blue;flex-grow:1;'>3</view>
    <!--flex-grow的权重值都是1,因此平分剩余空间-->
  </view>
  ------------------------------------------------
  <!--实现垂直布局-->
  <view style='display:flex;text-align:center;height:300rpx;'>
    <view style='background-color: red;width:250rpx;line-height:150rpx;'>1</view>
    <view style='display:flex;flex-direction:column;flex-grow:1;line-height:150rpx;'>
      <view style='background-color:green;flex-grow:1;'>2</view>
      <view style='background-color:blue;flex-grow:1;'>3</view>
    </view>
  </view>
  ------------------------------------------------
  <!--实现水平均匀布局-->
  <view style='display: flex;text-align: center;flex-direction: column;line-height: 300rpx;'>
    <view style='background-color:red;height:100rpx;line-height:100rpx;'>1</view>
    <view style='display: flex;flex-direction: row;'>
    <view style='background-color:green;flex-grow:1;'>2</view>
    <view style='background-color:blue;flex-grow:1;'>3</view>
    </view>
  </view>

</view>

读者可尝试更改flex-grow的值看看效果,体会平分剩余空间的意思。

 3.float布局

在float布局中,最重要的一个属性就是float属性

float属性:浮动的框可以向左或者向右移动,直到它的外边缘碰到包含框或者另外一个浮动框为止。

配套的属性有clear:

在我们用完了浮动后,要记得及时清除float,不然将会出现新的内容布置不合理。

注意点2:利用margin属性实现水平居中对齐:

margin属性中分为4个:上右下左,即顺时针方向,如果我们只输入两个,则第一个为上下,第二个为左右。

想要实现水平居中对齐,我们只需要给左右属性赋值auto即可。

代码如下:

<!--pages/float/float.wxml-->
<view class = 'bg1'>
  <view class = 'box1'>box1</view>
  <view class = 'box2'>box2</view>
  <view class = 'box3'>box3</view>
  <view class = 'box4'>box4</view>
</view>

<view class = 'bg2'>
  <view class = 'header'>head</view>
  <view class = 'leftbar'>left</view>
  <view class = 'main'>main</view>
  <view class = 'rightbar'>right</view>
  <view class = 'footer'>foot</view>
</view>

wxss属性:

.bg1{
  height: 240px;
  width: 200px;
  margin:10px auto;
}

.box1{
  width: 100px;
  height: 80px;
  background-color: red;
  margin:0 auto;
}

.box2{
  width:100px;
  height:80px;
  background-color: yellow;
  float:left;
}
.box3{
  width:100px;
  height:80px;
  background-color: yellowgreen;
  float:right;
}
.box4{
  width:100px;
  height:80px;
  background-color: green;
  clear: both;
  margin:0 auto;
}

.bg2{
  height:400px;
  text-align: center;
  margin: 10px auto;
}

.header{
  line-height:100px;
  background-color: red;
}

.leftbar{
  width:20%;
  line-height: 200px;
  background-color: yellow;
  float: left;
}

.main{
  width:60%;
  line-height: 200px;
  background-color:green;
  float: left;
}

.rightbar{
  width:20%;
  line-height: 200px;
  background-color:yellowgreen;
  float: right;
}

.footer{
  line-height: 100px;
  background-color:red;
  clear: both;
}

 4.输入模块

实现如图页面及功能。

利用input组件:

其中type属性有4种:

转换函数写在js中:

定义变量var C,F

然后获取传入参数的值采用赋值参数 = 传入参数.detail.value

然后利用this.setData({

        进行变量的传递到前端。

        传递的变量:赋值函数。

})

代码如下:

<!--tem.wxml-->
<view class="box">
 <view class="title">摄氏度转华氏度计算器</view>
 <view>
  <input placeholder='请输入摄氏度' type="digit" bindblur="calc"></input>
 </view>
 <view>华氏温度为:{{F}}</view>
</view>
/* pages/temperature/tem.wxss */
input{
  margin: 20px 0; /*设置input组件上下边距为20px,左右边距为0*/
  border-bottom: 1px solid blue;  /*设置input组件下边框粗细为1px、实心、蓝色*/
}
// pages/temperature/tem.js
Page({
  calc:function(e){
    var C,F;
    C = e.detail.value;
    this.setData({
      F: C * 9 / 5 + 32
    })
  }
})

 5.导航跳转

如果想要点击跳转,那么我们需要利用navigator组件

 需要注意的是:

如果你是小程序内跳转页面,请记得在app.json文件中加入文件路径,否则无法找到路径跳转!!

然后,为了显示好看,我们想加入图标,利用icon组件

 

<!--index.wxml-->
<navigator url="../index/flexlayout">
<view class = 'rowLayout'>
  <icon type = 'success' class = "myLeft"></icon>
  <view class = "myCenter">Flex</view>
  <image src = "https://z3.ax1x.com/2021/03/21/64WWgH.png"></image>
</view>
</navigator>

<navigator url="../float/float">
  <view class = 'rowLayout'>
  <icon type = 'success' class = "myLeft"></icon>
  <view class = "myCenter">Float</view>
  <image src = "https://z3.ax1x.com/2021/03/21/64WWgH.png"></image>
</view>
</navigator>

<navigator url="../temperature/tem">
  <view class = 'rowLayout'>
  <icon type = 'success' class = "myLeft"></icon>
  <view class = "myCenter">摄氏温度转华氏温度计算器</view>
  <image src = "https://z3.ax1x.com/2021/03/21/64WWgH.png"></image>
</view>
</navigator>
input{
  margin:20px auto;
  border-bottom: 1px solid rgba(0,0,255,0.3);
}

.rowLayout{
  display: flex;
  flex-direction: row;
  margin: 20px;
}
image{
  width: 24px;
  height: 24px;
}
.myLeft{
  margin-right: 10px;
  size: 20px;
}
.myCenter{
  flex-grow: 1;
  font-size: 16px;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/163805.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

腾讯云服务器公网带宽速度怎么样?上传下载实测!

腾讯云服务器公网带宽下载速度计算&#xff0c;1M公网带宽下载速度是128KB/秒&#xff0c;5M带宽下载速度是512KB/s&#xff0c;腾讯云10M带宽下载速度是1.25M/秒&#xff0c;腾讯云百科txybk.com来详细说下腾讯云服务器不同公网带宽实际下载速度以及对应的上传速度对照表&…

【数据挖掘 机器学习 | 时间序列】时间序列必备工具箱: 自相关与偏相关检验

&#x1f935;‍♂️ 个人主页: AI_magician &#x1f4e1;主页地址&#xff1a; 作者简介&#xff1a;CSDN内容合伙人&#xff0c;全栈领域优质创作者。 &#x1f468;‍&#x1f4bb;景愿&#xff1a;旨在于能和更多的热爱计算机的伙伴一起成长&#xff01;&#xff01;&…

JVM的运行时数据区

Java虚拟机&#xff08;JVM&#xff09;的运行时数据区是程序在运行过程中使用的内存区域&#xff0c;主要包括以下几个部分&#xff1a; 程序计数器虚拟机栈本地方法栈堆方法区运行时常量池直接内存 不同的虚拟机实现可能会略有差异。这些区域协同工作&#xff0c;支持Java…

游戏数据分析必知必会

游戏的分类 按端分类&#xff1a;端游&#xff08;steam&#xff09;&#xff0c;页游&#xff08;4399&#xff09;&#xff0c;手游&#xff08;手机&#xff0c;pad&#xff09;按盈利模式分类&#xff1a;付费游戏&#xff08;一次买断&#xff0c;后续购买其它剧情或者包…

优质好文链接

文章目录 1.开放源码有利于系统安全2.yum源配置&#xff0c;这一篇就够了&#xff01;(包括本地&#xff0c;网络&#xff0c;本地共享yum源)3.rpm包是什么4.SSH是什么意思&#xff1f;有什么功能&#xff1f; 1.开放源码有利于系统安全 开放源码有利于系统安全 2.yum源配置…

企业计算机服务器中了mallox勒索病毒怎么解决,勒索病毒解密文件恢复

随着科技技术的不断发展&#xff0c;网络技术得到了快速提升&#xff0c;但网络安全威胁也不断增加&#xff0c;近期&#xff0c;云天数据恢复中心陆续接到很多企业的求助信息&#xff0c;企业的计算机服务器遭到了mallox勒索病毒攻击&#xff0c;导致企业的所有业务中断&#…

算法设计与分析【期中+期末复习知识点总结】(持续更新)

第1章&#xff1a;算法概述 算法&#xff1a;具有输入、输出、确定性、有限性。 程序&#xff08;算法数据结构程序&#xff09;&#xff1a;具有输入、输出、确定性&#xff08;注意&#xff1a;程序可以不满足有限性&#xff0c;如操作系统是在无限循环中执行的程序&#x…

接口调用微信公众号群发功能,绕过微信自身限制

微信群发功能要求要微信认证。微信认证要求要企业账号、而且需要认证费用。 本篇文章教大家非微信认证账号如何群发公众号信息 本篇文章基于python语言开发,其他的语言一样的方式,不需要拘泥于语言 注意事项: 要求有微信公众平台登陆状态,也就是Cookie数据, 如何通过Py…

基于SSM的在线投稿系统设计与实现

末尾获取源码 开发语言&#xff1a;Java Java开发工具&#xff1a;JDK1.8 后端框架&#xff1a;SSM 前端&#xff1a;Vue 数据库&#xff1a;MySQL5.7和Navicat管理工具结合 服务器&#xff1a;Tomcat8.5 开发软件&#xff1a;IDEA / Eclipse 是否Maven项目&#xff1a;是 目录…

计算机的发展

硬件的发展 第一台电子数字计算机&#xff1a;ENIAC&#xff08;1946&#xff09;&#xff0c;作者&#xff1a;冯诺依曼&#xff0c;逻辑元件&#xff1a;电子管 bug&#xff1a;小虫子&#xff0c;会影响打点 Intel&#xff1a; 机器字长&#xff1a;计算机一次整数运算所能…

OpenAI变天:也许会有另一个OpenAI要崛起?

本周五&#xff0c;OpenAI发布重磅声明&#xff0c;创始人兼CEO山姆奥特曼辞任OpenAI&#xff0c;并退出董事会。总裁Greg Brockman&#xff08;格雷格布罗克曼&#xff09;将辞去董事会主席一职&#xff0c;但将继续在公司担任职务&#xff0c;向CEO汇报。 作为吃瓜群众&#…

Linux(4):Linux文件与目录管理

目录与路径 相对路径在进行软件或软件安装时非常有用&#xff0c;更加方便。利用相对路径的写法必须要确认目前的路径才能正确的去到想要去的目录。 绝对路径的正确度要比相对路径好&#xff0c;因此&#xff0c;在写程序&#xff08;shell scripts&#xff09;来管理系统的条…

公司会倒闭,但大模型肯定不会

咋玩抖音的我&#xff0c;前几天在抖音上发了一张图片&#xff0c;没想到竟然有1000多的播放量。 当然这个播放量不算高&#xff0c;甚至在抖音的体系里属于很低的&#xff0c;但是比我预料的可能只有个位数的播放量是高了不少。 这张图片是我用某国产 AI 软件生成的&#xff…

【设计模式】设计模式基础

设计模式基础 文章目录 设计模式基础一、七大设计原则1.1 概述1.2 单一职责原则1.3 接口隔离原则1.4 依赖倒转原则1.5 里氏替换原则1.6 开闭原则1.7 迪米特法则1.8 合成复用原则 二、UML类图2.1 概述2.2 依赖关系&#xff08;Dependence&#xff09;2.3 泛化关系(generalizatio…

linux在非联网、无网络环境下,使用yumdownload、reportrack方法安装rpm包

文章目录 前言1、下载yum-utils​​2、yumdownloader3、repotrack4、区别&#xff1a;总结 前言 当开发者在联网环境下使用Linux时&#xff0c;可以轻松地通过yum或apt-get安装软件。然而&#xff0c;在公司和企业中&#xff0c;由于安全原因&#xff0c;生产环境通常无法访问…

es的优势

系列文章目录 提示&#xff1a;这里可以添加系列文章的所有文章的目录&#xff0c;目录需要自己手动添加 例如&#xff1a;第一章 Python 机器学习入门之pandas的使用 提示&#xff1a;写完文章后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目…

系列一、堆里面的分区:Eden、From、To、老年代各自的特点

一、堆里面的分区&#xff1a;Eden、From、To、老年代各自的特点 堆是对象共享的区域&#xff0c;也是垃圾回收器主要工作的地方。主要分为新生区、养老区和元空间&#xff0c;而这三块地方中GC主要工作在新生区和养老区&#xff0c;其中新生区占1/3、养老区占2/3&#xff0c;新…

springboot+activiti5.22.0集成Activiti在线流程设计器

SpringBoot集成Activiti5.22在线流程设计器 文章目录 SpringBoot集成Activiti5.22在线流程设计器&#x1f4dd;1.增加配置pom依赖 增加数据库及redis配置文件&#x1f4dc; 2.启动类ActivitiDesignApplication排除安全校验注解启动项目后将会自动在数据库中生成表 &#x1f4d8…