当前位置:首页 > 科技  > 软件

2024年了,为什么 CSS 预处理器依然火爆?

来源: 责编: 时间:2024-09-10 09:50:36 45观看
导读Hello,大家好,我是 Sunday。随着前端工程化的不断提升,CSS预处理器已经成为了项目中不可或缺的一部分,很多人在项目技术选型时都会选择一款CSS预处理器,大部分前端脚手架也包含了一系列CSS预处理的模板,大家已经习惯了CSS预

Hello,大家好,我是 Sunday。ti228资讯网——每日最新资讯28at.com

随着前端工程化的不断提升,CSS预处理器已经成为了项目中不可或缺的一部分,很多人在项目技术选型时都会选择一款CSS预处理器,大部分前端脚手架也包含了一系列CSS预处理的模板,大家已经习惯了CSS预处理器带来的灵活、流畅的代码编写体验,而原生的CSS则被忽视了。ti228资讯网——每日最新资讯28at.com

很多前端开发者可能还认为 CSS 预处理器是一个比较新的技术,但事实上并非如此。最早的 CSS 预处理器 Sass 诞生于 2007 年,也就是说它已经存在了 17 年。而相对较新的 Stylus 也已经发布了 14 年。ti228资讯网——每日最新资讯28at.com

前端技术栈的发展日新月异,W3C 的 CSS 工作组也不断从社区中汲取灵感,加速 CSS 的迭代。那么,CSS 是否能够取代 CSS 预处理器的地位?CSS 预处理器是否会成为 CSS 过渡期的产物?ti228资讯网——每日最新资讯28at.com

W3C 简介

CSS 是开放网络的核心语言之一,由W3C制定,用于跨浏览器实现。因此,在深入了解 CSS 规范更新的进展之前,有必要先了解 W3C 及其标准化进程。ti228资讯网——每日最新资讯28at.com

W3C,又称万维网联盟或 W3C 理事会,是万维网的主要国际标准组织。它是一个半自治的非政府组织,由蒂姆·伯纳斯-李于 1994 年 10 月在麻省理工学院计算机科学和人工智能实验室 (MIT/LCS) 创立。ti228资讯网——每日最新资讯28at.com

W3C 制定了一系列标准,并鼓励网络应用程序开发者和内容提供商遵守这些标准。这些标准涵盖了所用语言的规范、开发指南和解释引擎的行为。W3C 制定了许多有影响力的标准规范,包括HTML、DOM、SVG、XML和CSSti228资讯网——每日最新资讯28at.com

W3C 规范制定流程

由于我们需要在不同的阶段讨论CSS规范,因此有必要简单介绍一下W3C的规范发展过程。ti228资讯网——每日最新资讯28at.com

根据W3C 的流程文档,推荐标准的制定要经历多个阶段。ti228资讯网——每日最新资讯28at.com

图片ti228资讯网——每日最新资讯28at.com

当一种语言的能力不足,而用户的运行环境又不支持其他选择时,这种语言就会成为一种“编译目标”语言,开发者会选择另一种更高级的语言进行开发,然后再编译成低级语言进行实际执行,因此在前端领域,CSS预处理器应运而生,担负起重任。ti228资讯网——每日最新资讯28at.com

预处理器百花齐放

CSS 预处理器是一个允许您使用其自己独特的语法生成 CSS 的程序。ti228资讯网——每日最新资讯28at.com

市面上有很多 CSS 预处理器,绝大多数都加入了原生 CSS 所不具备或者不够完善的高级特性,使得 CSS 的结构更加易读,也更加易于维护。ti228资讯网——每日最新资讯28at.com

目前社区中主要的 CSS 预处理器有以下几种:ti228资讯网——每日最新资讯28at.com

  • Sass:诞生于2007年,是最早最成熟的CSS预处理器,拥有Ruby社区和Compass的支持,是目前最强大的CSS框架,目前受LESS的影响,已经演化为全面支持CSS的SCSS。
  • Less:出现于 2009 年,深受 SASS 影响,但使用 CSS 语法,对大多数开发者和设计人员来说更容易上手。在 Ruby 社区之外,其支持者数量远超 SASS。其缺点是相比 SASS,可编程功能不足;但其优势在于简洁和与 CSS 的兼容性。这也影响了 SASS 向 SCSS 时代的演进。著名的 Twitter Bootstrap 就是以 LESS 作为底层语言。
  • Stylus:Stylus 是 2010 年从 Node.js 社区中诞生的 CSS 预处理器框架,主要用于为 Node 项目提供 CSS 预处理支持。因此,Stylus 是一种新型语言,可以创建类似于 SASS/LESS 的健壮、动态、富有表现力的 CSS

各种预处理器功能虽然强大,但最常用的依然是:变量,混合,嵌套规则和代码模块化。ti228资讯网——每日最新资讯28at.com

这些功能在 css 中也有ti228资讯网——每日最新资讯28at.com

返回 CSS

各类 CSS 预处理器在更新迭代的过程中变得越来越复杂和花哨,但大多数人还是使用同样的核心功能:变量、混合、嵌套、模块,最多一些实用功能。ti228资讯网——每日最新资讯28at.com

这些功能在 css 中依然存在ti228资讯网——每日最新资讯28at.com

变量

CSS 自定义属性(也称为 CSS 变量)允许我们在样式表中声明变量并通过 var() 函数使用它们。ti228资讯网——每日最新资讯28at.com

CSS 自定义属性中的级联变量规范于 2012 年 10 月首次作为工作草案(WD)提出,并于 2015 年 10 月进入候选推荐(CR)阶段。现在浏览器支持率接近 93%。ti228资讯网——每日最新资讯28at.com

图片图片ti228资讯网——每日最新资讯28at.com

CSS变量的定义及使用如下,可定义的类型非常广泛。ti228资讯网——每日最新资讯28at.com

/* 声明 */--VAR_NAME: <声明值>;/* 使用 */var(--VAR_NAME)/* 根元素选择器(全局作用域),例如 <html> */:root {  /* CSS 变量声明 */  --main-color: #ff00ff;  --main-bg: rgb(200, 255, 255);  --logo-border-color: rebeccapurple;  --header-height: 68px;  --content-padding: 10px 20px;  --base-line-height: 1.428571429;  --transition-duration: .35s;  --external-link: "external link";  --margin-top: calc(2vh + 20px);}body {  /* 使用变量 */  color: var(--main-color);}

与 SASS 预处理器变量的编译时处理不同,CSS 变量由浏览器在运行时处理,这使得它们更加强大和灵活ti228资讯网——每日最新资讯28at.com

CSS 到 JS

在 CSS 变量出现之前,将值从 CSS 传递到 JS 非常困难,甚至需要一些 hack 技巧。现在有了 CSS 变量,可以直接通过 JS 访问变量值并进行修改。ti228资讯网——每日最新资讯28at.com

// 定义 CSS 变量.breakpoints-data {  --phone: 480px;  --tablet: 800px;}const breakpointsData = document.querySelector('.breakpoints-data');// 获取 CSS 变量的值const phone = getComputedStyle(breakpointsData)    .getPropertyValue('--phone');// 设置 CSS 变量的新值breakpointsData.style    .setProperty('--phone', 'custom');

除此之外还有很多 css 原生能力,比如:Mixins、运算符,咱们就不再文章中一一列举了。ti228资讯网——每日最新资讯28at.com

总结

经过一番梳理我们发现,CSS虽然在社区的刺激下加快了其更新迭代速度,但依然达不到CSS预处理器的水平,只能说在使用CSS预处理器的同时,也可以在项目中尝试一些非常优秀的CSS新特性,即:CSS preprocessor + CSS。ti228资讯网——每日最新资讯28at.com

不过我们还是相信随着 W3C 的推广和 CSS 本身的不断完善,CSS 预处理器终究会像CoffeScript和Jade当年一样成为过渡性的产品,到那时大家就不用再为不同 CSS 预处理器的各种环境配置和技术选择而烦恼啦。ti228资讯网——每日最新资讯28at.com

本文链接:http://www.28at.com/showinfo-26-112770-0.html2024年了,为什么 CSS 预处理器依然火爆?

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。邮件:2376512515@qq.com

上一篇: 高动态星地链路通信要素及模型研究

下一篇: 为什么Tailwindcss在开发者中如此受欢迎?揭秘背后的原因!

标签:
  • 热门焦点
Top