Day23:【技术篇】CSS 的变数运用技巧(2)

一、前言

  因为 CSS的变数能运用的地方真的很多,所以就分几篇来穿插介绍罗~

二、CSS 的变数运用技巧

1. 在JavaScript使用css变数

// html
<input type="range" min=60 max=400 id="range">
<div class="circle"></div>
// css
:root {
  --primary: Aquamarine;
  --secondary: Teal;
  --size: 200px;
}
// javascript
const root = document.documentElement;

const range = document.getElementById('range');

range.addEventListener('change', function() {
  root.style.setProperty('--size', `${this.value}px`)
})

2. 用Calc计算 css变数

  • CSS 中更有一个神奇的运算方法 calc,此函式可以无视让不同单位的数值直接做运算,如百分比与绝对单位运算(ex: 100% - 30px)。CSS Variables 也同样能够搭配此方法产生新的值。

  • calc 是作为函式使用,因此可将预期运算的方法置入 calc() 的括号内即可。

// css
.box-1 {
  width: calc(100% - var(--size));
}
// javascript
const root = document.documentElement;

const range = document.getElementById('range');

console.log(range)
range.addEventListener('change', function() {
  root.style.setProperty('--size', `${this.value}px`);
})

3. 使用css变数计算渐层色彩

// css
:root {
  --c: 255;
}

html, body {
  height: 100vh;
  margin: 0;
  padding: 0;
}

body {
  background-image: linear-gradient(
    rgb(
      calc(var(--c) - 60), calc(var(--c) - 40), calc(var(--c))
    ),
    rgb(
      calc(var(--c) - 20), calc(var(--c) - 10), calc(var(--c))
    )
  );
}
// javascript
const root = document.documentElement;

const range = document.getElementById('range');

range.addEventListener('change', function() {
  root.style.setProperty('--c', this.value)
})

三、结论与自我鼓励

  从这里就可以感觉得到,CSS 变数能运用的范围真的很广,而且活用成功的话,程序码也能跟着精简许多。


本文同步发布於我的个人网站 Annie Code Life


<<:  CNN

>>:  Day21 - [丰收款] 以Django Web框架实作永丰API线上支付模拟情境(2) - 购物车与付款方式确认页

Vue出一个行事历 Calendar

前言: 此单元较为复杂,若元件观念较不熟悉的同学,请斟酌观看 这里会运用到props、emit、ES...

资安生活的日常

执行人员:工作超忙,资安什麽的就明天在处理吧... 客户:供应商内控功能疑似失效且烧到利害关系人.....

DAY 10 Partials, Modules

运用两种做法,去衍生不同样式的 css ! Partial Partial 是把 css 拆分的其中...

跨网域传值的神队友——window.postMessage

最近公司的EIP专案有个需求。主管在签核一览表里会点击要签核的单子另开一个视窗,需求单位希望主管签完...

Day 24 - redux-saga 用到 Generators~

如果有错误,欢迎留言指教~ Q_Q 没写完啦 在 React/Redux 中,处理非同步的套件们 ...