iT邦幫忙

2021 iThome 鐵人賽

DAY 23
1
自我挑戰組

新手全端工程師的職場成長歷程系列 第 23

Day23:【技術篇】CSS 的變數運用技巧(2)

  • 分享至 

  • xImage
  •  

一、前言

  因為 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


上一篇
Day22:【技術篇】CSS 的變數運用技巧(1)
下一篇
Day24:【技術篇】設定自己的GitHub Pages
系列文
新手全端工程師的職場成長歷程30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 則留言

0
kk00915
iT邦新手 4 級 ‧ 2021-10-07 22:57:16

我只感覺到你好厲害XDD

我要留言

立即登入留言