您现在的位置是:网站首页> 编程资料编程资料
详解利用css3的var()实现运行时改变scss的变量值uni-app中使用scss的示例代码scss使用mixin不生效(浏览器无法编译出来)的解决方法手机端用rem+scss做适配的详解前端编码规范(4)—— CSS 和 Sass (SCSS) 开发规范CSS3 真的会替代 SCSS 吗
2023-10-16
248人已围观
简介 这篇文章主要介绍了详解利用css3的var()实现运行时改变scss的变量值,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
var()介绍与使用
详情(MDN) IE无效,其余主流浏览器有效
var()使用
只能在{}内声明,作用范围由{}的选择器决定
body{ --name:value;//body内有效 } .test{ attr: var(--name,defaultValue) //当--name不存在时,使用defaultValue var(--name):#369;//错误使用方式 } CSS中原生的变量定义语法是:–*,变量使用语法是:var(–*),其中*表示我们的变量名称。
但是,不能包含$,[,^,(,%等字符,普通字符局限在只要是“数字[0-9]”“字母[a-zA-Z]”“下划线_”和“短横线-”这些组合,但是可以是中文,日文或者韩文。
运行时改变scss变量值
这个方法并不是能直接改变scsss变量的值,但是能做到一样的效果,对于需要一个变量控制多个属性的更为有效简洁
单变量控制单条属性的就没必要用了,这方法就是修改style属性而已,单对单和你之间在style写那条属性是一样的
简单来说就是将scss的变量交由css变量控制
$colors: ( primary: #FFBB00, secondary: #0969A2 ); Selector1{ @each $name, $color in $colors { --color-#{$name}: $color; } } :root { --color-primary: #FFBB00; --color-secondary: #0969A2; } Selector{ color:var(--color-primary); } @function color($color-name) { @return var(--color-#{$color-name}); } body { color: color(primary); //使用 } body { color: var(--color-primary); //这样就可以被js设置了 } js设置css变量,即设置运行scss变量
domObject.style.setProperty(name,value);//name为css变量名 e.g: --color-primary
至此完成了scss的运行时改变变量值,具体运用情景我也不太清楚,只是我遇到了。
我的运用情景:
自定义组件需要暴露出一些样式属性给使用者 自由调整 ,类似主题,而我又不想用字符串拼接的方式去完成,太浪费了,每次改完一个值都得把整个style给重写一遍,而且这涉及到了频繁修改dom不符合vue的思想,而且直接用css写太繁琐了。
所以我采用scss来写样式,scss嵌套真好用,less的不支持属性再嵌套,用得很不爽,没scss简洁。
由于scss是预编译的,无法在运行时改变变量值,而我又需要去改变,所以去google了,得到一个满意的解决方案 ->原理(English)
特别注意
在单文件组件(.vue)中若是使用了scoped 那么:root、:body等选择器的效果并不会如同你所预期的
[data-v-1374924e]:root { --test:100px; } 像这种的,变量–test 根本找不到,理由是并没有这个root,vue组件scoped的特性,只在本组件有效,但组件又没有完整的document,即组件内部没有root
所以在vue文件中,仔细思考css变量声明的选择器范围,避免变量无效
到此这篇关于详解利用css3的var()实现运行时改变scss的变量值的文章就介绍到这了,更多相关css3改变scss的变量值内容请搜索以前的文章或继续浏览下面的相关文章,希望大家以后多多支持!
相关内容
- css圆形镂空(优惠券背景图)的实现CSS 使用radial-gradient 实现优惠券样式使用css创建一个优惠券的方法利用css3径向渐变做一张优惠券的示例CSS实现优惠券边沿打孔效果
- 纯CSS实现页面中的列表收拉效果让CSS flex布局最后一行列表左对齐的N种方法(小结)CSS字体、文本、列表属性详细介绍CSS 有序或者无序列表的前面的标记 list-style-type 属性的实现css中有序无序列表项list样式设置方法CSS如何设置列表样式属性(看这篇文章就够用了)css列表滑动防止被底部遮住和适配屏幕长一点的机型处理
- 从一次项目重构说起CSS3自定义变量在项目的使用方法css3中transform属性实现的4种功能详解CSS3.0(Cascading Style Sheet) 层叠级联样式表纯CSS3实现div按照顺序出入效果CSS3实现列表无限滚动/轮播效果css3 利用transform-origin 实现圆点分布在大圆上布局及旋转特效CSS3实现的侧滑菜单CSS3实现的3D隧道效果用CSS3画一个爱心css3 实现文字闪烁效果的三种方式示例代码六种css3实现的边框过渡效果
- 纯 CSS 实现拖拽效果的代码纯CSS实现左右拖拽改变布局大小
- CSS3 filter(滤镜)实现网页灰色或者黑色模式的示例代码css3 filter属性的使用简介CSS3 filter(滤镜)实现网页灰色或者黑色模式的代码css中filter属性和backdrop-filter的应用与区别详解详解CSS3 filter:drop-shadow滤镜与box-shadow区别与应用使用css的filter写鼠标滑过效果的实现示例CSS filter 有什么神奇用途
- 女神的斗士 非R玩家攻略_手机游戏_游戏攻略_
- 偶滴神TD攻略 全三星通关教程_手机游戏_游戏攻略_
- 天天酷跑审判女王角色介绍_手机游戏_游戏攻略_
- 永恒战士3 远古巨人boss攻略_手机游戏_游戏攻略_
- 天天酷跑PVP新宠牛仔柯柯获得方法_手机游戏_游戏攻略_
