DAY 07 Mixins

混入 Mixins

当我们在编写 css 时,常常会发现有要重复套用的地方,像是一个网站的主题样式,假如说主色调是蓝色,那当我们在设计字型、底色时,会用到这个蓝色的次数就会增加,如何避免一直在重复写同样的颜色呢?除了使用参数的方法,也可以利用 mixin 去设定,而且当有不同的设计变数时,也可以快速地去更换 style 的布景样式。

@mixin

mixin 相当於统一设定的区块,他就像一个 function 一样,你可以命名它,并且在後面的()中去放参数,之後下方设定关於这个 mixin 的统一内容,例如 font、margin、background color ⋯⋯等。

@include

实际使用 mixin 的区块,他的概念类似把 mixin 设定好的内容拉进来自己的区块,让原本重复的 style 方便地引入要设计的区块,在使用上就是直接 call mixin 的 function,如果有参数就是在参数中填入即可。

实作

$primary-dark: #232323
$primary-gray: #808080
$danger-color: #d31313

@mixin DarkMode($theme:$primary-dark)
    background: $theme
    font-size: 50px
    margin: 10px

.info
    @include DarkMode()
.success
    @include DarkMode($theme: $primary-dark)
.warning
    @include DarkMode($theme: $primary-gray)
.danger
    @include DarkMode($theme: $danger-color)

首先设定一个 DarkMode 的 mixin 主题,在这个主题下我们可以选定主题颜色,来套入 theme 的参数中,并且在不同 class 中,都填入想要套用的主题色,使用 @include 把 DarkMode 带入,可以看到,参数也可以不填写,如果不填写的话,就会带入预设值,即是 $primary-dark 的颜色。

import "./App.css";
import "./assets/sass/mixin.sass";

function App() {
  return (
    <div className="App">
      <header className="App-header">
        <label class="info">this is info</label>
        <label class="success">this is success</label>
        <label class="warning">this is warning</label>
        <label class="danger">this is danger</label>
      </header>
    </div>
  );
}

export default App;

App.js 中套用不同的 class 来检视主题色的效果。

Untitled

套用成功!可以看到预设颜色有正确显示,如果有套入参数的主题也有依据参数颜色来套用。


除此之外,也欢迎大家走走逛逛关於我们团队夥伴的文章

lu23770127 - SASS 基础初学三十天

10u1 - 糟了!是世界奇观!

juck30808 - Python - 数位行销分析与 Youtube API 教学

HLD - 浅谈物件导向与Design Pattern介绍

SiQing47 - 前端?後端?你早晚都要全端的,何不从现在开始?


<<:  渗透测试Web篇

>>:  Day–22 快速认识Excel SUM家族

Vue Components 子元件之间的资料传递

沟通不良的代价就是彼此越来越疏远,然後行同陌路如陌生人。 子元件之间就像兄弟一样的关系,所以这篇要...

Day18:今天来聊一下使用Microsoft 365 Defender 缓和incidents

Azure Defender提供目的导向的使用者介面,可管理和调查 Microsoft 365 服务...

快取机制 心得纪录

这几天听到一个新名词,eTag,我想说这究竟是什麽东西,要上高速公路了吗?、还是什麽特别的tag呢?...

效能监视器--Windows的隐藏监控器

今天要讲的是效能监视器(Performance Monitor),他是Windows内建的监控程序之...

Day14-Machine Learning : Self-attention

因为之後要用到,今天就简单阅读了这个, 投影片和内容都是来自台大李弘毅教授的youtube http...