JavaScript 操作CSS变量

JavaScript 也可以检测浏览器是否支持 CSS 变量。

const isSupported =
  window.CSS &&
  window.CSS.supports &&
  window.CSS.supports('--a', 0);

if (isSupported) {
  /* supported */
} else {
  /* not supported */
}

JavaScript 操作 CSS 变量的写法如下。


// 设置变量
document.body.style.setProperty('--primary', '#7F583F');
vue的话就拿 this.$refs.tabs.style.setProperty("--primary", i);

// 读取变量
document.body.style.getPropertyValue('--primary').trim();
// '#7F583F'

// 删除变量
document.body.style.removeProperty('--primary');
这意味着,JavaScript 可以将任意值存入样式表。下面是一个监听事件的例子,事件信息被存入 CSS 变量。


const docStyle = document.documentElement.style;

document.addEventListener('mousemove', (e) => {
  docStyle.setProperty('--mouse-x', e.clientX);
  docStyle.setProperty('--mouse-y', e.clientY);
});
那些对 CSS 无用的信息,也可以放入 CSS 变量。


--foo: if(x > 5) this.width = 10;
上面代码中,--foo的值在 CSS 里面是无效语句,但是可以被 JavaScript 读取。这意味着,可以把样式设置写在 CSS 变量中,让 JavaScript 读取。

所以,CSS 变量提供了 JavaScript 与 CSS 通信的一种途径。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • CSS知识点 1 选择器的优先级 (1)最高优先级是 (直接在标签中的设置样式,假设级别为1000) (2)次优先...
    croyance0601阅读 4,189评论 0 0
  • 浏览器支持情况 主要浏览器基本支持,移动端开发、混合开发、微信开发都可以考虑。 什么是CSS变量? CSS变量(C...
    纷橙9527阅读 3,899评论 0 0
  • 2017年三月,微软Edge 浏览器将支持 CSS 变量。(实测普通用户安装Windows后,不会升级版本,Edg...
    皙皙阅读 1,475评论 1 0
  • 今年三月,微软宣布 Edge 浏览器将支持 CSS 变量。这个重要的 CSS 新功能,所有主要浏览器已经都支持了。...
    俊_杰阅读 1,586评论 0 1
  • CSS 变量 参考链接 今年三月,微软宣布 Edge 浏览器将支持 CSS 变量。这个重要的 CSS 新功能,所有...
    Cause_XL阅读 1,527评论 0 0