Stylus预处理器完整语法与项目实战详细代码案例

简介: Stylus 是一款极简高效的 CSS 预处理器,支持变量、嵌套、Mixin、函数、条件判断与循环等特性,省略分号/大括号/冒号,语法如代码般清晰。本文涵盖环境搭建、核心语法详解及可运行的 Vue/静态页实战案例,助你高效编写可维护样式。(239字)

Stylus预处理器完整语法与项目实战详细代码案例

一、文档简介

Stylus 是一款简洁高效的 CSS 预处理器,舍弃大量冗余符号,支持变量、嵌套、混合、函数、条件判断、循环等高级特性,大幅简化样式开发。本文梳理 Stylus 核心语法,并提供可直接编译运行的完整实战代码,适配前端Vue、静态页面等项目场景。

二、环境快速搭建

1. 全局安装依赖

npm install stylus stylus-loader -g

2. 编译命令

# 单文件编译
stylus index.styl -o index.css
# 监听文件自动编译
stylus -w index.styl -o index.css

三、基础语法代码演示

3.1 变量与运算符

Stylus 无需分号、大括号、冒号,书写极简。

// 定义变量
primary-color = #2563eb
font-size-base = 14px
spacing = 8px

// 运算
box-padding = spacing * 2
border-radius = spacing / 2

.card
  color primary-color
  font-size font-size-base
  padding box-padding
  border-radius border-radius

编译后 CSS:

.card {
   
  color: #2563eb;
  font-size: 14px;
  padding: 16px;
  border-radius: 4px;
}

3.2 选择器嵌套 & 父级引用&

.nav
  height 60px
  background #fff

  a
    display inline-block
    padding 0 12px
    color #333

    &:hover
      color primary-color

  &.dark
    background #1a1a1a
    a
      color #fff

3.3 Mixin 混合宏(复用样式)

// 通用圆角阴影混合
card-shadow(radius = 6px)
  border-radius radius
  box-shadow 0 2px 12px rgba(0,0,0,0.08)

// 调用
.goods-card
  card-shadow(10px)
  padding 16px

3.4 函数与条件判断

// 颜色变暗函数
darken(color, num)
  rgba(color, num)

// 条件判断
bg-type = dark
.box
  if bg-type == dark
    background #222
    color #fff
  else
    background #f5f5f5
    color #333

3.5 for 循环批量样式

// 循环生成间距类
for i in 1..6
  .mt-{
     i}
    margin-top i * 4px

四、综合实战完整案例

index.styl

// 全局变量
theme-blue = #1677ff
text-gray = #666
base-space = 10px

// 混合
flex-center()
  display flex
  justify-content center
  align-items center

// 页面容器
.page-wrap
  width 1200px
  margin 0 auto
  padding base-space * 2

  .title
    font-size 20px
    color theme-blue
    margin-bottom base-space

  .list-item
    flex-center()
    height 80px
    border 1px solid #eee
    margin-bottom base-space

    .desc
      color text-gray
      margin-left base-space

编译输出核心CSS片段:

.page-wrap {
   
  width: 1200px;
  margin: 0 auto;
  padding: 20px;
}
.page-wrap .title {
   
  font-size: 20px;
  color: #1677ff;
  margin-bottom: 10px;
}
.page-wrap .list-item {
   
  display: flex;
  justify-content: center;
  align-items: center;
  height: 80px;
  border: 1px solid #eee;
  margin-bottom: 10px;
}
.page-wrap .list-item .desc {
   
  color: #666;
  margin-left: 10px;
}

五、项目使用注意事项

  1. 原生 CSS 兼容:如需保留分号、大括号,Stylus 完全兼容,两种写法可混用;
  2. 工程化适配:Vue/Webpack 项目安装 stylus-loader 后,直接在 <style lang="stylus"> 内编写;
  3. 性能优化:大量循环代码建议编译时生成静态CSS,避免运行时计算;
  4. 变量作用域:块内变量仅当前选择器生效,全局变量统一写在文件顶部管理。

海量精选技术文档和实战案例持续更新,敬请关注【风骏时光少年】

相关文章
|
2月前
|
人工智能 JSON 前端开发
AI智能体开发的技术方案
AI智能体是基于大模型的分布式系统,含推理、记忆、工具、编排、护栏五层架构,支持路由、计划-执行、ReAct等模式,强调结构化输出、多级记忆、幂等工具调用与全链路可观测性。(239字)
|
4月前
|
数据采集 人工智能 缓存
Python 工程化开发与性能优化实践
本文系统介绍Python工程化开发与性能优化的落地实践:涵盖标准化项目结构、虚拟环境与依赖管理、PEP 8/类型注解/日志配置等规范;并从代码精简、NumPy/Pandas向量化、asyncio/multiprocessing并发、cProfile等工具定位瓶颈四方面展开性能优化,强调可维护性与效率的平衡。(239字)
312 3
|
4月前
|
运维 应用服务中间件 nginx
运维常用软件及高频命令汇总
本文精炼汇总Linux与Windows双平台高频运维命令,涵盖系统监控(★top/free/df)、网络诊断(★ping/netstat)、进程服务管理(★ps/systemctl/tasklist/taskkill)及Nginx、Docker等专项工具,标★命令均为每日必用核心指令,兼顾新手入门与日常速查,实用性强。
543 2
|
4月前
|
运维 安全 中间件
软件系统功能测试与质量保障技术文档
本文档规范软件功能测试全流程,涵盖测试目标、范围、环境、用例设计、执行、缺陷分级与闭环管理,以及质量评估标准和风险应对措施,旨在保障系统功能完整、业务正确、运行稳定,支撑高质量交付与运维。(239字)
307 0
|
3月前
|
人工智能 API Python
办公Agent如何真正提效?用数据对比说明:介入前后团队时间消耗变化
这是一份真实办公提效实验报告:20人团队引入办公Agent后,事务与沟通时间骤降56%,人均每周多出9小时有效工作时间。数据揭示——AI不替代人,而是接管填表、催办、写纪要等低价值衔接工作,让人回归核心创造。(239字)
329 7
|
2月前
|
JavaScript 机器人 开发者
OpenClaw钉钉渠道插件安装与配置|从零到消息回复的完整教程
本教程详解OpenClaw接入钉钉全流程:从钉钉开发者平台创建机器人、获取Client ID/Secret,到OpenClaw安装插件、配置凭证并保存启用,图文步骤清晰,助你快速实现智能消息互通。(239字)
739 0
|
开发者 黑灰产治理
阿里云开发者社区积分细则
阿里云开发者社区,积分规则、领取、过期等相关说明
3800 19
|
移动开发 缓存 前端开发
DingTalk「开发者说」第8期 钉钉微应用开发实战
DingTalk「开发者说」是钉钉开发者最新上线的开发者栏目,联合阿里云ACE团队,分享钉应用开发解决方案、技术更新、实战技巧,致力于成为钉钉与开发者的桥梁与纽带,让更多的钉钉开发者传播技术、提升技能、分享观点。在数字化变革的时代,“云钉一体”“钉钉全面开放”战略之后,希望钉钉技术可以持续激发开发者的创造力,为组织数字化赋能。 本篇介绍了钉钉H5微应用的概念、原理及开发实战。
3716 2
DingTalk「开发者说」第8期 钉钉微应用开发实战

热门文章

最新文章