夜猫子的知识栈 夜猫子的知识栈
首页
  • 前端文章

    • JavaScript
  • 学习笔记

    • 《JavaScript教程》
    • 《Web Api》
    • 《ES6教程》
    • 《Vue》
    • 《React》
    • 《TypeScript》
    • 《Git》
    • 《Uniapp》
    • 小程序笔记
    • 《Electron》
    • JS设计模式总结
  • 《前端架构》

    • 《微前端》
    • 《权限控制》
    • monorepo
  • 全栈项目

    • 任务管理日历
    • 无代码平台
    • 图书管理系统
  • HTML
  • CSS
  • Nodejs
  • Midway
  • Nest
  • MySql
  • 其他
  • 技术文档
  • GitHub技巧
  • 博客搭建
  • Ajax
  • Vite
  • Vitest
  • Nuxt
  • UI库文章
  • Docker
  • 学习
  • 面试
  • 心情杂货
  • 实用技巧
  • 友情链接
收藏
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

夜猫子

前端练习生
首页
  • 前端文章

    • JavaScript
  • 学习笔记

    • 《JavaScript教程》
    • 《Web Api》
    • 《ES6教程》
    • 《Vue》
    • 《React》
    • 《TypeScript》
    • 《Git》
    • 《Uniapp》
    • 小程序笔记
    • 《Electron》
    • JS设计模式总结
  • 《前端架构》

    • 《微前端》
    • 《权限控制》
    • monorepo
  • 全栈项目

    • 任务管理日历
    • 无代码平台
    • 图书管理系统
  • HTML
  • CSS
  • Nodejs
  • Midway
  • Nest
  • MySql
  • 其他
  • 技术文档
  • GitHub技巧
  • 博客搭建
  • Ajax
  • Vite
  • Vitest
  • Nuxt
  • UI库文章
  • Docker
  • 学习
  • 面试
  • 心情杂货
  • 实用技巧
  • 友情链接
收藏
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • HTML

  • CSS

    • CSS基础

      • css
      • css3
    • flex布局

    • CSS过渡与动画

    • Grid网格布局

    • 移动端布局
    • css 变量
      • 支持非常多的 css 属性
      • 在 JS 中使用 CSS 变量
        • 获取 CSS 变量
        • 获取行内定义变量
        • 获取css标签定义变量
        • 获取全局变量
        • 设置 CSS 变量
        • 简单示例
      • 实例
        • facebook 的 css 变量使用
    • svg的使用
    • 「布局技巧」图片未加载前自动撑开元素高度
    • 文字在一行或多行时超出显示省略号
    • 从box-sizing属性入手,了解盒子模型
    • 水平垂直居中的几种方式-案例
    • 如何根据系统主题自动响应CSS深色模式
    • Typora样式
    • 隐藏与美化滚动条
    • 多行展开收起自动隐藏
    • placeholder 样式修改
    • 实现按钮右下角勾选样式
    • svh、lvh、dvh
  • 页面
  • CSS
夜猫子
2023-11-09
目录

css 变量

# css 变量

不借助 Sass,CSS 也支持变量了!不需要预处理器也不再需要编译

:root {
  /* 1. Defining in Global Scope */
  --color: red;

  /* 2. Available in all selector*/
  color: var(--color); /* red */
}

.local {
  /* 1. Defining in Local Scope */
  --color: blue;

  /* 2. Scoped to the .local class only */
  color: var(--color); /* blue */
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

# 支持非常多的 css 属性

下面列出一部分的用法:

:root {
  --color: red
  --margin: 10px 20px;
  --value: 5;
  --border: var(--border-width) solid #000;
}

div {
  color: var(--color)
  margin: var(--margin);
  padding: calc(var(--value) * 1px); /* 5px */
  border: var(--border);
}
1
2
3
4
5
6
7
8
9
10
11
12
13

# 在 JS 中使用 CSS 变量

# 获取 CSS 变量

使用 getPropertyValue() 获取变量

# 获取行内定义变量

<p style="--color: red"></p>
1
// Get our <p> element
const element = document.querySelector('p');

// Retrieve our CSS variable "--color"
element.style.getPropertyValue('--color'); // 'red'
1
2
3
4
5

# 获取css标签定义变量

<style>
  p {
    --color: red;
  }
</style>
1
2
3
4
5
// Get our <p> element
const element = document.querySelector('p');

// Retrieve our CSS variable "--color"
element.style.getPropertyValue('--color'); // 'red'
1
2
3
4
5

# 获取全局变量

:root {
  --color: red;
}
1
2
3
getComputedStyle(document.documentElement).getPropertyValue('--color'); // "red"
1

# 设置 CSS 变量

使用 setProperty 设置变量

// Get our <p> element
const element = document.querySelector('p');

// Set our "--color" variable to be "blue"
element.style.setProperty('--color', 'blue');
1
2
3
4
5

# 简单示例

<p style="--color:red; color: var(--color)"></p>
1
// Get our <p> element
const element = document.querySelector('p');

// On click, change text from "red" to "blue"
element.addEventListener('click', function() {
  element.style.setProperty('--color', 'blue');
});
1
2
3
4
5
6
7

# 实例

# facebook 的 css 变量使用

CSS 变量是在 class 下定义的,当该类应用于DOM元素时,它的值将应用于其DOM子树中的样式。这让我们可以将主题组合到一个样式表中,这意味着切换不同的主题不需要重新加载页面,不同的页面可以有不同的主题而无需下载额外的CSS,不同的产品可以在同一页面上并排使用不同的主题

.light-theme {
  --card-bg: #eee;
}
.dark-theme {
  --card-bg: #111;
}
.card {
  background-color: var(--card-bg);
}
1
2
3
4
5
6
7
8
9
编辑 (opens new window)
#使用技巧
上次更新: 2023/11/9 14:34:34
移动端布局
svg的使用

← 移动端布局 svg的使用→

最近更新
01
IoC 解决了什么痛点问题?
03-10
02
如何调试 Nest 项目
03-10
03
Provider注入对象
03-10
更多文章>
Copyright © 2019-2025 Study | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式