美文网首页
CSS3变量的使用方法

CSS3变量的使用方法

作者: ryanWSJ | 来源:发表于2020-03-07 23:49 被阅读0次

1.兼容性

  1. FireFox > 49
  2. Chrome > 49
  3. Safari > 9.1
  4. Opera > 41
  5. IOS Safari >9.3

2.使用语法

CSS中原生的变量定义语法是:--*,变量使用语法是:var(--*),其中*表示我们的变量名称。变量名称不能包含$,[,^,(,%等字符,普通字符局限在只要是“数字[0-9]”“字母[a-zA-Z]”“下划线_”和“短横线-”这些组合,但是可以是中文,日文或者韩文。例如:

:root {
  --1: #369;
}
body {
  background-color: var(--1);
}

CSS变量使用完整语法
CSS变量使用的完整语法为:var( [, ]? ),用中文表示就是:var( <自定义属性名> [, <默认值 ]? ),例如:

.box {
  --1: #369;
}
body {
  background-color: var(--1, #cd0000);
}

3.变量的作用域

:root { --color: purple; }
div { --color: green; }
#alert { --color: red; }
* { color: var(--color); }

<p>我的紫色继承于根元素</p>
<div>我的绿色来自直接设置</div>
<div id='alert'>
  ID选择器权重更高,因此阿拉是红色!
  <p>我也是红色,占了继承的光</p>
</div>

变量作用域和DOM绑定,如果是全局变量采用:root { --color: purple; }形式来声明,所有的样式里面都可以使用。
div { --color: green; }局部使用,可以当作是局部变量覆盖全局变量,也可以当作是div的层级优先级更高。会覆盖掉全局的变量值。

4.CSS变量不合法的缺省特性

请看下面这个例子:

body {
  --color: 20px;
  background-color: #369;
  background-color: var(--color, #cd0000);
}
// 请问,此时<body>的背景色是?
A. transparent    B. 20px     C. #369      D. #cd0000

答案是A

解析:这是CSS变量非常有意思的一个点,对于CSS变量,只要语法是正确的,就算变量里面的值是个乱七八糟的东西,也是会作为正常的声明解析,如果发现变量值是不合法的,例如上面背景色显然不能是20px,则使用背景色的缺省值,也就是默认值代替。千万不能想当然得认为等同于background-color:20px,这也是为什么上面要强调CSS默认值的使用仅限于变量未定义的情况,并不包括变量不合法

5.CSS变量的空格尾随特性

body {
  --size: 20;   
  font-size: var(--size)px;
}
// 请问,此时<body>的font-size大小是多少?
A. transparent    B. 20px     C. #369      D. #cd0000

如果你以为是20px就太天真了,实际上,此处font-size:var(--size)px等同于font-size:20 px,注意,20后面有个空格,所以,这里的font-size使用的是<body>元素默认的大小。因此,就不要妄图取消就使用一个数值来贯穿全场,还是使用稳妥的做法:

body {
  --size: 20px;   
  font-size: var(--size);
}

或者使用CSS3 calc()计算:

body {
  --size: 20;   
  font-size: calc(var(--size) * 1px);
}

6.CSS变量的相互传递特性

就是说,我们在CSS变量定义的时候可以直接引入其他变量给自己使用,例如:

body {
  --green: #4CAF50;   
  --backgroundColor: var(--green);
}

CSS变量的值如果发生变化,引用这个变量的变量值也会发生变化,意思就是发生联动。这样就非常的方便。例如下面的例子,只需要修改一个--columns的值就可以达到响应式的目的。

.box {
    --columns: 4;
    --margins: calc(24px / var(--columns));
    --space: calc(4px * var(--columns));
    --fontSize: calc(20px - 4 / var(--columns));
}
@media screen and (max-width: 1200px) {
    .box {
        --columns: 3;
    }
}
@media screen and (max-width: 900px) {
    .box {
        --columns: 2;
    }
}
@media screen and (max-width: 600px) {
    .box {
        --columns: 1;
    }
}

相关文章

  • css变量的用法

    css3提供了变量var()可以很方便的进行样式的切换以及复用,使用方法var(变量名),声明变量:--变量名:变...

  • CSS3变量的使用方法

    1.兼容性 FireFox > 49 Chrome > 49 Safari > 9.1 Opera > 41 IO...

  • CSS3渐变的使用方法:

    CSS3渐变的使用方法: css3的渐变分为两种,下面进行依次的讲解:.线性渐变. .径向渐变. *1.线性渐变 ...

  • Viewmodel构造函数添加变量

    viewModel构造函数中添加变量,使用方法:

  • SQL之变量

    参考:SQL Server中变量的声明和使用方法sql语句变量定义和样例 SQL中变量包括局部变量和全局变量 局部...

  • TensorFlow 非常基础的知识笔记

    1、TensorFlow(tf)变量的类型及使用方法 (1) tf.constant() 先定义变量,后直...

  • 07_模板层

    #模板层 一、模版语法之变量 1、变量的直接使用 使用方法:{{ 变量名 }} index.html: 2、函数及...

  • HTML5和CSS3实例教程 中文版 高清PDF扫描版

    HTML5和CSS3实例教程共分3部分,集中讨论了HTML5和CSS3规范及其技术的使用方法。首先是规范概述,介绍...

  • lightGallery 动态查看图片,放大

    使用方法:功能齐全的jquery图片查看器插件_jQuery之家-自由分享jQuery、html5、css3的插件...

  • kettle 变量

    使用变量 使用方法:${} 在大括号内加变量名即可(“获得变量”对象是使用变量很好的方法) 使用位置:有下面这个符...

网友评论

      本文标题:CSS3变量的使用方法

      本文链接:https://www.haomeiwen.com/subject/dazkdhtx.html