当前位置: 首页 > news >正文

微信小程序开发——第三章:WXML 与 WXSS —— 小程序页面结构与样式设计

目录

第3章:WXML 与 WXSS —— 小程序页面结构与样式设计

3.1 WXML 概述

什么是 WXML

基本语法示例

3.2 常用 WXML 标签

示例:创建一个简单信息展示页

3.3 数据绑定(Data Binding)

单向数据绑定

属性绑定

3.4 条件渲染

3.5 列表渲染(循环)

3.6 模板(template)

定义模板

使用模板

3.7 WXSS 概述

什么是 WXSS

WXSS 与 CSS 的区别

3.8 rpx 单位(响应式单位)

示例:

3.9 常用 WXSS 样式属性

3.10 Flex 弹性布局(重点)

示例:水平居中布局

示例:横向排列

3.11 样式继承与作用范围

3.12 页面案例:个人信息展示页

3.13 本章小结

学完本章后,你应当能够...

第3章:WXML 与 WXSS —— 小程序页面结构与样式设计

这一章相当于学习网页开发中的 HTML + CSS
是构建小程序界面的核心基础
掌握好这一章,你就能独立设计出整洁、美观、规范的小程序页面。


3.1 WXML 概述

什么是 WXML

WXML(WeiXin Markup Language) 是微信小程序的标记语言,
用于描述页面的结构和内容。
它的语法与 HTML 类似,但更简洁、语义更清晰。

WXML 主要作用:

  • 构建页面的结构(布局层次)

  • 使用数据绑定显示动态数据

  • 使用条件和循环指令渲染不同内容


基本语法示例

<view class="container"><text>Hello 小程序</text><button bindtap="onClick">点击我</button>
</view>

view 相当于 HTML 中的 div,是小程序的通用容器标签。

bindtap 表示点击事件绑定,点击时会触发对应的函数。


3.2 常用 WXML 标签

标签作用示例
<view>页面容器,用于布局<view>内容</view>
<text>文本显示<text>你好</text>
<image>显示图片<image src="xxx.png"/>
<button>按钮<button>提交</button>
<input>输入框<input placeholder="请输入内容"/>
<scroll-view>可滚动区域<scroll-view scroll-y="true">内容</scroll-view>
<navigator>页面跳转<navigator url="/pages/detail/detail">详情</navigator>

示例:创建一个简单信息展示页

<view class="user-info"><image class="avatar" src="/images/avatar.png"></image><text class="username">古文杰</text><button bindtap="follow">关注我</button>
</view>


3.3 数据绑定(Data Binding)

WXML 支持数据与逻辑层(JS文件)之间的动态绑定

单向数据绑定

<text>{{username}}</text>

Page({data: {username: '顾欢'}
})

当你调用 this.setData() 修改数据时,页面会自动刷新。

this.setData({username: 'WegJ Go'
})


属性绑定

可以绑定变量到属性值上:

<image src="{{imgUrl}}"></image>

Page({data: {imgUrl: '/images/photo.jpg'}
})


3.4 条件渲染

使用 wx:ifwx:elifwx:else 控制内容是否显示。

<view wx:if="{{isLogin}}">欢迎回来!</view>
<view wx:else>请先登录</view>

Page({data: {isLogin: false}
})


3.5 列表渲染(循环)

使用 wx:for 渲染数组列表:

<view wx:for="{{students}}" wx:key="id">{{index + 1}}. {{item.name}}
</view>

Page({data: {students: [{ id: 1, name: '啊' },{ id: 2, name: '我' },{ id: 3, name: '呃' }]}
})

wx:key 是每个元素的唯一标识,建议写上。


3.6 模板(template)

当多个页面使用相同结构时,可以抽取成模板文件。

定义模板

<!-- template/user.wxml -->
<template name="userCard"><view class="user-card"><text>{{name}}</text><text>{{email}}</text></view>
</template>

使用模板

<import src="/template/user.wxml"/>
<template is="userCard" data="{{...user}}"/>

Page({data: {user: { name: 'abc', email: 'wegj@example.com' }}
})


3.7 WXSS 概述

什么是 WXSS

WXSS(WeiXin Style Sheets) 是小程序的样式语言,
用于描述页面的视觉样式,与 CSS 相似,但有增强特性。


WXSS 与 CSS 的区别

对比点WXSSCSS
尺寸单位rpx(自适应)px
全局样式app.wxss不区分全局或局部
局部样式页面独立 .wxss 文件通过选择器
支持性无伪类、无动画支持限制完整CSS标准

3.8 rpx 单位(响应式单位)

rpx 是小程序独有的单位,表示“响应像素”,会随设备宽度自适应。
在 iPhone6(宽度750px)上:

1rpx = 1px

在更宽的设备上,rpx 会自动按比例放大。

推荐:设计稿以 750px 为标准(常见的UI尺寸)

示例:

.image {width: 200rpx;height: 200rpx;border-radius: 100rpx;
}

这会在不同屏幕上自动等比例缩放。


3.9 常用 WXSS 样式属性

分类常用属性
布局display, flex, justify-content, align-items
字体font-size, color, font-weight
背景background-color, background-image
边框border, border-radius
间距margin, padding
定位position, top, left, z-index

3.10 Flex 弹性布局(重点)

小程序强烈推荐使用 Flex 布局。

示例:水平居中布局

<view class="container"><text>居中内容</text>
</view>

.container {display: flex;justify-content: center;align-items: center;height: 400rpx;background-color: #f2f2f2;
}

示例:横向排列

<view class="row"><view class="box red"></view><view class="box blue"></view><view class="box green"></view>
</view>

.row {display: flex;flex-direction: row;
}
.box {width: 100rpx;height: 100rpx;margin: 10rpx;
}
.red { background-color: red; }
.blue { background-color: blue; }
.green { background-color: green; }


3.11 样式继承与作用范围

  • 全局样式: app.wxss
    所有页面都会生效。

  • 局部样式: 每个页面的 .wxss 文件
    仅对当前页面生效。

局部样式会覆盖全局样式中相同选择器的样式。


3.12 页面案例:个人信息展示页

<!-- pages/profile/profile.wxml -->
<view class="profile"><image class="avatar" src="/images/avatar.png"></image><text class="name">{{user.name}}</text><text class="major">{{user.major}}</text><button bindtap="showInfo">查看详情</button>
</view>

/* pages/profile/profile.wxss */
.profile {display: flex;flex-direction: column;align-items: center;margin-top: 100rpx;
}
.avatar {width: 200rpx;height: 200rpx;border-radius: 100rpx;
}
.name {font-size: 36rpx;margin-top: 20rpx;
}
.major {font-size: 28rpx;color: #888;
}
button {margin-top: 30rpx;background-color: #1aad19;color: white;
}

 
// pages/profile/profile.js
Page({data: {user: {name: 'wenjgo',major: '软件工程'}},showInfo() {wx.showModal({title: '个人简介',content: 'aaa,软件工程专业学生,热爱编程与AI。',showCancel: false})}
})


3.13 本章小结

内容要点
WXML小程序的结构语言,类似HTML
WXSS小程序的样式语言,类似CSS
rpx单位自适应不同设备屏幕宽度
数据绑定通过 {{}} 实现动态显示
条件与循环使用 wx:ifwx:for 实现逻辑控制
Flex布局小程序中最推荐的布局方式

学完本章后,你应当能够....

  1. 使用 WXML 设计页面结构

  2. 使用 WXSS 控制页面样式与布局

  3. 掌握 rpx 响应式设计

  4. 实现简单的数据绑定、条件与循环渲染

http://www.dtcms.com/a/576852.html

相关文章:

  • Pytorch 内存布局优化:Contiguous Memory
  • pytorch-张量
  • MYSQL CDC 同步到 PAIMON
  • MATLAB实现高光谱分类算法
  • Linux:WSL常用指令总结
  • Git 最近提交中不小心包含了多余的文件怎么办
  • T100打破远程孤岛-轻松实现异地组网-P2P打洞+UDP NAT 穿透
  • 建设网站人员名单企业网站建设报价单
  • 联通研究院:基于‘多模态SCA+全周期协同’的中间件开源风险治理实践
  • 五子棋项目Alpha-Beta剪枝与MCTS+神经网络实现人机对弈算法对比报告
  • 测试题-5
  • 商洛免费做网站公司网站设计策划案
  • Java 项目 HTTP+WebSocket 统一权限控制实战
  • Tomcat日志配置与优化指南
  • 技术演进中的开发沉思-174 java-EJB:分布式通信
  • HarmonyOS实战项目:AI健康助手(影像识别与健康分析)
  • 利用 AWS Lambda 与 EventBridge 优化低频 Java 作业的云计算成本
  • 工业和信息化部网站备案管理系统公司网站维护怎么维护
  • 深入理解 Spring Boot 中的 Redis 缓存集成:从基础配置到高可用实践
  • 辽宁网站建站优化公司怎么在网上做装修网站
  • 界面控件Telerik UI for WPF 2025 Q3亮点 - 集成AI编码助手
  • 拦截adb install/uninstall安装 - 安装流程分析
  • 【小技巧】PyCharm建立项目,VScode+CodeX+WindowsPowerShell开发Python pyQT6
  • DevExpress WPF中文教程:Data Grid - 如何使用虚拟源?(五)
  • AI SQL助手本地搭建(附源码)
  • Zabbix企业级分布式监控系统(下)
  • 『Linux升级路』解析环境变量
  • 浏览器能正常访问URL获取JSON,但是pycharm里调不通
  • AI代码开发宝库系列:PDF文档解析MinerU
  • 校园招聘seo行业网