修改 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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

发表回复

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

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