小程序中使用css var变量(使js可以动态设置css样式属性)


Posted in Javascript onMarch 31, 2020

使用sass,stylus可以很方便的使用变量来做样式设计,其实css也同样可以定义变量,在小程序中由于原生不支持动态css语法,so,可以使用css变量来使用开发工作变简单。

基本用法

基础用法

<!--web开发中顶层变量的key名是:root,小程序使用page-->
page { 
 --main-bg-color: brown;
}

.one {
 color: white;
 background-color: var(--main-bg-color);
 margin: 10px;
}

.two {
 color: white;
 background-color: black;
 margin: 10px;
}
.three {
 color: white;
 background-color: var(--main-bg-color);
}

提升用法

<div class="one">
 <div class="two">
  <div class="three">
  </div>
  <div class="four">
  </div>
 <div>
</div>
.two { --test: 10px; }
.three { --test: 2em; }

在这个例子中,var(--test)的结果是:

  • class="two" 对应的节点: 10px
  • class="three" 对应的节点: element: 2em
  • class="four" 对应的节点: 10px (继承自父级.two)
  • class="one" 对应的节点: 无效值, 即此属性值为未被自定义css变量覆盖的默认值

上述是一些基本概念,大致说明css变量的使用方法,注意在web开发中,我们使用:root来设置顶层变量,更多详细说明参考MDN的文档

妙用css变量

开发中经常遇到的问题是,css的数据是写死的,不能够和js变量直通,即有些数据使用动态变化的,但css用不了。对了,可以使用css变量试试呀

js

// 在js中设置css变量
let myStyle = `
--bg-color:red; 
--border-radius:50%;
--wid:200px;
--hgt:200px;
`

let chageStyle = `
--bg-color:red; 
--border-radius:50%;
--wid:300px;
--hgt:300px;
`
Page({
 data: {
  viewData: {
   style: myStyle
  }
 },
 onLoad(){
  setTimeout(() => {
   this.setData({'viewData.style': chageStyle})
  }, 2000);
 }
})

wxml

<!--将css变量(js中设置的那些)赋值给style-->
<view class="container">
 <view class="my-view" style="{{viewData.style}}">
  <image src="/images/abc.png" mode="widthFix"/>
 </view>
</view>

wxss

/* 使用var */
.my-view{
 width: var(--wid);
 height: var(--hgt);
 border-radius: var(--border-radius);
 padding: 10px;
 box-sizing: border-box;
 background-color: var(--bg-color);
 transition: all 0.3s ease-in;
}

.my-view image{
 width: 100%;
 height: 100%;
 border-radius: var(--border-radius);
}

通过css变量就可以动态设置css的属性值

代码片段

https://developers.weixin.qq.com/s/aWfUGCmG7Efe

github

小程序演示

小程序中使用css var变量(使js可以动态设置css样式属性)

到此这篇关于小程序中使用css var变量的文章就介绍到这了,更多相关小程序使用css var变量内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Javascript 相关文章推荐
JavaScript 学习笔记(十六) js事件
Feb 01 Javascript
JavaScript高级程序设计 XML、Ajax 学习笔记
Sep 10 Javascript
js Dialog 实践分享
Oct 22 Javascript
javascript object array方法使用详解
Dec 03 Javascript
js截取字符串的两种方法及区别详解
Nov 05 Javascript
JavaScript中的对象序列化介绍
Dec 30 Javascript
简介alert()与console.log()的不同
Aug 26 Javascript
jQuery仅用3行代码实现的显示与隐藏功能完整实例
Oct 08 Javascript
Vue内部渲染视图的方法
Sep 02 Javascript
JavaScript 闭包的使用场景
Sep 17 Javascript
uniapp微信小程序:key失效的解决方法
Jan 20 Javascript
js实现验证码干扰(动态)
Feb 23 Javascript
功能完善的小程序日历组件的实现
Mar 31 #Javascript
小程序双头slider选择器的实现示例
Mar 31 #Javascript
JavaScript实现电灯开关小案例
Mar 30 #Javascript
javascript实现计算器功能
Mar 30 #Javascript
详解Webpack抽离第三方类库以及common解决方案
Mar 30 #Javascript
记一次react前端项目打包优化的方法
Mar 30 #Javascript
12 种使用Vue 的最佳做法
Mar 30 #Javascript
You might like
php邮件发送,php发送邮件的类
2011/03/24 PHP
对于PHP 5.4 你必须要知道的
2013/08/07 PHP
PHP启动windows应用程序、执行bat批处理、执行cmd命令的方法(exec、system函数详解)
2014/10/20 PHP
PHP+Apache+Mysql环境搭建教程
2016/08/01 PHP
深入理解 PHP7 中全新的 zval 容器和引用计数机制
2018/10/15 PHP
Array.prototype.concat不是通用方法反驳[译]
2012/09/20 Javascript
JS将制定内容复制到剪切板示例代码
2014/02/11 Javascript
Javascript变量的作用域和作用域链详解
2015/04/02 Javascript
举例简介AngularJS的内部语言环境
2015/06/17 Javascript
JS模拟实现Select效果代码
2015/09/24 Javascript
解决JavaScript数字精度丢失问题的方法
2015/12/03 Javascript
HTML5游戏引擎LTweenLite实现的超帅动画效果(附demo源码下载)
2016/01/26 Javascript
jQuery向父辈遍历的简单方法
2016/09/18 Javascript
Angular实现一个简单的多选复选框的弹出框指令实例
2017/04/25 Javascript
详解vue-router2.0动态路由获取参数
2017/06/14 Javascript
Node批量爬取头条视频并保存方法
2018/09/20 Javascript
layer更改皮肤的实现方法
2019/09/11 Javascript
Element Popover 弹出框的使用示例
2020/07/26 Javascript
[59:30]VG vs LGD 2019国际邀请赛淘汰赛 胜者组 BO3 第二场 8.22
2019/09/05 DOTA
浅谈Python由__dict__和dir()引发的一些思考
2017/10/30 Python
Python单元测试unittest的具体使用示例
2018/12/17 Python
Python3.5迭代器与生成器用法实例分析
2019/04/30 Python
Python imread、newaxis用法详解
2019/11/04 Python
python通过移动端访问查看电脑界面
2020/01/06 Python
Django 如何使用日期时间选择器规范用户的时间输入示例代码详解
2020/05/22 Python
python 基于wx实现音乐播放
2020/11/24 Python
CSS3中的注音对齐属性ruby-align用法指南
2016/07/01 HTML / CSS
科颜氏美国官网:Kiehl’s美国
2017/01/31 全球购物
英国版MAC彩妆品牌:Illamasqua
2018/04/18 全球购物
教育局长自荐信范文
2013/12/22 职场文书
运动会800米加油稿
2014/02/22 职场文书
投标人廉洁自律承诺书
2014/05/26 职场文书
工作检讨书500字
2014/10/19 职场文书
2014年团支部工作总结
2014/11/17 职场文书
Python上下文管理器Content Manager
2021/06/26 Python
深入理解go缓存库freecache的使用
2022/02/15 Golang