返回

Stylus 进阶使用整理总结:剩余参数、条件、内置方法及更多

前端

Stylus 进阶指南

超越基础知识,深入探索 Stylus 的强大功能,例如剩余参数、条件、内置方法和变量。

剩余参数

通过剩余参数,您可以向函数传递任意数量的参数。这对于处理可变数量的参数非常方便。

mixin multiple-classes(...) {
  @content;
}

用法:

.container {
  multiple-classes(error, success, warning);
}

条件

if/else 语句

用于根据条件执行代码。

if (condition) {
  // 代码块
} else {
  // 代码块
}

例如:

if (@user.isLoggedIn) {
  // 显示欢迎消息
} else {
  // 显示登录表单
}

switch/case 语句

用于根据表达式值执行代码。

switch (expression) {
  case value1:
    // 代码块
    break;
  case value2:
    // 代码块
    break;
  ...
  default:
    // 代码块
}

例如:

switch (@url) {
  case "/":
    // 显示主页
    break;
  case "/about":
    // 显示关于页面
    break;
  case "/contact":
    // 显示联系页面
    break;
  default:
    // 显示 404 页面
}

内置方法

字符串处理方法

  • str():转换为字符串
  • len():获取长度
  • substr():提取子字符串
  • replace():替换字符串
  • toUpper():转为大写
  • toLower():转为小写

数学运算方法

  • +-*/%:算术运算
  • abs():绝对值
  • ceil():最小整数
  • floor():最大整数
  • round():四舍五入

颜色操作方法

  • rgba():创建 rgba 颜色
  • hsla():创建 hsla 颜色
  • darken()lighten():调整亮度
  • saturate()desaturate():调整饱和度
  • fade():调整透明度

变量

使用变量存储值,以便在不同位置重用。

$theme-color: #333;

用法:

body {
  color: $theme-color;
}

运算符

数学运算符

  • +-*/%:算术运算

字符串连接运算符

  • +:连接字符串

逻辑比较运算符

  • ==:等于
  • !=:不等于
  • <:小于
  • >:大于
  • <=:小于或等于
  • >=:大于或等于

命名

为元素选择器定义别名。

nav {
  .navigation
}

用法:

.navigation {
  background-color: #333;
}

选择器

用于选择文档中的元素。

  • 类型选择器 :基于元素名称
  • 类选择器 :基于元素类
  • ID 选择器 :基于元素 ID
  • 通用选择器 :选择所有元素
  • 后代选择器 :选择特定父元素的子元素
  • 相邻兄弟选择器 :选择紧邻元素的元素
  • 通用兄弟选择器 :选择所有紧邻元素的元素

mixin

创建代码块,以便在其他地方重用。

mixin button {
  display: inline-block;
  padding: 0.5em 1em;
  border: 1px solid #333;
  background-color: #333;
  color: white;
  text-decoration: none;
}

用法:

.primary-button {
  button;
}

继承

允许一个类从另一个类继承属性。

.base {
  display: inline-block;
  padding: 0.5em 1em;
  border: 1px solid #333;
}
.primary-button {
  @extend .base;
  background-color: #333;
  color: white;
  text-decoration: none;
}

结论

通过使用这些高级 Stylus 特性,您可以创建更复杂、更可重用的样式表。充分利用剩余参数、条件、内置方法、变量和 mixin,以简化您的 CSS 开发工作流程。

常见问题解答

  1. 如何在 Stylus 中使用剩余参数?

    通过在函数定义中使用 ... 来定义剩余参数。

  2. 如何使用 Stylus 中的条件?

    使用 if/elseswitch/case 语句来根据条件执行代码。

  3. 内置方法在 Stylus 中有什么作用?

    内置方法提供了字符串处理、数学运算和颜色操作等功能。

  4. 为什么在 Stylus 中使用变量是有益的?

    变量允许您存储值并轻松地在不同位置重用它们。

  5. 如何使用 Stylus 的继承机制?

    通过使用 @extend 指令,您可以让一个类从另一个类继承属性。