当我们在编写 css 时,常常会发现有要重复套用的地方,像是一个网站的主题样式,假如说主色调是蓝色,那当我们在设计字型、底色时,会用到这个蓝色的次数就会增加,如何避免一直在重复写同样的颜色呢?除了使用参数的方法,也可以利用 mixin 去设定,而且当有不同的设计变数时,也可以快速地去更换 style 的布景样式。
mixin 相当於统一设定的区块,他就像一个 function 一样,你可以命名它,并且在後面的()中去放参数,之後下方设定关於这个 mixin 的统一内容,例如 font、margin、background color ⋯⋯等。
实际使用 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 来检视主题色的效果。
套用成功!可以看到预设颜色有正确显示,如果有套入参数的主题也有依据参数颜色来套用。
除此之外,也欢迎大家走走逛逛关於我们团队夥伴的文章
juck30808 - Python - 数位行销分析与 Youtube API 教学
SiQing47 - 前端?後端?你早晚都要全端的,何不从现在开始?
沟通不良的代价就是彼此越来越疏远,然後行同陌路如陌生人。 子元件之间就像兄弟一样的关系,所以这篇要...
Azure Defender提供目的导向的使用者介面,可管理和调查 Microsoft 365 服务...
这几天听到一个新名词,eTag,我想说这究竟是什麽东西,要上高速公路了吗?、还是什麽特别的tag呢?...
今天要讲的是效能监视器(Performance Monitor),他是Windows内建的监控程序之...
因为之後要用到,今天就简单阅读了这个, 投影片和内容都是来自台大李弘毅教授的youtube http...