CSS变量使用解析

很早直接就了解到CSS变量相关的内容,奈何之前使用价值不高(很多主流浏览器不兼容)

最近发现主流浏览器都已经支持了这一变化

这一重要的变化,可能会让你发现,原生CSS从此变的异常强大~,下面看一下如何使用

变量的声明

css的变量声明标识符为:--,即变量名前面加2个连接线

body {
  --head_color: #000;
  --head_bar: #F7EFD2;
}

上面代码中,body选择器里面声明了两个变量。它与正常的属性定义上没有什么不同,只是没有默认含义,所以其又叫做CSS自定义属性

这里需要注意的是,其变量名对大小写是敏感的。

变量的引用

变量的引用也很简单,它为我们提供了一个方法专门进行引用,var()函数用于读取变量。

.head {
  color: var(--head_color);
}

这样就引用了,另外,如果你担心变量没有定义,它还提供了默认值的设置方式。

可以使用第二个参数,表示变量的默认值。如果该变量不存在,就会使用这个默认值。

color: var(--head_color, #7F583F);

需要注意的是,变量值只能用作属性值,不能用作属性名。

如果变量值是数值,不能与数值单位直接连用。

.a {
  --gap: 20;
  /* 无效 */
  margin-top: var(--gap)px;
}

数值与单位直接写在一起,必须使用calc()函数,将它们连接。

.a{
  --gap: 20;
  margin-top: calc(var(--gap) * 1px);
}

作用域

变量只能作用于自身以及后代元素,兄弟元素,祖先元素都不能享用。

所以,如果你的变量是全局享用的,则建议放在:root上,例如:

:root {
    --color: red;
}

当然,也可以使用body或者html标签:

body {
    --color: red;
}

CSS变量就像JS的变量,每个类名或者花括号就像一个function,里面的变量只有上下文以内可以获取,这就让CSS有了更多可能性。

这使得外部变量稍微改变,整个CSS都可以大大联动,且是实时的。

作者:旧旧的 <393210556@qq.com> 解决问题的方式,就是解决它一次

原文地址:https://www.cnblogs.com/widgetbox/p/10445102.html

时间: 2024-10-08 20:50:41

CSS变量使用解析的相关文章

jQuery CSS()方法改变CSS样式实例解析

转自:http://www.jbxue.com/article/24588.html 分享一个jQuery入门实例:使用CSS()方法改变现有的CSS样式表,css()方法在使用上具有多样性.其中有一种可接受两个输入参数:样式属性和样式值,两者之间用逗号分隔.比如要改变链接颜色,可以这样编写代码: $("#61dh a").css('color','#123456');//选择器‘$("#61dh a")'表示ID为‘#61dh'的元素下的所有链接.//.css(‘

CSS变量variable

前面的话 一直以来,CSS中是没有变量而言的,要使用 CSS 变量,只能借助 SASS 或者 LESS 这类预编译器.新的草案发布之后,直接在 CSS 中定义和使用变量不再是幻想了.本文将详细介绍CSS变量variable 基本用法 CSS 变量是由CSS作者定义的实体,其中包含要在整个文档中重复使用的特定值.使用自定义属性来设置变量名,并使用特定的 var() 来访问 兼容性:移动端和IE浏览器不兼容 [声明变量] 变量必须以--开头.例如--example-variable: 20px,意思

CSS变量试玩儿

CSS很美妙,能够为您的页面床上衣裳,各种各样五彩斑斓的衣裳,但是对于开发者来说,他又不够灵动,于是乎有了各种各样的预处理器Sass.LESS.Stylus(笔者建议Sass的SCSS语法),这些预处理器可以很大程度的提高CSS的灵活性,增强CSS的代码组织与维护.但是毕竟不是亲生的,然后负责CSS开发的那些大牛们坐不住了,开始给CSS赋予一些新的特性,本文就来探讨下CSS变量的进展与应用. W3C的关于CSS变量的最新探索体现在CSS Custom Properties for Cascadi

CSS变量(CSS variable)

使用 CSS 变量编写你的样式代码 基本使用: 1. --variable: <declaration-value> 2. <css-attribute>: var(--variable) 第一个是定义 css 变量 其中 --variable 可以是自定义的名称,但是必须 -- 开头,冒号后面是变量的值(变量:值) 第二个是在选择器中使用一开始定义好的 css 变量,使用方式就和正常写样式一样,只是将你的对应属性的值替换成了 var(css变量) 相信你已经看出来了,这个特性和使

【译】巧用 CSS 变量实现自动前缀

转https://www.h5jun.com/post/autoprefixing-with-css-variables-lea-verou.html 最近,当我在制作 markapp.io 这个小网站的时候,我想出一个巧妙的技巧用在 CSS 变量上,我们可以天然地使用它们的动态本质.让我们看一下当你想使用一个属性,但是这个属性有不同的版本,一个无前缀的标准版和一个或多个有前缀的版本的情形.在这里我举一个例子,比如我们使用clip-path,目前需要同时使用无前缀的版本和一个-webkit-前缀

css float 属性解析

  float 属性的定义:使元素在哪个方向浮动   默认值为:none 注意:浮动元素会生成一个块级框,而不论它本身是何种元素 HTML代码: <body> <div class="main"> <div class="d" id="d1">框1</div> <div class="d" id="d2">框2</div> <di

零基础学python-16.3 变量名解析:LEGB原则

这一章节我们来说说变量名解析的原则:LEGB原则 1.当函数使用未认证的变量名时,python搜索4个作用域,本地作用域(L)->上一层结构中def或者lambda的本地作用域(E)->全局作用域(G)>内置作用域(B),并且在第一次找到这个变量名的地方停下来 2.函数给一个变量赋值的时候,总是创建或者改变本地作用域的变量名,除法他是声明为全局 >>> def test(): x=1 print(x) print(id(x)) x=2 print(x) print(id

JavaScript的变量预解析特性

JavaScript是解释型语言是毋庸置疑的,但它是不是仅在运行时自上往下一句一句地解析的呢?事实上或某种现象证明并不是这样的,通过<JavaScript权威指南>及网上相关资料了解到,JavaScript有“预解析”行为.理解这一特性是很重要的,不然在实际开发中你可能会遇到很多无从解析的问题,甚至导致程序bug的存在.为了解析这一现象,也作为自己的一次学习总结,本文逐步引导你来认识JavaScript“预解析”,如果我的见解有误,还望指正.池州市贲生工艺品 我们先来看一个例子: var la

normalize.css源码解析

什么是normalize.css?  它是为了帮助我们统一各个浏览器的样式和消除bug的css库. 为什么需要normalize.css,有什么好处? 不像一些reset.css,normalize.css会保持浏览器的默认效果. 对大多数的元素进行了合理的限制. 修复了bug和一些常见的浏览器的不一致. 提高了开发效率. normalize.css使用情况如何? github地址:https://github.com/necolas/normalize.css. 从github上我们可以看到,