Stylus
是一个CSS预处理器,在VUE项目中一般使用Stylus就足够了,Sass
预处理器的node-sass包比较多坑。
(1)在命令行中依次执行如下命令进行安装
npm install stylus --save
npm install stylus-loader --save
(2)在style标签中添加lang属性,例:
<style lang="stylus"></style>
(1)括号可有可无
.hello
color: red;
button
background:blue;
(2)分号可有可无
.hello
color: red
button
background: blue
(3)冒号可有可无(注意需要在属性和属性值之间添加空格)
.hello
color red
button
background blue
(1)缩排
Stylus的语法基于缩进,空格也有重要的意义,如下:
.box
p
background blue
.box p {
background: blue
}
说明:.box与p标签是父子级关系,所以p标签的书写要在box的下一行添加空格。
(2)规则
Stylus就跟CSS一样,允许你使用逗号为多个选择器同时定义属性,如下:
button,input
background blue
button,input {
background: blue;
}
(3)父级引用:字符&指向父选择器
如下这个例子,两个选择器在:hover
伪类选择器上都改变了color值
button,input
background blue
&:hover
color green
button,input {
background: blue;
}
button:hover,input:hover {
color: green;
}
我们可以指定表达式为变量,在大量使用该样式的时候调用该变量
font-size = 50px
div
font font-size '宋体'
div {
font: 50px(引用了变量) '宋体';
变量甚至可以组成一个表达式:
font-size = 50px
font-style = font-size '隶书'
div
font font-style
div {
font: 50px '隶书'
}
Stylus还可以使用一些自己定义的方法
// 定义方法
add(a, b)
a + b
div
// 调用方法
padding add(20px, 30px)
div {
padding: 50px;
}
混合书写和函数定义方法一致,但是应用上还是不同的。
error(borderWidth= 2px) {
border borderWidth solid #F00
color #F00
}
div
// 不传递参数调用方法
error()
p
// 传递参数调用方法
error(10px)
说明:这里定义了一个名叫error的方法,这个error设置了一个参数borderWidth
,在没特别定义外,这个参数的值默认是2px
div {
border: 2px solid #F00;
color: #F00;
}
div p {
border: 10px solid #F00;
color: #F00;
}