CSS的变量variable的解析

这篇文章主要介绍了关于CSS的变量variable的解析,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下

前面的话

  一直以来,css中是没有变量而言的,要使用 css 变量,只能借助 sass 或者 less 这类预编译器。新的草案发布之后,直接在 css 中定义和使用变量不再是幻想了。本文将详细介绍css变量variable

基本用法

  CSS 变量是由CSS作者定义的实体,其中包含要在整个文档中重复使用的特定值。使用自定义属性来设置变量名,并使用特定的 var() 来访问

  兼容性:移动端和IE浏览器不兼容

【声明变量】

   变量必须以--开头。例如–example-variable: 20px,意思是将20px赋值给–example-varibale变量

立即学习“前端免费学习笔记(深入)”;

  可以将声明变量的语句置于任何元素内,如果要设置全局变量,则可以设置为:root、body或html

:root{  --bgColor:#000;}

  变量声明就像变普通的样式声明语句一样,也可以使用内联样式


  变量声明语句必须包含一个元素内,而不能随意放置

//错误--bgColor:#000;

【使用变量】

  使用var()函数使用变量,并且可以被使用在任意的地方。例如:var(–example-variable)会返回–example-variable所对应的值

    

  var()函数还有一个可选参数,用来设置默认值,当变量无法取得值时,则使用默认值

    

继承和层叠

  和普通的样式属性一样,变量属性也支持继承和层叠。下面示例中,body元素的变量值为green,p元素的变量值为red; 基于层叠的原理,最终p元素的背景颜色为红色

    

组合和计算

【组合】

  CSS 变量可以进行组合使用

.box{    --top:20%;    --left:30%;    width: 100px;    height: 100px;    background-image: url(img/24/xiaoshu.jpg);    background-position: var(--left)  var(--top);}

 但是,CSS变量不能进行如下形式的组合,var(–color1)var(–color2)不被浏览器识别,如果分开,如var(–color1) var(–color2),则被解析为# 333,同样无法被浏览器识别

.box{    --color1:#;    --color2:333;    width: 100px;    height: 100px;    background-color: var(--color1)var(--color2);}

【计算】

  变量和普通样式值一样,除了组合,还可以使用calc进行计算

.box{    --borderWidth:2px;    width: 100px;    height: 100px;    background-color:lightblue;    border-left: calc(var(--borderWidth) * 2) solid black;}

JS

  CSS 变量可以和 JS 互相交互。要注意的是,只能使用getPropertyValue()和setProperty()方法,而不能使用style属性

【style属性】

  var oBox = document.getElementById('box');  console.log(oBox.style['--color']); //undefined

【getPropertyValue()】

  var oBox = document.getElementById('box');  console.log(oBox.style.getPropertyValue('--color'));//'lightgreen'

【setProperty()】

#box{        --color:lightgreen;    background-color: var(--color);    width: 100px;    height: 100px;    display:inline-block;}

var oBox = document.getElementById('box');var oBtn = document.getElementById('btn');oBtn.onclick = function(){ oBox.style.setProperty('--color','lightblue');}

不支持

  有一点要特别注意的是,变量不支持!important

.box{    --color:red;    width: 100px;    height: 100px;    background-color:--color !important;}

  chrome浏览器截图如下

CSS的变量variable的解析

用途

  1、可维护性

  在网页中维护一个配色方案或尺寸方案,意味着一些样式在CSS文件中多次出现,并被重复使用。当修改方案时,不论是调整某个样式或完全修改整个方案,都会成为一个复杂的问题,而单纯查找替换是远远不够的,这时CSS变量就派上用场了

:root{  --mainColor:#fc0;}.p1{  color:var(--mainColor);}.p2{  color:var(--mainColor);}

  2、语义化

  变量的第二个优势就是名称本身就包含了语义的信息。CSS 文件变得易读和理解。main-text-color比文档中的#fc0更容易理解,特别是同样的颜色出现在不同的文件中的时候

  3、更方便的实现@media媒体查询

   一般地,媒体查询如下所示

.box{        width: 100px;    height: 100px;    padding: 20px;    margin: 10px;    background-color: red}@media screen and (max-width:600px) {    .box{        width: 50px;        height: 50px;        padding: 10px;        margin: 5px;            }}

  但是,如果使用变量,则可以精简代码

.box{        --base-size:10px;    width: calc(var(--base-size) * 10);    height: calc(var(--base-size) * 10);    padding: calc(var(--base-size) * 2);    margin: calc(var(--base-size) * 1);    background-color: red;}@media screen and (max-width:600px) {    .box{        --base-size:5px;        }}

以上就是本文的全部内容,希望对大家的学习有所帮助,更多相关内容请关注PHP中文网!

相关推荐:

 CSS的positon属性的分析

通过css设置placeholder的方法

以上就是CSS的变量variable的解析的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1610086.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年12月24日 01:13:04
下一篇 2025年12月24日 01:13:22

发表回复

登录后才能评论
关注微信