CSS中变量怎么用


小编给大家分享一下CSS中变量怎么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!
  一、变量的声明
  声明变量的时候,变量名前面要加两根连词线(–)。
  body{
  –foo:#7F583F;
  –bar:#F7EFD2;
  }
  上面代码中,body选择器里面声明了两个变量:–foo和–bar。
  它们与color、font-size等正式属性没有什么不同,只是没有默认含义。所以CSS变量(CSSvariable)又叫做”CSS自定义属性”(CSScustomproperties)。因为变量与自定义的CSS属性其实是一回事。
  你可能会问,为什么选择两根连词线(–)表示变量?因为$foo被Sass用掉了,@foo被Less用掉了。为了不产生冲突,官方的CSS变量就改用两根连词线了。
  各种值都可以放入CSS变量。
  :root{
  –main-color:#4d4e53;
  –main-bg:rgb(255,255,255);
  –logo-border-color:rebeccapurple;
  –header-height:68px;
  –content-padding:10px20px;
  –base-line-height:1.428571429;
  –transition-duration:.35s;
  –external-link:”externallink”;
  –margin-top:calc(2vh+20px);
  }
  变量名大小写敏感,–header-color和–Header-Color是两个不同变量。
  二、var()函数
  var()函数用于读取变量。
  a{
  color:var(–foo);
  text-decoration-color:var(–bar);
  }
  var()函数还可以使用第二个参数,表示变量的默认值。如果该变量不存在,就会使用这个默认值
  color:var(–foo,#7F583F);
  第二个参数不处理内部的逗号或空格,都视作参数的一部分。
  var(–font-stack,”Roboto”,”Helvetica”);
  var(–pad,10px15px20px);
  var()函数还可以用在变量的声明。
  :root{
  –primary-color:red;
  –logo-text:var(–primary-color);
  }
  注意,变量值只能用作属性值,不能用作属性名。
  .foo{
  –side:margin-top;
  /*无效*/
  var(–side):20px;
  }
  上面代码中,变量–side用作属性名,这是无效的。
  三、变量值的类型
  如果变量值是一个字符串,可以与其他字符串拼接。
  –bar:’hello’;
  –foo:var(–bar)’world’;
  利用这一点,可以debug(例子)。
  body:after{
  content:’–screen-category:’var(–screen-category);
  }
  如果变量值是数值,不能与数值单位直接连用。
  .foo{
  –gap:20;
  /*无效*/
  margin-top:var(–gap)px;
  }
  上面代码中,数值与单位直接写在一起,这是无效的。必须使用calc()函数,将它们连接。
  .foo{
  –gap:20;
  margin-top:calc(var(–gap)*1px);
  }
  如果变量值带有单位,就不能写成字符串。
  /*无效*/
  .foo{
  –foo:’20px’;
  font-size:var(–foo);
  }
  /*有效*/
  .foo{
  –foo:20px;
  fon免费云主机域名t-size:var(–foo);
  }
  四、作用域
  同一个CSS变量,可以在多个选择器内声明。读取的时候,优先级最高的声明生效。这与CSS的”层叠”(cascade)规则是一致的。
  下面是一个例子。
  

  :root{–color:blue;}
  p{–color:green;}
  #alert{–color:red;}
  *{color:var(–color);}蓝色绿色
  上面代码中,三个选择器都声明了–color变量。不同元素读取这个变量的时候,会采用优先级最高的规则,因此三段文字的颜色是不一样的。
  这就是说,变量的作用域就是它所在的选择器的有效范围。
  body{
  –foo:#7F583F;
  }
  .content{
  –bar:#F7EFD2;
  }
  上面代码中,变量–foo的作用域是body选择器的生效范围,–bar的作用域是.content选择器的生效范围。
  由于这个原因,全局的变量通常放在根元素:root里面,确保任何选择器都可以读取它们。
  :root{
  –main-color:#06c;
  }
  五、响应式布局
  CSS是动态的,页面的任何变化,都会导致采用的规则变化。
  利用这个特点,可以在响应式布局的media命令里面声明变量,使得不同的屏幕宽度有不同的变量值。
  body{
  –primary:#7F583F;
  –secondary:#F7EFD2;
  }
  a{
  color:var(–primary);
  text-decoration-color:var(–secondary);
  }
  @mediascreenand(min-width:768px){
  body{
  –primary:#F7EFD2;
  –secondary:#7F583F;
  }
  }
  六、兼容性处理
  对于不支持CSS变量的浏览器,可以采用下面的写法。
  a{
  color:#7F583F;
  color:var(–primary);
  }
  也可以使用@support命令进行检测。
  @supports((–a:0)){
  /*supported*/
  }
  @supports(not(–a:0)){
  /*notsupported*/
  }
  七、JavaScript操作
  JavaScript也可以检测浏览器是否支持CSS变量。
  constisSupported=
  window.CSS&&
  window.CSS.supports&&
  window.CSS.supports(‘–a’,0);
  if(isSupported){
  /*supported*/
  }else{
  /*notsupported*/
  }
  JavaScript操作CSS变量的写法如下。
  //设置变量
  document.body.style.setProperty(‘–primary’,’#7F583F’);
  //读取变量
  document.body.style.getPropertyValue(‘–primary’).trim();
  //’#7F583F’
  //删除变量
  document.body.style.removeProperty(‘–primary’);
  这意味着,JavaScript可以将任意值存入样式表。下面是一个监听事件的例子,事件信息被存入CSS变量。
  constdocStyle=document.documentElement.style;
  document.addEventListener(‘mousemove’,(e)=>{
  docStyle.setProperty(‘–mouse-x’,e.clientX);
  docStyle.setProperty(‘–mouse-y’,e.clientY);
  });
  那些对CSS无用的信息,也可以放入CSS变量。
  –foo:if(x>5)this.width=10;
  上面代码中,–foo的值在CSS里面是无效语句,但是可以被JavaScript读取。这意味着,可以把样式设置写在CSS变量中,让JavaScript读取。
  所以,CSS变量提供了JavaScript与CSS通信的一种途径。

以上是“CSS中变量怎么用”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注百云主机行业资讯频道!

相关推荐: ASP.NET MVC如何实现对URL匹配操作

这篇文章将为大家详细讲解有关ASP.NETMVC如何实现对URL匹配操作,免费云主机域名小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。{parameter}:花括弧加任意长度的字符串,字符串不能定义成controller和ac…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 01/09 10:00
下一篇 01/09 10:00

相关推荐