WXML(WeiXin Markup Language)是小程序框架设计的标签语言,结合基础组件、事件系统,可以构建出小程序页面的结构;WXSS (WeiXin Style Sheets)是小程序的样式语言,用于描述 WXML 的组件样式。

2.2.1 编辑WXML文件

我们在开发者工具里打开之前修改的模板小程序home文件夹下的home.wxml,里面有如下代码

<!--pages/home/home.wxml-->
<text>pages/home/home.wxml</text>

这个第1行,是一句注释,也就是一句说明,不会显示在小程序的前端,第2行就是一个**组件**。

接下来我们会广泛使用到小程序的组件。比如我们在上面的代码下面加一下下面的代码,大家再来看效果:

<view><view><view>WXML 模板</view><view>从事过网页编程的人知道,网页编程采用的是 HTML + CSS + JS 这样的组合,其中 HTML 是用来描述当前这个页面的结构,CSS 用来描述页面的样子,JS 通常是用来处理这个页面和用户的交互。</view></view>
</view>

大家可以结合上面的代码,来了解一下组件的基本写法

  • 组件和组件类似,他们都是成对出现的,比如,,两个要一起写,有前面的开始标签,后面就要有一个闭合标签,闭合标签前面有一个“/”
  • view组件是可以嵌套写的,
  • 为了让视觉上更好看,写代码的时候要有缩进(虽然不缩进也不会有影响)

我们可以把这个页面写的更加复杂一点。

<view><view><view><view>技术学习说明</view><view>技术和我们以往所接触的一些知识有很大的不同,比如英文非常强调词汇量,需要你多说多背;数学需要你记住公式,反复练习;在教学的方式上也有很大的不同,以前都是有专门的老师手把手教你,而且还有同学交流。那要学好技术,应该依循什么样的学习方法和教学方法呢?</view></view><view><view><view>自学而非手把手</view><view>技术的方向众多,而且知识点也是非常庞杂,需要你具备一定的自学能力,所谓自学能力就是要求你遇到问题能够勤于思考,擅于搜索,能够不断实践探索。在实际工作中,也要求你能根据技术文档可以迅速掌握前沿的技术,而同事不会有时间教你,如果没有自学能力,是很难胜任很多工作的。</view></view><view><view>查阅文档而非死记知识点</view><view>在高中一学期一门课只有很薄的一本书,老师会反复讲解知识点,强化你的记忆,考试也是闭卷;而技术一个很小的分支,内容就有几千页甚至更多,强记知识点显然不合适。学习技术要像查词典一样来查阅技术文档,你只需要掌握基本的语法和用法,在编程的时候随时查阅,就像你不需要背诵上万的单词也能知道它的意思用法一样,所以技术文档是学习技术最为重要的参考资料。</view></view><view><view>实战而非不动手的看书</view><view>技术是最强调结果的技能,你看了再多书,如果不知道技术成品是怎么写出来的,都是枉然。很多朋友有收集癖,下载了很多电子资源,收藏了很多高赞的技术文章,但是却没有动手去消化去理解,把时间和精力都浪费了。不动手在开发者工具里去写代码,不动手配置开发环境,缺乏实战的经验,都是阻碍你学好技术的坏习惯。</view></view><view><view>搜索而非做伸手党</view><view>在以前,我们遇到技术问题,我们可以问老师问同学,于是很多人把这种不良的习惯也带到了技术的学习当中,遇到问题也总喜欢求助于别人。技术的方向众多,环境复杂,问题也是很多,如果你总是依赖别人的解答,是很难学好技术的。一定要学会在网上通过搜索遇到的问题来找答案。</view></view><view><view>团队协作,而非单打独斗</view><view>一个产品涉及的技术非常多,需要很多人来一起配合才能开发好,所以学习技术的时候我们需要了解一些代码规范、工作的流程、项目管理等,在技术方面也会有API接口,接口文档这些,还要懂得如何和同职业的同事以及不同角色的人如设计师等一起配合,而不是自己一个人单打独斗。</view></view><view><view>系统的指导而非茫然无序</view><view>学好技术最依赖你自学,但是如果没有人指导你,你可能会像苍蝇一样陷入众多资料中茫然无序,抓不住一个技术的重点,也不清楚哪些技术才值得你深入学习,最好是有经验的人可以指点你应该看什么,学什么,什么才是重点,当然不是手把手教你。</view></view></view></view>
</view>

2.2.2 WXSS选择器

大家是不是已经发现我们写的小程序页面有点丑?那我们需要对这个小程序页面进行美化。但是我们的代码里面组件这么多,要是不对每个组件进行区分,就很难对每个组件进行美化了。

1、id与class选择器

这个时候我们就要先了解一下选择器的概念。选择器是用来干什么的呢?从名字里我们就可以看出来,就是为了选择。比如学校有1000个人,我们要选择出其中一个人,那我们可以给所有人一个学号,这个学号是唯一的,我们可以称这个学号为id,用于精准的选择;还有的时候我们需要对一群人进行分类选择,比如整个班级或者所有男生,这个班级、性别,我们可以称为class,用于分类选择。

在wxss技术文档这里有关于选择器的描述。

技术文档:WXSS技术文档

2、给组件增加属性

比如上面的view组件实在太多了,为了区分它们,我们给他们加一些属性,这样我们就可以用选择器选择它们了。

<view id="wxmlinfo"><view class="content"><view class="title">WXML 模板</view><view class="desc">从事过网页编程的人知道,网页编程采用的是 HTML + CSS + JS 这样的组合,其中 HTML 是用来描述当前这个页面的结构,CSS 用来描述页面的样子,JS 通常是用来处理这个页面和用户的交互。</view></view>
</view>

以及比较复杂的那一段代码的view组件也加上属性。给组件添加属性在外观上并不会有什么效果哦~

<view id="studyweapp"><view class="content"><view class="header"><view class="title">技术学习说明</view><view class="desc">技术和我们以往所接触的一些知识有很大的不同,比如英文非常强调词汇量,需要你多说多背;数学需要你记住公式,反复练习;在教学的方式上也有很大的不同,以前都是有专门的老师手把手教你,而且还有同学交流。那要学好技术,应该依循什么样的学习方法和教学方法呢?</view></view><view class="lists"><view class="item"><view class="item-title">自学而非手把手</view><view class="item-desc">技术的方向众多,而且知识点也是非常庞杂,需要你具备一定的自学能力,所谓自学能力就是要求你遇到问题能够勤于思考,擅于搜索,能够不断实践探索。在实际工作中,也要求你能根据技术文档可以迅速掌握前沿的技术,而同事不会有时间教你,如果没有自学能力,是很难胜任很多工作的。</view></view><view class="item"><view class="item-title">查阅文档而非死记知识点</view><view class="item-desc">在高中一学期一门课只有很薄的一本书,老师会反复讲解知识点,强化你的记忆,考试也是闭卷;而技术一个很小的分支,内容就有几千页甚至更多,强记知识点显然不合适。学习技术要像查词典一样来查阅技术文档,你只需要掌握基本的语法和用法,在编程的时候随时查阅,就像你不需要背诵上万的单词也能知道它的意思用法一样,所以技术文档是学习技术最为重要的参考资料。</view></view><view class="item"><view class="item-title">实战而非不动手的看书</view><view class="item-desc">技术是最强调结果的技能,你看了再多书,如果不知道技术成品是怎么写出来的,都是枉然。很多朋友有收集癖,下载了很多电子资源,收藏了很多高赞的技术文章,但是却没有动手去消化去理解,把时间和精力都浪费了。不动手在开发者工具里去写代码,不动手配置开发环境,缺乏实战的经验,都是阻碍你学好技术的坏习惯。</view></view><view class="item"><view class="item-title">搜索而非做伸手党</view><view class="item-desc">在以前,我们遇到技术问题,我们可以问老师问同学,于是很多人把这种不良的习惯也带到了技术的学习当中,遇到问题也总喜欢求助于别人。技术的方向众多,环境复杂,问题也是很多,如果你总是依赖别人的解答,是很难学好技术的。一定要学会在网上通过搜索遇到的问题来找答案。</view></view><view class="item"><view class="item-title">团队协作,而非单打独斗</view><view class="item-desc">一个产品涉及的技术非常多,需要很多人来一起配合才能开发好,所以学习技术的时候我们需要了解一些代码规范、工作的流程、项目管理等,在技术方面也会有API接口,接口文档这些,还要懂得如何和同职业的同事以及不同角色的人如设计师等一起配合,而不是自己一个人单打独斗。</view></view><view class="item"><view class="item-title">系统的指导而非茫然无序</view><view class="item-desc">学好技术最依赖你自学,但是如果没有人指导你,你可能会像苍蝇一样陷入众多资料中茫然无序,抓不住一个技术的重点,也不清楚哪些技术才值得你深入学习,最好是有经验的人可以指点你应该看什么,学什么,什么才是重点,当然不是手把手教你。</view></view></view></view>
</view>

大家在学习的过程中,要随时在开发者工具的模拟器上查看效果,也要经常用微信扫码预览所生成的二维码来查看效果,千万不要只看教程怎么说,而是自己要动手去实战。

2.2.3 CSS参考手册

给wxml文件的组件加了选择器之后,我们就可以在wxss文件里给指定的某个组件以及某类组件添加一些美化了,这里我们需要编辑home.wxss文件。wxss美化的知识和css是一样的,所以小程序的技术文档里面没有,大家可以看一下w3shool的CSS参考手册。CSS文件的作用就是来美化组件的。

技术文档:CSS参考手册

这里大家只需要了解CSS的字体属性文本属性背景属性边框属性盒模型

CSS涉及的知识点非常多,现在大家也只需要知道有这些概念即可,学技术千万不要在没有看到实际效果的情况下来死记概念。概念没有记住一点关系都没有,因为大家可以随时来查文档。接下来我们也会有实际的例子让大家看到效果,大家想深入学习的时候可以回头再看这些文档。

2.2.4 字体属性与文本属性

下面这些关于CSS的基础知识点,大家可以结合我们是如何调整Word、PPT的样式的来理解,比如我们是怎么调整文本的大小、颜色、粗细等等的,添加样式的时候要注意随手实战了解了效果再说。

比如class为title的组件里面的文字是标题,我们需要对标题的字体进行加大、加粗以及居中处理,这时候我们就可以在home.wxss文件里加入以下代码,然后大家看看有什么效果。

.title{font-size: 20px; font-weight: 600;text-align: center;}

通过 .title这个选择器,我们就选择到了类class为 title的组件,然后就可以精准地对它进行美化,对它的美化代码不会用在其他组件上了。

大家也要留意css的写法,这里font-size,font-weight,text-align外面称之为属性,冒号:后面的我们称之为值,属性:值这一整个我们叫做声明,每个声明我们用分号;隔开。大家不要记这些概念,知道是个什么东西就行了。

class为item-title的组件里面的文字是一个列表的标题,我们希望它和其他文字的样式有所不同,不过这个标题要比title的字体小一些;比其他文字更粗,但是比title更细;颜色我们可以添加一个彩色字体,

.item-title{font-size:18px;font-weight:500;color: #c60;
}

我们希望描述类的文字颜色浅一点,不要那么黑,我们可以换一个浅一点的颜色,我们在home.wxss下面继续加代码。

.desc,.item-desc{color: #333;
}

大家注意,我们这里有两个选择器,一个是desc,一个是item-desc,当我们希望两个不同的选择器有相同的css代码时,可以简化一起写,然后用逗号,隔开。

除了标题(class为title和item-title的组件)我们都给他们加了字体大小,我们希望所有的文字大小、行间距有一个统一的设定。

#wxmlinfo,#studyweapp{font-size:16px;font-family: -apple-system-font,Helvetica Neue,Helvetica,sans-serif;line-height: 1.6;
}

为了大家方便查阅技术文档,我们把这些常用的css技术文档整理到以下表格,方便大家更深入的去学习。

字体属性
font-family 规定文本的字体系列。
font-size 规定文本的字体尺寸。
font-weight 规定字体的粗细。
文本属性
color 设置文本的颜色。
line-height 设置行高。
text-align 规定文本的水平对齐方式。

2.2.5 盒模型

大家有没有发现段落之间的距离、文字之间的距离,以及与边框之间的距离都比较拥挤?这个时候就需要用到盒子模型啦。盒子模型就像一个长方形的盒子,它有长度、高度、也有边框,以及内边距与外边距。我们通过实战来了解一下。

长度、高度、边框我们比较好理解,那这个内边距和外边距是什么意思呢?

内边距就是这个长方形的边框与长方形里面的内容之间的距离,有上边距,右边距、下边距、左边距这个四个内边距,分别为padding-top,padding-right,padding-bottom,padding-left。注意是上、右、下、左,这样一个顺时针。

那外边距就是这个长方形的边框与长方形外面的内容之间的距离,同样也有上边距margin-top,右边距margin-right,下边距margin-bottom,左边距margin-left这个四个边距。同样也是上、右、下、左这个顺时针。

比如我们给id为wxmlinfo和studyweapp的组件加一个内部距,让文字

#wxmlinfo,#studyweapp{padding-top:20px;padding-right:15px;padding-bottom:20px;padding-left:15px;
}

padding的简写 上面这四个padding是可以做一定的简写的,关于padding的简写,大家可以去阅读以下技术文档,多用就会了,CSS padding属性 ,在这里有四个padding简写的案例,比如上面的这四条声明可以简写成padding:20px 15px。大家可以业余深入了解一下。

class为title的view组件是标题,我们希望它和下面的文字距离大一点,我们可以添加以下样式:

.title,.item-title{margin-bottom:0.9em;}

这里咋又冒出了一个em的单位,em是相对于当前字体尺寸而言的单位,如果当前你的字体大小为16px,那1em为16px;如果当前你的字体大小为18px,那1em为18px。

为了让class为item-title的组件,也就是列表的标题更加突出,我们可以给它左边加一个边框,

.item-title{border-left: 3px solid #c60;padding-left: 15px;
}

这样,小程序的一篇文章的样式看起来就算马马虎虎可以接受啦~为了便于大家查阅,我们也把盒子模型的三类属性整合在了一起

内边距属性
padding 在一个声明中设置所有内边距属性。
padding-top 设置元素的上内边距。
padding-right 设置元素的右内边距。
padding-bottom 设置元素的下内边距。
padding-left 设置元素的左内边距。
外边距属性
margin 在一个声明中设置所有外边距属性。
margin-top 设置元素的上外边距。
margin-right 设置元素的右外边距
margin-bottom 设置元素的下外边距。
margin-left 设置元素的左外边距。
边框属性
border 在一个声明中设置所有的边框属性。比如border:1px solid #ccc;
border-top 在一个声明中设置所有的上边框属性。
border-right 在一个声明中设置所有的右边框属性。
border-bottom 在一个声明中设置所有的下边框属性。
border-left 在一个声明中设置所有的左边框属性。
border-width 设置四条边框的宽度。
border-style 设置四条边框的样式。
border-color 设置四条边框的颜色。
border-radius 简写属性,设置所有四个 border-*-radius 属性。
box-shadow 向方框添加一个或多个阴影。

更多的设计样式,大家可以根据上面的技术文档,在开发者工具里像做实验一样的来测试学习。

小程序云开发(七):WXML与WXSS相关推荐

  1. 前端wxml取后台js变量值_微信小程序云开发教程WXML入门数据绑定

    同学们大家好,我是小伊同学,今天带领大家学习WXML部分一个重要的知识点,数据绑定. 简单来讲,数据绑定就是通过双重花括号将一个变量绑定到界面上. 首先,我们为什么要将变量绑定到页面上呢?因为在制作一 ...

  2. ❤️微信小程序 云开发 教程合集(视频+图文)免费❤️

    一.视频版 微信小程序云开发视频教程上线啦 二.图文版 (1)预备知识 1. 怎么注册开通个人微信小程序 2. 微信小程序云开发教程-互联网软件的运作模式 3.微信小程序云开发教程-云开发对微信小程序 ...

  3. 小程序云开发教程七:贴子的详情及评论功能

    我们先看看界面: 我们如果要实现评论功能, 先看一下总的数据结构: 那么需要什么参数呢? 参数如下 comment: 评论内容username: 用户名time: 评论时间userId: 用户idid ...

  4. 小程序云开发之消息推送功能

    小程序云开发之消息推送功能(图文) 一:新建项目 APPID获取方法:1.在微信公众平台上注册账号,选择小程序(也可以从服务号注册,前提你有一个服务号)注册后登录,登录时微信扫码验证一下 2.填写小程 ...

  5. 基于微信小程序云开发实现考研题库小程序项目(完整版)

    今天手把手的带大家实现一款答题类的题库小程序,如果着急的话,可以直接去看文末源码.下载与项目部署. 考研题库小程序云开发实战,完整版提供给大家学习.题库小程序,基于云开发的微信答题小程序,软件架构是微 ...

  6. 仿qq邮箱源码程序_巧用小程序·云开发实现邮件发送功能丨实战

    先看效果图: 通过上面的日志,可以看出我们是158开头的邮箱给250开头的邮箱发送邮件,下面是成功接收到的邮件. 准备工作 1.qq邮箱一个 2.开通你的qq邮箱的授权码(会具体讲解) 3.注册自己的 ...

  7. 微信小程序云开发不完全指北

    微信小程序云开发不完全指北 首先必须说明云开发的"云"并不是类似云玩家里的云的意思,而是微信小程序真的提供了云开发的接口以及一个简单的提供存储.数据库服务的虚拟后台(对于一些轻量小 ...

  8. 巧用小程序·云开发实现邮件发送功能丨实战

    先看效果图: 通过上面的日志,可以看出我们是158开头的邮箱给250开头的邮箱发送邮件,下面是成功接收到的邮件. 准备工作 1.qq邮箱一个 2.开通你的qq邮箱的授权码(会具体讲解) 3.注册自己的 ...

  9. 小程序云开发实战 - 口袋工具之“历史上的今天”

    前言 本项目是一个基于云开发的小程序. 本文选取项目中的一个页面 -- 历史上的今天 来做一个云开发的分享,会涉及云函数和云数据库. 由于是实战项目,关于小程序的基础知识请移步官方文档,本文不再赘述. ...

  10. ebs开发入门 oracle 知乎_微信小程序云开发入门第一篇---开发准备事项

    在开始本文的正式内容之前,先允许我做一个简单的自我介绍,我是一名嵌入式软件开发人员,目前在一家音视频处理芯片公司做linux系统下音视频开发的相关工作,算是嵌入式软件开发行业的老人了,如果您对嵌入式行 ...

最新文章

  1. beanutil 批量copy_Apache Commons Beanutils对象属性批量复制(pseudo-singleton)
  2. ubuntu 21.04对source.list.d目录的介绍(软件源、换源)
  3. Python爬虫的开发
  4. 2020牛客国庆集训派对day4 Emergency Evacuation
  5. 让初学者不迷茫的Java学习方法有很多?
  6. 实践案例 | 数据可视化报表应用
  7. Q77:怎么用Ray Tracing画仿射变换之后的图形
  8. C++中类的三种继承方式public(公有继承)、protected(保护继承)、private(私有继承)之间的差别(附思维导图)
  9. win7开机后桌面变成黑色,此window副本不是正版
  10. PhalApi2.x笔记
  11. python 3d绘图模块_在Python 3中绘制3D多边形
  12. 餐厅扫码点餐怎么弄的(餐厅二维码自助点餐系统开发制作价格)
  13. 这才是高效判断素数的正确打开方式
  14. 1093:计算多项式的值
  15. 独孤思维:赚钱项目的内卷和躺平
  16. 本经阴符七术——盛神法五龙
  17. 计算机毕业设计JAVA毕业生就业去向登记管理系统mybatis+源码+调试部署+系统+数据库+lw
  18. 海康威视错误代码说明(三)(错误代码:31~46)
  19. 双色球彩票java版
  20. 关于转正、定职、定级(本科、硕士分别谈)——写给工作不久就辞职的毕业生

热门文章

  1. 趣图 | 这大概就是人狠话不多
  2. System.currentTimeMillis的性能真有如此不堪吗?
  3. c语言方阵编程,C语言编程蛇形方阵问题
  4. C4DR19安装的时候进度条卡到一半就不动了|折腾了4小时-【已解决】
  5. 手机盾、FIDO间的较量
  6. ekrn 占用高内存
  7. 使用Cloud DB构建APP 快速入门 - Android篇
  8. blender基础笔记
  9. 使用phpstudy搭建网站
  10. 祖安服务器突然维护,新京报:警惕出口成脏的“祖安文化” 污染校园