css自定义属性和使用

1、自定义属性的命名规则

  --variables-name:variables-value(变量名是大小写敏感的)
  --属性名:属性值
  
  例如定义一个主题颜色:
  --theme-color:red;

// 例如:
root{
    --primary-color:#989898;
    --light:#fff;
    --dark:#000;
}

2、作用域

//:root作用于全局
:root{
    --theme-color:red;
}
//#app作用于id为app的节点内
#app{
    --theme-color:red;
}

3、使用方法 var(自定义属性名)

// 使用
some-css-value: var(--variable-name [, declaration-value]);

//现在全局定义
:root{
   --theme-color:red;
}

//使用的时候
#app{
    background-color:var(--theme-color);
}

//假如我们没有指定--theme-color这个属性,则可以在使用的时候加上替代值
#app{
    background-color:var(--theme-color,black);//没有指定--theme-color则会由black代替
}


4、通过js获取和设置自定义的属性

//js中获取--theme-color的值
var styles = getComputedStyle(document.documentElement);
var value = styles.getPropertyValue("--theme-color");
console.log(value);//red

//js中更改--theme-color的值
document.documentElement.style.setProperty("--theme-color","black");

5、使用css自定义属性

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <title>CSS3自定义属性实现换肤功能</title>
  <style type="text/css">
    :root {
      --theme-color: #989898;
    }

    #header {
      width: 100%;
      height: 50px;
      line-height: 50px;
      background-color: var(--theme-color);
      margin-bottom: 30px;
    }

    #header h1 {
      color: #fff;
    }

    button {
      width: 100px;
      height: 30px;
      color: #fff;
      border: none;
    }

    #btn-red {
      --btn-red: red;
      background-color: var(--btn-red)
    }

    #btn-black {
      --btn-black: green;
      background-color: var(--btn-black)
    }

    #btn-blue {
      --btn-blue: blue;
      background-color: var(--btn-blue)
    }
  </style>
</head>

<body>
  <header id="header">
    <h1>CSS3自定义属性实现换肤功能</h1>
  </header>

  <div>
    <button id="btn-red">red</button>
    <button id="btn-black">green</button>
    <button id="btn-blue">blue</button>
  </div>

  <script type="text/javascript">
    var btns = document.getElementsByTagName("button");
    for (var i = 0; i < btns.length; i++) {
      btns[i].addEventListener("click", function (e) {
        var ele = e.target || e.srcElement;
        var styles = getComputedStyle(ele);
        var value = styles.getPropertyValue("--" + ele.id);
        document.documentElement.style.setProperty("--theme-color", value);
      })
    }

  </script>
</body>

</html>

在这里插入图片描述
6、可以和css预处理器一起使用

具体使用可看下面链接

引用:待花谢花开 — css自定义属性
参考:深入学习css自定义属性

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值