news 2026/5/9 3:10:20

面向零基础初学者,从环境搭建到发布上线,手把手教你开发第一个微信小程序(第5章-WXSS入门)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
面向零基础初学者,从环境搭建到发布上线,手把手教你开发第一个微信小程序(第5章-WXSS入门)

5.1 WXSS是什么?

WXSS(WeiXin Style Sheets)是微信小程序的样式语言,类似于网页开发中的CSS。

WXSS vs CSS

对比CSSWXSS
选择器支持完整选择器支持大部分选择器
单位px, em, remrpx, px
布局flex, grid主要用flex

最大的区别:WXSS新增了rpx单位,专为适配不同屏幕尺寸设计。


5.2 rpx尺寸单位

rpx(responsive pixel)是微信小程序推出的响应式单位。

工作原理

  • 设计师通常以 iPhone 6 为基准设计(宽度750px)
  • 1rpx = 0.5px(在iPhone 6上)
  • 换算规则:750rpx = 屏幕宽度

换算对照表

设备屏幕宽度1rpx = ? px
iPhone 5320px0.5px
iPhone 6375px0.5px
iPhone X414px0.552px
iPad768px1px

使用建议

配图位置images/ch05/ch05_01_rpx_rule.png

  • 标注:750rpx = 屏幕宽度

什么时候用 rpx?

  • 容器宽度、间距、字体大小等大部分场景
  • 保持比例缩放

什么时候用 px?

  • 边框宽度(通常1px)
  • 非常精细的微调
/* 建议使用 rpx */.container{width:750rpx;/* 满屏宽度 */padding:20rpx;/* 内边距 */font-size:28rpx;/* 字体大小 */}/* 通常使用 px */.separator{height:1px;/* 边框用px */}

5.3 选择器

WXSS支持的选择器:

常用选择器

选择器示例说明
.class.container类选择器
#id#usernameID选择器(不推荐)
elementview标签选择器
element,elementview,text多元素选择器
.parent .child.card .title后代选择器
.parent > .child.list > .item子选择器

选择器优先级

同CSS,优先级由高到低:

!important > 行内样式 > #id > .class > element

示例

/* 标签选择器 */view{box-sizing:border-box;}/* 类选择器 */.container{padding:20rpx;}/* 后代选择器 */.card .title{font-size:32rpx;font-weight:bold;}/* 多元素选择 */page, view, text{font-family:-apple-system;}

5.4 Flex布局

Flex(弹性盒模型)是WXSS中最常用的布局方式。

基本概念

┌─────────────────────────────────────┐ │ flex container │ │ ┌─────┐ ┌─────┐ ┌─────┐ │ │ │item1│ │item2│ │item3│ │ │ └─────┘ └─────┘ └─────┘ │ └─────────────────────────────────────┘
  • display: flex- 开启弹性布局
  • flex-direction- 主轴方向
  • justify-content- 主轴对齐
  • align-items- 交叉轴对齐

常用属性

1. flex-direction - 主轴方向
.container{display:flex;flex-direction:row;/* 水平(默认) *//* flex-direction: column; 垂直 */}
2. justify-content - 主轴对齐
.container{display:flex;justify-content:flex-start;/* 左对齐(默认) *//* justify-content: center; 居中 *//* justify-content: flex-end; 右对齐 *//* justify-content: space-between; 两端对齐 *//* justify-content: space-around; 等距分布 */}
3. align-items - 交叉轴对齐
.container{display:flex;align-items:stretch;/* 拉伸(默认) *//* align-items: flex-start; 顶部对齐 *//* align-items: center; 居中对齐 *//* align-items: flex-end; 底部对齐 */}
4. flex-wrap - 换行
.container{display:flex;flex-wrap:nowrap;/* 不换行(默认) *//* flex-wrap: wrap; 换行 */}
5. flex - 份数分配
.box{flex:1;/* 平分剩余空间 */}.golden{flex:2;/* 占2份 */}.silver{flex:1;/* 占1份 */}/* golden 和 silver 的比例是 2:1 */

5.5 实战:居中布局

水平垂直居中

.center-box{display:flex;justify-content:center;/* 水平居中 */align-items:center;/* 垂直居中 */}### 底部固定按钮 ```css .fixed-bottom{position:fixed;bottom:0;left:0;right:0;padding:20rpx 30rpx;}

5.6 常用样式属性

文本样式

.text{font-size:28rpx;/* 字体大小 */color:#333333;/* 文字颜色 */font-weight:bold;/* 字体粗细 */text-align:center;/* 文本对齐 */line-height:1.5;/* 行高 */}

背景与边框

.box{background-color:#ffffff;/* 背景色 */border-radius:16rpx;/* 圆角 */border:1rpx solid #e0e0e0;/* 边框 */}

内边距与外边距

.box{padding:20rpx;/* 内边距(四周) */padding:20rpx 30rpx;/* 上下20rpx,左右30rpx */padding-top:20rpx;/* 单边设置 */margin:20rpx;/* 外边距(四周) */}
  • 标注:padding 和 margin 的区别

盒模型

┌─────────────────────────┐ │ margin │ │ ┌───────────────────┐ │ │ │ border │ │ │ │ ┌─────────────┐ │ │ │ │ │ padding │ │ │ │ │ │ ┌───────┐ │ │ │ │ │ │ │content│ │ │ │ │ │ │ └───────┘ │ │ │ │ │ └─────────────┘ │ │ │ └───────────────────┘ │ └─────────────────────────┘
/* 设置盒模型为 border-box */*{box-sizing:border-box;}

5.7 全局样式与局部样式

app.wxss - 全局样式

app.wxss中定义的样式,所有页面都生效

/* app.wxss */page{background-color:#f5f5f5;/* 所有页面背景色 */font-size:28rpx;/* 所有页面字体大小 */}

页面样式 - index.wxss

在单个页面的.wxss文件中定义的样式,只对该页面生效

/* pages/index/index.wxss */.container{padding:20rpx;}

样式覆盖

如果页面样式和全局样式冲突,页面样式会覆盖全局样式


5.8 实战:短信生成器样式

/* pages/index/index.wxss *//* 页面容器 */.container{min-height:100vh;background-color:#f5f5f5;padding:20rpx;}/* 卡片 */.card{background-color:#ffffff;border-radius:16rpx;padding:30rpx;margin-bottom:20rpx;}/* 类型标签容器 */.type-tabs{display:flex;flex-wrap:wrap;}/* 类型标签 */.type-tab{flex:1;min-width:45%;padding:20rpx;margin:10rpx;border-radius:12rpx;border:2rpx solid #e0e0e0;text-align:center;}.type-tab.active{border-color:#1890ff;background-color:#e6f7ff;}/* 输入框 */.input-field{width:100%;padding:20rpx;border:1rpx solid #d9d9d9;border-radius:8rpx;font-size:28rpx;}.input-field-placeholder{color:#bfbfbf;}/* 主按钮 */.btn-primary{width:100%;height:88rpx;background-color:#1890ff;color:#ffffff;border-radius:44rpx;font-size:32rpx;display:flex;align-items:center;justify-content:center;}`` > - 标注:各样式效果预览 --- ## 5.9 本章小结 ✅ 理解了WXSS与CSS的区别 ✅ 掌握了rpx响应式单位的使用 ✅ 学会了5种常用选择器 ✅ 掌握了Flex布局的6个核心属性 ✅ 理解了全局样式与局部样式的区别
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/9 3:06:31

GEO优化监控工具哪家适合企业品牌监测

随着生成式AI技术的快速普及,用户的搜索行为与信息获取路径正在发生显著的范式迁移。根据中国互联网络信息中心发布的《生成式人工智能应用发展报告(2025)》显示,截至2025年10月,我国生成式AI用户规模已达5.15亿。这一…

作者头像 李华
网站建设 2026/5/9 3:01:32

OpenClaw三层记忆系统:为AI助手构建可检索的长期知识库

1. 项目概述如果你和我一样,长期与各种AI助手打交道,无论是编程、写作还是日常任务规划,最头疼的问题之一就是“记忆”。每次对话都像是一次全新的邂逅,助手记不住你昨天提到的项目细节,也忘了上周讨论过的技术方案。这…

作者头像 李华
网站建设 2026/5/9 2:44:32

【第4章:信息系统架构】:系统集成项目管理工程师默写本

1. 信息系统架构是指体现信息系统相关的组件、关系以及系统的设计和演化原则的基本概念或特性。2. 架构的本质是决策,是在权衡方向、结构、关系以及原则各方面因素后进行的决策。3. 信息系统架构设计原则包括:坚持以人为本、坚持创新引领、坚持问题导向、…

作者头像 李华
网站建设 2026/5/9 2:39:58

第二篇:深入量化——Tushare数据处理与策略开发实战

在上一篇中,我们学会了如何用Tushare获取单只股票的数据并做基础可视化。但量化分析的核心,在于从数据中找规律、把规律变成策略、然后用数据验证策略的可行性。 今天我们更进一步,学习多股票数据获取、指标计算、策略构建和数据存储——这将…

作者头像 李华
网站建设 2026/5/9 2:38:56

天线设计:从基础原理到工程实践的全方位解析

1. 天线设计的魅力:从简单使命到无限创意天线,这个在射频信号链中首当其冲(或最后出场)的元件,其设计领域所展现出的活力与创造性思维,总是让我这个老工程师感到惊叹。我说的不是那种用于克服信号衰落、多径…

作者头像 李华
网站建设 2026/5/9 2:35:28

Product Hunt 每日热榜 | 2026-05-08

1. FlowMarket 标语:一个由人工智能代理构成的社交网络,用于创造企业间的交易。 介绍:FlowMarket 是一个由人工智能代理组成的网络,能够自动发现、匹配和生成B2B交易。你只需几分钟就能创建自己的代理,并让它全天候运…

作者头像 李华