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

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;
}

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SQL零基础入门教程,贼拉详细!贼拉简单! 速通数据库期末考!(八)

FULL OUTER JOIN 除了前面讲到的 INNER JOIN&#xff08;内连接&#xff09;、LEFT JOIN&#xff08;左连接&#xff09;、RIGHT JOIN&#xff08;右连接&#xff09;&#xff0c;还有另外一种关联方式&#xff0c;即 FULL OUTER JOIN&#xff08;全外连接&#xff09; FULL O…

C/C++数据结构之堆栈(Stack):理解、实现与运用

当我们讨论堆栈时&#xff0c;我们首先需要了解它的概念和基本原理。堆栈是一种后进先出&#xff08;Last In, First Out&#xff0c;LIFO&#xff09;的数据结构&#xff0c;它的操作主要包括压栈&#xff08;Push&#xff09;和弹栈&#xff08;Pop&#xff09;&#xff0c;以…

webpack 中,filename 和 chunkFilename 的区别

filename filename 是一个很常见的配置&#xff0c;就是对应于 entry 里面的输入文件&#xff0c;经过webpack打包后输出文件的文件名。比如说经过下面的配置&#xff0c;生成出来的文件名为 index.min.js。 chunkFilename chunkFilename 指未被列在 entry 中&#xff0c;却…

Java 教育局民办教育信息服务与监管平台

1) 项目背景 按照《中华人民共和国民办教育促进法》和《中华人民共和国政府信息公开条例》的相关规定&#xff0c;为满足学生和家长、社会各界获取权威信息的需求&#xff0c;着力解决服务老百姓最后一公里问题&#xff0c;达到宣传民办教育和引导家长择校的效果&#xff0…

LeetCo

题目描述如下&#xff1a; 罗马数字包含以下七种字符: I&#xff0c; V&#xff0c; X&#xff0c; L&#xff0c;C&#xff0c;D 和 M。 字符 数值 I 1 V 5 X 10 L 50 C 100 D 500 M …

leetcoe刷题日志-6N字形变换

将一个给定字符串 s 根据给定的行数 numRows &#xff0c;以从上往下、从左到右进行 Z 字形排列。 比如输入字符串为 “PAYPALISHIRING” 行数为 3 时&#xff0c;排列如下&#xff1a; 之后&#xff0c;你的输出需要从左往右逐行读取&#xff0c;产生出一个新的字符串&#…

世微 降压恒流驱动IC 景观亮化洗墙灯舞台灯汽车灯LED照明 AP5199S

1. 特性 支持高辉调光&#xff0c;调光比 平均电流工作模式 高效率&#xff1a;最高可达 95% 输出电流可调范围 60mA~12A 最大工作频率 1MHz 恒流精度≤3% 支持 PWM 封装&#xff1a;SOP8 2. 应用领域 景观亮化洗墙灯 舞台调光效果灯 汽车照明 3. 说明 AP5199S…

读像火箭科学家一样思考笔记02_与不确定性共舞(下)

1. 万有理论 1.1. 相对论 1.1.1. 适用于体积非常大的物体 1.2. 量子力学 1.2.1. 适用于非常小的物体 1.2.2. 在量子力学诞生之前&#xff0c;物理学一直强调的是因果关系&#xff0c;即做这件事&#xff0c;就会得到那个结果 1.2.3. 量子力学讲的似乎是&#xff1a;当我们…

RobotFramework之如何使用数据驱动(十二)

学习目录 引言 数据驱动是什么&#xff1f; 非驱动方式测试案例 通过添加Template模板的方式&#xff0c;实现数据驱动 将参数放在变量文件中&#xff0c;实现数据驱动 引言 大家平时在写接口或者UI自动化用例的时候&#xff0c;是否遇到这种情况&#xff1a; 写了很多条…

关于Android音效播放,【备忘】

主要还是希望开箱即用。所以才有了这篇&#xff0c;也是备忘。 以下代码适合Android5.0版本以后 private SoundPool soundPool;//特效播放private Map<String,Integer> soundPoolMap;// Builder buildernew SoundPool.Builder();builder.setMaxStreams(4);///最大…

(Matalb时序预测)PSO-BP粒子群算法优化BP神经网络的多维时序回归预测

目录 一、程序及算法内容介绍&#xff1a; 基本内容&#xff1a; 亮点与优势&#xff1a; 二、实际运行效果&#xff1a; 三、部分程序&#xff1a; 四、完整程序数据说明文档下载&#xff1a; 一、程序及算法内容介绍&#xff1a; 基本内容&#xff1a; 本代码基于Matalb平…

TURN 协议

TURN 地址分配 抓包过程 TURN 连接建立 这里指的是 Client 收到对端从 TURN 分配的 IP 和 端口 &#xff0c;和对端的 TURN 和 IP 绑定的过程 CreatePermission Request 等消息&#xff0c;都会携带有对端的 TURN 和 IP 抓包过程