内容简介:js怎么去修改css伪类样式呢?但是js并没有伪类选择器,那么该怎么办呢?网上有不少方法,比如通过切换元素的类、在style中动态插入新的样式等。那么这里再来一种方法,设置css变量(var),通过js去改变这个变量来实现。示例:改变div的hover背景色
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. 浏览器支持
使用@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 */ } 复制代码
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Learn Python the Hard Way
Zed A. Shaw / Addison-Wesley Professional / 2013-10-11 / USD 39.99
Master Python and become a programmer-even if you never thought you could! This breakthrough book and CD can help practically anyone get started in programming. It's called "The Hard Way," but it's re......一起来看看 《Learn Python the Hard Way》 这本书的介绍吧!