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)

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

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

  • 20
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值