此篇接续客制化 sass 基础语法以及观念下集,尚未观看上集可以先看完再来看下集。
介绍 sass 原生的
运算
功能,以往 css 要使用计算必须透过calc()
。
加减乘除
符号前後都加上空白,否则可能会导致编译失败。.home {
height: 400px + 50px;
}
不同单位
运算可能会导致编译失败,建议不同单位最好不要混搭(减少编译失败机率)。原因:
px
、cm
)和相对单位(ex:em
、erm
)彼此关系。(详细介绍请参考 Chris 大的:前端新手村 CSS 的单位)示范将演示分为三种(加法减法、乘法除法)
第一种:加法减法
font-size: 1px + 1px; // 2px
font-size: 1pt + 1px; // 1.75pt
font-size: 1px + 1pt; // 2.3333333333px
font-size: 1rem + 1px; // 编译失败
比较好理解的方式
em
、erm
),无法确保每个单位的固定值是多少,所以造成无法换算。px
、cm
),每个单位的值都是确定的不会因为参数设置,就造成每个人的 1px
都不一样。第二种:乘法除法
除 1单位
。font-size: 1px * 1px; // 1px*px,单位变成 px*px 所以编译失败。
font-size: 1px * 1px / 1px; // 1px,因为把多余的 px 抵销,所以运行成功。
第三种:无单位
font-size: 1px * 3; // 3px
font-size: 1rem * 4; // 4rem
⚠️ 注意
想了解更多请参考官方文件:Numeric Operators
scss 宣告变数主要使用
$
关键字,且变数和 javascriptlet 变数
雷同,变数拥有可以被重新赋值
的特性。
资料型态有以下几种:(最後将 Null、Function references 拉出来特别介绍)
12
、100px
(可能有或没有单位)"Helvetica Neue"
、bold
(可能有或没有引号)blue
、#c6538c
、rgb(107, 113, 127)
or hsl(210, 100%, 20%)
1.5em 1em 0 2em
、Helvetica, Arial, sans-serif
()
、[]
也可以。1
开始。Key
对应一个 Value
所组成,常用於储存多笔类似的资料。true
、false
false
与 null
两者算是 false,其余的皆为 true(ex:空字串
、空阵列
、0
)。若为空值,则编译 css 时会自动
省略
。
$demo-color: (
'black': #000,
'white': #fff
);
.banner {
.banner-title {
color: map-get($demo-color, 'blue');
font-size: 3rem;
}
}
编译後 css
.banner-title {
font-size: 3rem;
}
Null 在撰写生成通类别的程序码时,常会使用到的一资料型态。(後面章节会介绍到)
属於资料型态的一种,将
非全域
函式,传给其他区域函式使用,详细可以参考官网。
Bootstrap 使用其它两种方法也可以达到相同效果:
全域
函式,让其他函式呼叫。@mixin
、@include
。真的很少很少很少看到有使用到 get-function()
、call()
的情况。
想了解更完整的范例请参考官方文件:Values
中文翻译为
插补
,将变数替换成字串使用。
语法:#{}
常用於生成通用类别或需要替换字串的地方。(ex:url 连结)
生成通用类别
$btn-types: (
'blue': #809393,
'yellow': #F0E5B0
);
@each $key, $value in $btn-types {
.btn-#{$key} {
color: $value;
}
}
编译後的 css
.btn-blue {
color: #809393;
}
.btn-yellow {
color: #F0E5B0;
}
url 连结
$img-name: teacher;
background-image: url('/#{$img-name}.png');
⚠️ 谨慎检查 css 编译是否正确
想了解更多请参考官方文件:Interpolation
下一集将详细介绍 Bootstrap 客制化 _variable.scss
档案。
<<: <Day19> Subscribe — 订阅及时Ticks逐笔成交资料
>>: Day 19 Libraries & TypeScript
前情提要 前一篇与大家介绍了 Selenium 的基本运用,并在补充资料中给予了语法的资源。 开始之...
前言 在连假结束的第一个上班上课日,总是特别让人没有动力出门。但笔者始终相信只要吃到一份好吃的早餐,...
What is API Test? 我们可以把它想成Unit Test单元测试的一种,不过它所涵盖的...
Aloha~!又是我少女人妻Uerica!这阵子家人住院,从急诊到加护病房再到普通病房,看到形形色色...
What is management? 如果有人问你,「一个主管的工作到底是什麽?」,你会怎麽说? ...