初步使用

:root {

--main-color: #06c;

--accent-color: #006;

}

/* The rest of the CSS file */

#foo h1 {

//引用变量

color: var(--main-color);

}

以下使用方法错误!!!

他错误地尝试使用变量名代替属性名:

.foo {

--side: margin-top;

var(--side): 20px;

}

这并不能实现margin-top: 20px,会抛出语法错误。

大小写敏感

尽管--FOO与--foo都是合法的变量,但是当你引用前者指代的就是前者的值,后者亦然。

h1 {

--font-color: lightblue;

--Font-color: lightgreen;

color: var(--Font-color);

//lightgreen

}

设置值的注意事项

自定义属性可以以!important结尾, 但是CSS解析器会自动移除这个属性的值,并按瀑布流的形式确定其优先属性。换句话说,虽然可以使用!important,但是顶级优先“!”的禁止其它同类CSS生效的作用并没有实现CSS。

h1 {

--font-color: lightblue!important;

--Font-color: lightgreen;

color: var(--font-color);

color: var(--Font-color);

//lightgreen

}

继承性与优先级(可正常理解)

:root { --color: blue; }

div { --color: green; }

#alert { --color: red; }

* { color: var(--color); }

I inherited blue from the root element!

//blue

I got green set directly on me!

//green

While I got red set directly on me! //red

I’m red too, because of inheritance!

//red

可与正常属性混用

:root {

--main-color: #c06;

--accent-background: linear-gradient(to top, var(--main-color), white);

}

互相调用无效

body {

font-size: 16px;

}

//h1最终大小为16px

h1 {

--font-color: lightblue!important;

--Font-color: lightgreen;

--one: calc(var(--two) + 30px);

--two: calc(var(--one) - 50px);

color: var(--font-color);

color: var(--Font-color);

font-size: var(--one);

}

在不同范围内合法,事实上两者在不同范围内指代了不同的变量

one { --foo: 10px; } //10

two { --bar: calc(var(--foo) + 10px); } //20

three { --foo: calc(var(--bar) + 10px); } //30

calc()使用通用的数学运算规则,但是也提供更智能的功能:

使用“+”、“-”、“*” 和 “/”四则运算;

可以使用百分比、px、em、rem等单位;

可以混合使用各种单位进行计算;

表达式中有“+”和“-”时,其前后必须要有空格,如"widht: calc(12%+5em)"这种没有空格的写法是错误的;

表达式中有“*”和“/”时,其前后可以没有空格,但建议留有空格。

变量初始默认值

.component .header {

color: var(--header-color, blue);

}

.component .text {

color: var(--text-color, black);

}

/* In the larger application’s style: */

.component {

--text-color: #080;

/* header-color 为默认值blue

注: var(--header-color, blue, red)无效

*/

}

变量的替换使用规范

var()并不是按照原文替换CSS字符

.foo {

--gap: 20;

margin-top: var(--gap)px;

}

这无法设置margin-top: 20px;(a length),而是等同于margin-top: 20 px; (a number followed by an ident空格),这是一个不合法的属性值. 不过, calc()可以实现:

.foo {

--gap: 20;

margin-top: calc(var(--gap) * 1px);

}

下面的代码从语法上江是无错误的,但是并无实际效果。因为20px并不是一个背景色的有效值,如果没有其他设置(必须优先级高于这里的设置)或继承的背景色,将会使用全局默认的透明背景色。

:root { --not-a-color: 20px; }

p { background-color: red; }

p { background-color: var(--not-a-color); }

//这里虽然有背景色的设置但是优先级并没有自定义属性的高,故而`p`的背景色是透明色

css的属性是变量是怎么表达,CSS自定义变量属性——像less,sass那样在css中使用变量(译)...相关推荐

  1. Java 中把声明变量的语句如果写在循环体内,每次执行时栈内存中的变量和数据是如何变化的?

    问题一:如下面的代码示例 1,JVM 是不是会反复回收旧的变量 a 再重新创建新的变量 a 呢?还是旧的变量 a 一直保留在栈内,只是反复赋值 0 而已呢? 代码示例 1: while (true) ...

  2. python变量设置为true_如果为true,则从现在起在Python中忽略变量

    我有一个赋值,如果一个条件满了,它会强制我忽略某些变量.基本上,我要求用户输入并告诉他他有哪些有效的选择,但是过了一段时间,原来有效的选择就不再有效了.我考虑过做这样的事while True: cho ...

  3. java中为什么需要常量和变量的区别_Java中的变量和常量

    1.变量(variable) 变量,顾名思义,就是变化的量. 我们可以通过变量来操作存储空间中的数据,变量就是指代这个存储空间,一旦你定义了一个一个变量,那么空间的位置就确定了,虽然空间位置是确定的, ...

  4. 从零开始学前端:中括号代替点操作,获取对象,自定义标签属性 --- 今天你学习了吗?(JS:Day3)

    从零开始学前端:程序猿小白也可以完全掌握!-今天你学习了吗?(JS) 复习:从零开始学前端:初识函数,合法属性与自定义属性 - 今天你学习了吗?(JS:Day2) 文章目录 从零开始学前端:程序猿小白 ...

  5. android r中的变量_R中的变量

    android r中的变量 Variables in R are the same as the notion of variables in any other programming langua ...

  6. 顺风详解Nginx系列—Ngx中的变量

    在计算机语言中,变量是用来存储和表示数据的,但不同的语言表示变量的方式不同,像java语言会把变量抽象成各种类型,并且每种类型都会用一个特殊的符号表示,比如表示一个整数需要这样: int age= 2 ...

  7. python3 将列表中元素转化为字典_软件测试学Python(七):Python中的变量和标准数据类型...

    上一篇文章中,凯哥给大家介绍了Python中的常量(字面值). 测试凯哥:软件测试学Python(六):Python中的常量​zhuanlan.zhihu.com 在这篇文章中,凯哥带各位学习测试的知 ...

  8. 贝叶斯网专题4:概率推理中的变量消元方法

    文章目录 第一部分:贝叶斯网基础 [1.1 信息论基础](https://blog.csdn.net/deepbodhi/article/details/119823055) [1.2 贝叶斯网基本概 ...

  9. 在javaScript中,变量名和函数名不能重名

    直接上代码和截图 在javaScript中,变量的名字和函数的名字不能取一样的名字(即变量名和函数名不能重名) <script type="text/javascript"& ...

  10. linux shell 递增,如何在 Bash 中对变量递增或者递减

    原标题:如何在 Bash 中对变量递增或者递减 编写 Bash脚本时最常见的算术运算之一是递增和递减变量.这通常在循环中用作计数器,但它也可以在脚本的其他地方出现. 递增和递减意味着分别从数值变量的值 ...

最新文章

  1. HTML5 script 标签的 crossorigin 和integrity属性的作用
  2. 隔壁组Leader降级了!从不pua,亲自写代码,自己加班也不让下属加班!
  3. 安卓开发实现画廊效果
  4. 上传文件input(type=file)美化。
  5. element-ui中table表头错位问题
  6. 软件构造学习笔记-第七周
  7. 高效快速中值滤波算法c语言,快速中值滤波及c语言实现.docx
  8. c#随机数的产生与输出【C#】
  9. Java数据库篇9——备份与还原、忘记密码
  10. 小米MIX4曝光,颜值真不错
  11. ascii码为0的字符_2.4 序列之字符串
  12. CycleGAN网络详解
  13. mysql导入GP_GP数据库gpload数据导入详细操作
  14. 江苏省人力资源社会保障厅 省职称办 关于做好2021年度职称评审工作的通知
  15. flowable modeler6.5.0集成spring boot
  16. 塑造元宇宙未来的5项技术
  17. 计算机软著进行转让的步骤
  18. 【解题报告】2017-2018 8th BSUIR Open Programming Contest-C Good subset 线性基+线段树
  19. PPT - 如何从 PowerPoint 幻灯片中删除幻灯片编号
  20. Python第八课(函数1)

热门文章

  1. 五年级计算机教材内容,五年级计算机教学计划
  2. c语言中字符串 x,使用c语言解析字符串176x144中的数字
  3. 二分法求近似根c语言程序,求一C++风格程序,用二分法求f(x)=0的根
  4. ibatis 数据库获取不到 java_如何拦截ibatis中所有的执行sql,并记录进数据库
  5. Highcharts+Spring饼图使用实例
  6. Spring Boot配置MinIO(实现文件上传、下载、删除)
  7. Netty常见面试题 与 答案
  8. linux解压rar文件权限,linux下使用unrar命令解压*.rar格式文件
  9. esl证明函 oracle_强弱分明 Astralis证明之战—ESL科隆B组浅析
  10. python排名上升_TIOBE:2019年7月全球编程语言排行 Python热度继续上升