修改 css变量,通过CSS变量修改样式的方法示例

修改 css变量,通过CSS变量修改样式的方法示例问题 js 怎么去修改 css 伪类样式呢 但是 js 并没有伪类选择器 那么该怎么办呢 网上有不少方法 比如通过切换元素的类 在 style 中动态插入新的样式等 那么这里再来一种方法 设置 css 变量 var 通过 js 去改变这个变量来实现 示例 改变 div 的 hover 背景色 root divHoverColo red div width 100px height 100px backgrou

问题

js怎么去修改css伪类样式呢?但是js并没有伪类选择器,那么该怎么办呢?网上有不少方法,比如通过切换元素的类、在style中动态插入新的样式等。

那么这里再来一种方法,设置css变量(var),通过js去改变这个变量来实现。

示例:改变div的hover背景色

:root {

–divHoverColor: red;

}

div {

width: 100px;

height: 100px;

background: bisque;

}

div:hover {

background: var(–divHoverColor);

}

function onDivClick(value){

document.documentElement.style.setProperty(‘–divHoverColor’, value);

}

那么,来认识下css variable吧

1. 基本用法

局部变量

div {

–masterColor: red;

background: var(–masterColor);

}

全局变量

/* 对于HTML来说,:root 表示 元素 */

:root {

–masterColor: red;

}

div {

background: var(–masterColor);

}

2. 语法

var( [, ]? )

: 自定义属性名

: 声明值(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 规范

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。 ad51e517755f8fd6a7ec83ced4ecfaf3.png

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/232666.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • idea2021.2.8激活码-激活码分享

    (idea2021.2.8激活码)这是一篇idea技术相关文章,由全栈君为大家提供,主要知识点是关于2021JetBrains全家桶永久激活码的内容IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.html83PVI25FMO-eyJsa…

    2022年3月27日
    73
  • java getclassloader_java-关于getClass().getClassLoader()

    java getclassloader_java-关于getClass().getClassLoader()InputStreamis=getClass().getClassLoader().getResourceAsStream(“helloworld.properties”);中getClass()和getClassLoader()都是什么意思呀.getClass():取得当前对象所属的Class对象getClassLoader():取得该Class对象的类装载器类装载器负责从Java字符文件…

    2022年5月2日
    39
  • ATA考试注意事项「建议收藏」

    ATA考试注意事项「建议收藏」一、考试前将所有计算机除掉还原卡及还原软件。二、officeXp安装要用完全安装。三、服务器端尽量不要刷新所有客户端否则引起考试管理系统死机。四、拍照功能无法使用,可重新启动考试管理系统。五、服务器端无法扫描到客户端,除了服务器与客户端必须在同一网段内,可看一下客户端是否启动llistening    …

    2022年7月13日
    23
  • pstack脚本_pstack

    pstack脚本_pstack脚本写入shell文件pstack,直接执行这个脚本pstackpid#!/bin/shiftest$#-ne1;thenecho”Usage:`basename$0.sh`<process-id>”1>&2exit1fiiftest!-r/proc/$1;thenecho”Process$1notfound.”1>&2exit1fi#GDBdoe…

    2022年9月14日
    2
  • 如何统计项目代码(比如微信小程序等等)

    如何统计项目代码(比如微信小程序等等)

    2021年3月12日
    151
  • ZIP 压缩解压命令

    ZIP 压缩解压命令压缩一个文件,打开cmd窗口 zip f:\wenjian.zip f:\wenjian.txt压缩一种格式的文件 zip f:\wenjian.zip f:\*.txt压缩文件夹及里面的内容 -r表示压缩文件夹wenjian及里面的内容 zip-rf:\wenjian.zip wenjian  移除压缩包里的一

    2022年5月16日
    55

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号