CSS3中var()的使用是什么,运行时怎样改变scss变量值
Admin 2022-07-04 群英技术资讯 936 次浏览
这篇文章主要讲解了“CSS3中var()的使用是什么,运行时怎样改变scss变量值”,文中的讲解内容简单、清晰、详细,对大家学习或是工作可能会有一定的帮助,希望大家阅读完这篇文章能有所收获。下面就请大家跟着小编的思路一起来学习一下吧。详情(MDN) IE无效,其余主流浏览器有效
只能在{}内声明,作用范围由{}的选择器决定
<!-- 声明 -->
body{
--name:value;//body内有效
}
<!-- 使用 -->
.test{
attr: var(--name,defaultValue) //当--name不存在时,使用defaultValue
var(--name):#369;//错误使用方式
}
CSS中原生的变量定义语法是:–*,变量使用语法是:var(–*),其中*表示我们的变量名称。
但是,不能包含$,[,^,(,%等字符,普通字符局限在只要是“数字[0-9]”“字母[a-zA-Z]”“下划线_”和“短横线-”这些组合,但是可以是中文,日文或者韩文。
这个方法并不是能直接改变scsss变量的值,但是能做到一样的效果,对于需要一个变量控制多个属性的更为有效简洁
单变量控制单条属性的就没必要用了,这方法就是修改style属性而已,单对单和你之间在style写那条属性是一样的
原理(English)
简单来说就是将scss的变量交由css变量控制
$colors: (
primary: #FFBB00,
secondary: #0969A2
);
Selector1{
@each $name, $color in $colors {
--color-#{$name}: $color;
}
}
<!-- Selector1的生成效果 -->
:root {
--color-primary: #FFBB00;
--color-secondary: #0969A2;
}
<!-- 使用方式一 直接使用css变量 -->
Selector{
color:var(--color-primary);
}
<!-- 使用方式二 利用scss的函数,以符合scss语法 推荐 -->
@function color($color-name) {
@return var(--color-#{$color-name});
}
body {
color: color(primary); //使用
}
<!-- body生成效果 -->
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变量声明的选择器范围,避免变量无效
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
写法:1、“rgba(红色,绿色,蓝色,透明度)”;rgba()函数通过红绿蓝三色叠加来生成各种颜色并控制颜色的透明度;2、“hsla(色相,饱和度,亮度,透明度)”;hsla()函数通过色相、饱和度和亮度来定义颜色并控制颜色的透明度。
这篇文章主要介绍了吃透移动端 1px的具体用法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
在实际的项目中,滚动条滚动效果还是比较常见的,这种效果的好处就是能让HTML页面更简洁美观,但是如果在同个页面做多个滚动条效果的,那么滚动条隐藏效果会比较好,那么具他要怎样做隐藏滚动条被?下面给大家分享CSS实现隐藏滚动条的两种方法。
这篇文章主要介绍了h5页面背景图很长要有滚动条滑动效果的实现,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
css3中rotate3d方法怎么用rotate3d() CSS 函数定义一个变换,它将元素围绕固定轴移动而不使其变形。运动量由指定的角度定义; 如果为正,运动将为顺时针,如果为负,则为逆时针。在
成为群英会员,开启智能安全云计算之旅
立即注册关注或联系群英网络
7x24小时售前:400-678-4567
7x24小时售后:0668-2555666
24小时QQ客服
群英微信公众号
CNNIC域名投诉举报处理平台
服务电话:010-58813000
服务邮箱:service@cnnic.cn
投诉与建议:0668-2555555
Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008