微信小程序-----wxss模版样式

目录

前言

一、WXSS

1. 什么是 WXSS

2. WXSS 和 CSS 的关系

二、rpx

1. 什么是 rpx 尺寸单位

2. rpx 的实现原理

3. rpx 与 px 之间的单位换算

三、样式导入

1. 什么是样式导入

2. @import 的语法格式

四、全局样式和局部样式

1. 全局样式

2. 局部样式


前言

        上一期我们学习了wxml的模版语法,那么这一期我们开始学习新的知识点,wxss的模版样式,在此之前我们学习过了css,有了css的基础,那wxss就会很容易理解了,下面就开始本期的学习吧。

一、WXSS

1. 什么是 WXSS

WXSS (WeiXin Style Sheets)是一套样式语言,用于美化 WXML 的组件样式,类似于网页开发中的 CSS

2. WXSS CSS 的关系

WXSS 具有 CSS 大部分特性,同时,WXSS 还对 CSS 进行了扩充以及修改,以适应微信小程序的开发。

CSS 相比,WXSS 扩展的特性有:

  •  rpx 尺寸单位
  •  @import 样式导入

二、rpx

1. 什么是 rpx 尺寸单位

rpxresponsive pixel)是微信小程序独有的,用来解决屏适配的尺寸单位

2. rpx 的实现原理

rpx 的实现原理非常简单:鉴于不同设备屏幕的大小不同,为了实现屏幕的自动适配,rpx 把所有设备的屏幕,在宽度上等分为 750 (即:当前屏幕的总宽度为 750rpx)。

  • 较小的设备上,1rpx 所代表的宽度较小
  • 较大的设备上,1rpx 所代表的宽度较大

小程序在不同设备上运行的时候,会自动把 rpx 的样式单位换算成对应的像素单位来渲染,从而实现屏幕适

3. rpx px 之间的单位换算

iPhone6 上,屏幕宽度为375px,共有 750 个物理像素,等分为 750rpx。则:

750rpx = 375px = 750 物理像素

    1rpx = 0.5px  = 1物理像素

设备

rpx换算px (屏幕宽度/750)

px换算rpx (750/屏幕宽度)

iPhone5

1rpx = 0.42px

1px = 2.34rpx

iPhone6

1rpx = 0.5px

1px = 2rpx

iPhone6 Plus

1rpx = 0.552px

1px = 1.81rpx

官方建议:开发微信小程序时,设计师可以用 iPhone6 作为视觉稿的标准

开发举例:在 iPhone6 上如果要绘制100px20px的盒子,换算成rpx单位,宽高分别为 200rpx 40rpx 。

三、样式导入

1. 什么是样式导入

使用 WXSS 提供的 @import 语法,可以导入外联的样式表。

2. @import 的语法格式

@import 后跟需要导入的外联样式表的相对路径,用 ; 表示语句结束。示例如下:

wxml代码:

<view class="box">
  IKUN
</view>

 在外部我们创建一个common文件夹,然后创建一个all.css文件,并且写入以下样式:

.box{
  background-color: darkkhaki;
}

四、全局样式和局部样式

1. 全局样式

定义在 app.wxss 中的样式为全局样式,作用于每一个页面。

然后我们在与wxml同一个目录下的wxss文件写入以下代码样式:

@import '/common/all.css';
.box{
  font-size: 40px;
}

 结果展示:

2. 局部样式

页面的 .wxss 文件中定义的样式为局部样式,只作用于当前页面。

注意:

当局部样式和全局样式冲突时,根据 就近原则 ,局部样式会 覆盖 全局样式
当局部样式的 权重大于或等于 全局样式的权重时,才会覆盖全局的样式

下面看个示例:

wxml代码:

<view class="box">
  <view>ikun</view>
  <view>kk</view>
  <view>cxk</view>
</view>

然后我们在app.wxss写下以下样式:

.box{
  color: red;
  font-size:50px;
}

查看展示结果:

 再然后,我们回到与wxml文件同一个目录下的wxss文件当中,写下新的样式:

.box{
  color: blueviolet;
  font-size: 20px;
}

查看结果:

 这里我们可以看出原来在app.wxss设置的样式被覆盖了。

但如果我们在app.wxss添加以下的一个新的样式,然后再去查看结果:

.box view:nth-child(1){
  color:darkgreen;
}

 这里我们可以看到结果的第一行变为绿色的了,为什么呢?

 那是因为不满足局部样式的权重大于或等于全局样式的权重的条件,我们把鼠标放到这个样式中可以查看到权重,如下图所示,当前是app.wxss下的权重.

下图是,与wxml文件同一个目录下的wxss文件样式的权重,很显然,前者的权重(0,2,1)大于后者权重(0,1,0)。所以最终结果会根据app.wxss下的样式去展示出来。 

 

 想要获取更多的学习资源,可以点击以下链接查看。 黑马程序员web前端视频教程从入门到精通Web前端视频教程完整版_Web前端视频教程从入门到精通_黑马程序员 (itheima.com)

 以上就是本期的全部内容了,我们下次见!

分享一张壁纸:

03-16
### WXSS 的基本概念与使用方法 #### 什么是 WXSSWXSS微信小程序特有的样式表语言,其设计目标是为了让开发者能够更方便地构建响应式、跨设备兼容的用户界面。它基于 CSS 的语法规则,同时扩展了一些专属于微信小程序的功能特性[^1]。 --- #### 基本语法 WXSS 支持大部分标准的 CSS 属性和选择器,并在此基础上增加了几个重要的功能: 1. **rpx 单位** rpx 是一种自适应屏幕分辨率的单位,可以根据屏幕宽度自动调整大小。在 iPhone6 上,规定屏幕宽为 750rpx,则每 1rpx 等于物理像素的 0.5px。 2. **@import 规则** 使用 `@import` 关键字可以导入外部的 WXSS 文件,从而实现样式的模块化管理。例如: ```css @import 'common.wxss'; ``` 3. **内联样式** 内联样式可以直接写入 WXML 文件中的组件属性中,类似于 HTML 中的方式。例如: ```html <!-- index.wxml --> <view style="color: red; font-size: 48rpx;"></view> ``` 这种方式适用于简单的动态样式需求[^2]。 --- #### 图片资源处理 需要注意的是,本地图片资源无法直接通过 WXSS 加载。如果尝试加载本地路径的图片(如 `.png`),可能会遇到如下错误提示: ``` pages/def/def.wxss 中的本地资源图片无法通过 WXSS 获取。 ``` 解决办法有三种: 1. 将图片上传到网络服务器并使用绝对 URL 地址; 2. 转换图片为 Base64 编码字符串嵌入代码; 3. 使用 `<image>` 组件替代背景图设置[^3]。 示例代码: ```css /* 错误示范 */ .nav { background: url('../../images/header-bg.png'); } /* 替代方案:Base64编码 */ .nav { background: url('data:image/png;base64,iVBORw0KGgoAAA...'); } ``` --- #### SCSS 预处理器支持 为了提升开发效率,微信小程序还允许使用 SCSS 来编译生成 WXSS 文件。这种方式可以让开发者利用变量、混合宏等功能简化复杂样式定义过程[^4]。 配置步骤如下: 1. 安装必要的工具链(如 Node.js 和 Webpack 插件); 2. 创建以 `.scss` 结尾的新文件用于书写源代码; 3. 设置自动化构建流程将最终产物输出至对应目录下的 `.wxss` 文件中。 --- ### 示例代码片段 以下是结合上述知识点的一个简单例子展示如何综合运用这些技术要点来美化页面布局结构。 WXML 文件内容: ```html <view class="container"> <text>欢迎来到我的小程序</text> </view> ``` SCSS 文件内容 (`styles.scss`): ```scss $primary-color: #ff5722; .container { display: flex; justify-content: center; align-items: center; height: 100vh; background-image: linear-gradient(to bottom, $primary-color, white); text { color: white; font-size: 48rpx; } } ``` 经过编译后的 WXSS 输出效果大致如下所示: ```css .container { display: flex; justify-content: center; align-items: center; height: 100vh; background-image: linear-gradient(to bottom, #ff5722, white); } .container text { color: white; font-size: 48rpx; } ``` ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Fitz&

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值