当前位置: 首页 > article >正文

CSS 预处理器

CSS 预处理器是一种扩展了 CSS 功能的脚本语言,允许使用变量、嵌套规则、混合(Mixins)、函数 等编程技术,这些功能在原生 CSS 中是不支持的,使CSS 代码更加模块化、易于维护、复用性更高。目前最流行的 CSS 预处理器包括 Sass、Less 和 Stylus。

1. Sass

Sass 是最早也是最受欢迎的 CSS 预处理器之一,由 Hampton Catlin 创建,后来被 Ruby 社区接管并继续发展。Sass 有两种语法:SCSS(Sassy CSS)和 Sass(缩进语法)。 

SCSS 使用大括号{}和分号;来分隔语句和声明。

$primary-color: #333;  
.container {   
  color: $primary-color;  
}

Sass使用缩进来表示代码块,不使用大括号和分号。

$primary-color: #333  
.container  
  color: $primary-color  

 混合   @mixin定义    @include调用

@mixin button-style {  
  display: inline-block;  
  padding: 10px 20px;  
  font-size: 16px;  
  cursor: pointer;  
  border-radius: 5px;  
  border: none;  
  &:hover {  
    background-color: #eee;  
  }  
}  
  
.button {  
  @include button-style;  
  background-color: blue;  
  color: white;  
}

 继承   @extend

.message {  
  border: 1px solid #ccc;  
  padding: 10px;  
  color: #333;  
}  
  
.success {  
  @extend .message;  
  border-color: green;  
}
  • 变量:可以存储颜色、字体、选择器名等。
  • 嵌套规则:可以减少重复代码,提高代码的可读性。
  • 混合(Mixins):允许定义一组 CSS 声明,然后可以在一个地方引入它们,或者在多个地方重用。
  • 继承:Sass 允许一个选择器继承另一个选择器的样式。
  • 函数:Sass 有内置函数,也允许定义自己的函数。

2. Less

Less 是由 Alexis Sellier 开发的另一个流行的 CSS 预处理器,它的语法类似于 CSS,并且扩展了 CSS 的功能。Less 允许你使用变量、嵌套规则、混合(mixins)和函数等特性。

@primary-color: #333;  
.container {    
  color: @primary-color;   
}

 混合

.button-style() {  
   ...
}  
  
.button {  
  .button-style();  
  background-color: blue;  
  color: white;  
}

 继承  Less 原生并不直接支持继承,这里通过混合来模拟

.message() {  
  border: 1px solid #ccc;  
  padding: 10px;  
  color: #333;  
}  
  
.message {  
  .message();  
}  
  
.success {  
  .message();  
  border-color: green;  
}
  • 运算:Less 支持在属性值中进行数学运算。

3. Stylus

Stylus 是一个富有表现力的、健壮的、动态的 CSS 语言,由 TJ Holowaychuk 编写。Stylus 的语法非常灵活,几乎可以写成任何你想要的样式。它允许你使用缩进、分号、大括号或任何组合来编写样式。

$primary-color = #333  
.container   
  color $primary-color  

 混合

button-style()  
  ... 
  
.button  
  button-style()  
  background-color blue  
  color white

 继承    extend()

.message  
  border 1px solid #ccc  
  padding 10px  
  color #333  
  
.success  
  extend(.message)  
  border-color green
  
  • 条件语句和循环:Stylus 允许编写条件语句和循环,这是 Sass 和 Less 所不具备的。

区别

1、定义变量

都使用$符号来定义变量,Less 也可以使用@,Stylus 不能以@开头。

2、混合

Sass/SCSS使用@mixin@include来定义和调用混合,而Less则使用.(点)语法。

Stylus 使用类似函数的方式来定义和调用可重用的代码块,但语法更加灵活。

3、继承

Sass/SCSS使用@extend指令,而Less则通过嵌套和混合来实现类似的功能。

Stylus 使用extend()函数来实现继承。


http://www.kler.cn/news/284921.html

相关文章:

  • 10、ollama启动LLama_Factory微调大模型(llama.cpp)
  • opencv之形态学
  • 喜羊羊做Python真题
  • 基于Android+SQLite数据库开发Java考试App
  • 深度学习100问15:什么是交叉熵误差
  • 【Linux】Linux Bash Shell 教程
  • 工程师们都爱看的Docker容器技术,一看就会!保姆级教程(上)
  • Nginx负载均衡请求队列配置:优化流量管理
  • MySQL:简述事务的SQL操作
  • K8S Job
  • CSS优化实践
  • 计算机毕业设计选题推荐-二手物品回收系统-Java/Python项目实战
  • Nuxt3入门:资源文件(第2节)
  • LeetCode第65题 有效数字 结合设计模式:状态模式
  • Linux下C++编程使用动态链接库
  • Openldap可视化工具PhpLdapAdmin服务配置
  • TMPDIR在pip|pip3 install时的作用以及tmp只有noexec权限的解决方法
  • 问题记录之Qt Creator下qDebug中文乱码
  • SparkSQL缓存的用法
  • IM社交-前言
  • 负载均衡的分类有哪些?
  • 路由策略工具
  • 51单片机——模块化编程
  • Kafka分布式集群部署实战:跨越理论,直击生产环境部署难题与解决方案,性能调优、监控与管理策略大揭秘,轻松上手分布式消息中间件
  • 【SQL基础】【leetcode】SQL50题
  • 『功能项目』技能释放【08】
  • Java设计模式【解释器模式】-行为型
  • 【QT线程学习】
  • PowerDesigner16.5 从mysql5.7逆向工程
  • ClickHouse的安装教程