WXSS模板样式-全局样式和局部样式

简介: **WXSS**是微信小程序的样式表语言,类似于CSS,但做了扩展和修改。它引入了**rpx**作为尺寸单位,用于屏幕适配,1rpx在不同设备上的宽度不同,确保了自适应效果。此外,WXSS支持**@import**语法导入外部样式表,便于代码复用。全局样式定义在`app.wxss`中,作用于每个页面,而局部样式在页面的`.wxss`文件中,优先级高于全局样式,当两者冲突且权重相等时,局部样式会覆盖全局样式。

一、WXSS


1.WXSS


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


2.WXSS和CSS的关系


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


(1)rpx尺寸单位


(2)@import样式导入


二、rpx


1.rpx


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


2.rpx的实现原理


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


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


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


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



官方建议:在开发小程序时,可以使用iPhone6视觉稿的标准


二、样式导入


1.样式导入


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


2.@import 的语法格式


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


例如:


新建一个common文件夹,然后再新建一个common.wxss文件



然后将common.wxss导入到index.wxss



在index.js文件中:


// index.js
Page({
  //页面的初始数据
  data: {
    arr1:[1,2,3,4,5],
    userList:[
      {id:1,name:'Candy'},
      {id:2,name:'Lucy'},
      {id:3,name:'Rocky'}
    ]
  }
})


在index.wxml文件中:


<!--index.wxml-->
<view wx:for="{{userList}}" wx:key="id" class="username">{{item.name}}</view>


调试结果为:




我们可以看到页面中显示的数据以及被渲染成红色,说明common.wxss导入成功


三、全局样式


1.全局样式


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


/**app.wxss**/
.container {
  height: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: space-between;
  padding: 200rpx 0;
  box-sizing: border-box;
} 
 
view{
  padding: 10rpx;
  margin: 10rpx;
  background-color: lightskyblue;
}


我们在pages中新建一个test文件夹


{
  "pages": [
    "pages/test/test",
    "pages/index/index",
    "pages/logs/logs"
  ],
  "window": {
    "navigationBarTextStyle": "black",
    "navigationBarTitleText": "Weixin",
    "navigationBarBackgroundColor": "#ffffff"
  },
  "style": "v2",
  "componentFramework": "glass-easel",
  "sitemapLocation": "sitemap.json",
  "lazyCodeLoading": "requiredComponents"
}


在test.wxml中:


<!--pages/test/test.wxml-->
<view>123</view>
<view>123</view>


调试后可以看到:



此时将index页面调至前面保存后我们可以看到背景色也变成了蓝色




说明在app.wxss中的样式作用于每一个页面


但是如果个别页面需要特殊化,此时就需要用到局部样式


2.局部样式


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


例如:在test.wxss中:


/* pages/test/test.wxss */
view{
  color: white;
}


调试后可以看到文本颜色变成了白色:



注意:(1)当局部样式和全局样式冲突时,根据就近原则,局部样式会覆盖全局样式

         

         (2)当局部样式的权重大于或等于全局样式的权重时,才会覆盖全局的样式

当我们把鼠标放在view上:



我们发现其权重为(0,0,1)


当我们把鼠标放在view:nth-child上:



我们发现其权重为(0,1,1),大于(0,0,1)


此时第一个文本的背景颜色变成了粉色:



所以当局部样式的权重大于或等于全局样式的权重时,会覆盖全局的样式

目录
相关文章
|
编解码 移动开发 流计算
【开源视频联动物联网平台】流媒体传输协议HLS,FLV的功能和特点
【开源视频联动物联网平台】流媒体传输协议HLS,FLV的功能和特点
415 2
|
人工智能 达摩院 自然语言处理
超好用的开源模型平台,ModelScope阿里达摩院
超好用的开源模型平台,ModelScope阿里达摩院
1188 1
|
7月前
|
定位技术 API
HarmonyOS实战:高德地图定位功能完整流程详解
本文详细介绍了在鸿蒙系统中使用高德地图实现完整定位功能的流程。首先分析需求,包括权限申请、检查GPS状态、单次或多次定位选择以及定位失败处理。接着通过代码实现具体步骤:添加定位权限、申请用户权限、检查GPS开关状态、启动定位服务,并处理定位成功或失败的情况。若定位失败,可尝试获取历史定位信息或使用默认位置。最后总结指出,虽然定位功能基础简单,但完整的流程与细节处理才是关键。建议读者动手实践,掌握高德地图定位功能的使用。
770 15
|
存储 关系型数据库 MySQL
Mysql(4)—数据库索引
数据库索引是用于提高数据检索效率的数据结构,类似于书籍中的索引。它允许用户快速找到数据,而无需扫描整个表。MySQL中的索引可以显著提升查询速度,使数据库操作更加高效。索引的发展经历了从无索引、简单索引到B-树、哈希索引、位图索引、全文索引等多个阶段。
241 3
Mysql(4)—数据库索引
|
消息中间件 存储
消息队列的挑战与解决方案:丢失、重复与积压问题
消息队列(MQ)在分布式系统中扮演着重要的角色,用于解耦服务、异步处理任务和提高系统吞吐量。然而,在使用消息队列时,我们可能会遇到消息丢失、重复和积压等问题。本文将探讨这些问题的成因以及相应的解决方案。
460 1
|
存储 消息中间件 大数据
Python里for循环要遍历的数据很多很大怎么办?
遇到大数据量问题时,重要的是确定最优解决方案,这取决于数据的来源、性质以及所需的处理方式。分析数据传输、存储与处理的瓶颈是提升性能的关键。通过结合上述的技巧和方法,可以在内存和性能方面找到合适的平衡点来处理大规模数据集。
337 0
|
存储 XML JSON
【TCP】核心机制:延时应答、捎带应答和面向字节流
【TCP】核心机制:延时应答、捎带应答和面向字节流
243 2
|
存储 SQL 分布式计算
揭秘Delta Lake:如何以史诗级时间旅行能力,驾驭数据表的无限版本,让数据科学家直呼过瘾!
【8月更文挑战第27天】Delta Lake是一种开源的大数据存储层,它通过事务日志与快照机制管理表格的多版本,支持数据的时间旅行功能。其核心是维护一个详细的事务日志记录所有表操作,并通过快照保存特定时间点的表状态。用户可通过指定时间戳或版本号查询历史版本数据,系统默认保留30天的历史记录并支持自定义设置。借助Delta Lake,数据团队能高效地处理数据变更和审计需求。
290 0
|
缓存 NoSQL 物联网
这些年背过的面试题——个人项目篇
本文是技术人面试系列个人项目篇,作者总结了一些自己的实战项目经验,一文带你详细了解,欢迎收藏!
|
弹性计算 关系型数据库 MySQL
阿里云ECS如何部署并运行一个JavaWeb项目
阿里云ECS如何部署并运行一个JavaWeb项目
276 0