“个人网站”开发实战 第三课

Stylus

讲师:翟路佳

教程二维码 本节课二维码
教程网站 本节课教案

本节课程大纲

  1. CSS 预处理工具
  2. Stylus 简介
  3. 使用 Stylus 进行开发

CSS 预处理工具

CSS 本身的问题

  1. 没有变量、没有判断、没有循环、没有函数
  2. 浏览器兼容问题
  3. 缺少科学的组织方式

解决方案

CSS3

  1. 变量 attr()
  2. 计算属性 calc()
  3. 固定函数 count

预处理工具

  1. LESS
  2. SASS
  3. Stylus

Stylus 简介

官网 | 在线预览效果

安装

npm install stylus -g

编译 Stylus 为 CSS

stylus source/ -o to/

常见用法演示

Stylus

a
  color #333
  text-decoration none

CSS

a {
  color: #333;
  text-decoration: none;
}

层级嵌套

Stylus

.lead
  font-size 1.25em

  a
    color #F90

CSS

.lead {
  font-size: 1.25em;
}
.lead a {
  color: #F90;
}

继承上一级

Stylus

a
  color #333

  &:hover
    color #F60

CSS

a {
  color: #333;
}
a:hover {
  color: #F60;
}

变量,运算

Stylus

gap = 10px

p
  margin-bottom gap * 2
  padding 0 gap

CSS

p {
  margin-bottom: 20px;
  padding: 0 10px;
}

循环

Stylus

for deg in -5..5
  .rotate-{deg * 5}
    transform rotate(deg * 5deg)

CSS

.rotate--25 {
  transform: rotate(-25deg);
}
.rotate--20 {
  transform: rotate(-20deg);
}
....
.rotate-25 {
  transform: rotate(25deg);
}

函数(mixin)

Stylus

border-radius()
  -webkit-border-radius: arguments
  -moz-border-radius: arguments
  border-radius: arguments

a.button
  border-radius(5px)

CSS

a.button {
  -webkit-border-radius: 5px;
  -moz-border-radius: 5px;
  border-radius: 5px;
}

使用 Stylus 开发

作业

  1. 参考教程开发 CSS
  2. 阅读 Stylus 文档
  3. 学习开源项目的 CSS 组织方式,如 Bootstrap

扩展阅读

  1. Why I Choose Stylus (And You Should Too)
  2. 再谈 CSS 预处理器