加入收藏 | 设为首页 | 会员中心 | 我要投稿 聊城站长网 (https://www.0635zz.com/)- 智能语音交互、行业智能、AI应用、云计算、5G!
当前位置: 首页 > 综合聚焦 > 编程要点 > 语言 > 正文

用CSS变量更改样式怎样做,代码是什么

发布时间:2023-09-19 15:29:01 所属栏目:语言 来源:
导读:这篇文章主要介绍了用CSS变量修改样式怎样做,代码是什么相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇用CSS变量修改样式怎样做,代码是什么文章都会有所收获,下面我们一起来看看吧
这篇文章主要介绍了用CSS变量修改样式怎样做,代码是什么相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇用CSS变量修改样式怎样做,代码是什么文章都会有所收获,下面我们一起来看看吧。
 
问题
 
js怎么去修改css伪类样式呢?但是js并没有伪类选择器,那么该怎么办呢?网上有不少方法,比如通过切换元素的类、在style中动态插入新的样式等。
 
那么这里再来一种方法,设置css变量(var),通过js去改变这个变量来实现。
 
示例:改变div的hover背景色
 
<!-- css -->
 
<style type="text/css">
 
    :root {
 
        --divHoverColor: red;
 
    }
 
    div {
 
        width: 100px;
 
        height: 100px;
 
        background: bisque;
 
    }
 
    div:hover {
 
        background: var(--divHoverColor);
 
    }
 
</style>
 
<!-- html -->
 
<div onClick="onDivClick('green')"/>
 
<!-- js -->
 
<script type="text/javascript">
 
    function onDivClick(value){
 
        document.documentElement.style.setProperty('--divHoverColor', value);
 
    }
 
</script>
 
那么,来认识下css variable吧
 
1. 基本用法
 
局部变量
 
div {
 
    --masterColor: red;
 
    background: var(--masterColor);
 
}
 
全局变量
 
/* 对于HTML来说,:root 表示 <html> 元素 */
 
:root {
 
    --masterColor: red;
 
}
 
div {
 
    background: var(--masterColor);
 
}
 
2. 语法
 
var( <custom-property-name> [, <declaration-value> ]? )
 
<custom-property-name> : 自定义属性名
 
<declaration-value> : 声明值(fallback value)
 
示例:
 
div {
 
    /*
 
    --masterColor未定义,所以背景色使用red
 
    它可以通过逗号分隔,定义多个声明值,var(--masterColor, red, green)
 
    */
 
    background: var(--masterColor, red);
 
}
 
变量可以通过var()进行引用
 
示例:
 
div {
 
    --masterColor: red;
 
    --bgColor: var(--masterColor)
 
}
 
注意:属性名是不能使用变量的
 
错误示例:
 
div {
 
    --bg: background;
 
    var(--bg): red;
 
}
 
3. 浏览器支持
 
Can I use
 
使用@support检测
 
@supports ( (--masterColor: red)) {
 
  /* supported */
 
}
 
@supports ( not (--masterColor: red)) {
 
  /* not supported */
 
}
 
使用JS检测
 
const isSupported = window.CSS && window.CSS.supports
 
    && window.CSS.supports('--masterColor', 'red');
 
if (isSupported) {
 
  /* supported */
 
} else {
 
  /* not supported */
 
}
 
参考
 
MDN
 
CSS Variable 规范
 
 

(编辑:聊城站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章