在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
问题 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 */ } 参考 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持极客世界。 |
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论