美文网首页
css自定义变量

css自定义变量

作者: 梧桐芊雨 | 来源:发表于2021-02-18 23:11 被阅读0次

    css是可以支持变量,且所有主流浏览器都支持。css变量又称"css自定义属性",css的变量声明是以“--”前缀,而前缀是"$"或"@"被预处理器sass或less占用,所以,css以"--"开头可以避免与预处理器产生冲突,

    1. css的变量名是区分大小写的,--primary-size和--Primary-Size是完全不同的。

    2.属性名可以包含数字,字母,以及下划线或者短横线,也可以是中文,日文或者韩文,但不能是属性名或数字开头,不能包含$,[,^,(,%等字符。

    3.变量--primary只能用属性值,不能用作属性名

    .foo {
      --primary: margin-top; /* 无效 */
      var(--primary): 2px;
    }
    

    4.数字和单位直接写一起需使用calc()函数

    --gap: 20;
      margin-top: calc(var(--gap) * 1px);
    
     /**错误的方式**/
    --font-size:10px *3;
    --sum:'10px';/*不能带字符串,否则失效*/
     padding-top:var(--sum)
    
    /**正确的方式**/
    --font-size:calc(10px *3);
    --sum:10px;
     padding-top:var(--sum)
    
    

    拓展
    cal()函数支持 "+", "-", "*", "/" 运算,需要注意的是,运算符前后都需要保留一个空格,例如:width: calc(100% - 10px);
    任何长度值都可以使用calc()函数进行计算;
    calc()函数使用标准的数学运算优先级规则;

    5.变量的值是字符串时,可以直接拼接

    :root{
      --screen-category: 'category'  //变量值是字符串
    }
    body:after {
      content: '--screen-category: 'var(--screen-category);  // 直接拼接
    }
    

    6.var()函数第二个参数是设置默认值,若该变量不存在,则使用此默认值

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

    7.css变量可以在任意选择器中使用包括在标签元素style及@media中

    /**style*/
            .wrapper .card {
                animation: animate 15s linear infinite;
                animation-delay: calc(3s * var(--delay));
            }
     <div class="card" style="--delay:1"></div>
    
    /**@media*/
    
    :root{
        --column-size:4;
    }
    
    @media screen and (min-width: 1200px) {
        :root{
            --column-size: 3;
        }
    }
    
    

    若想了解更深可看大神文章:
    https://www.ruanyifeng.com/blog/2017/05/css-variables.html
    https://www.zhangxinxu.com/wordpress/2016/11/css-css3-variables-var/

    相关文章

      网友评论

          本文标题:css自定义变量

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