首页 web前端 css教程 您不需要 CSS 预处理器

您不需要 CSS 预处理器

Nov 01, 2024 am 08:56 AM

You don

原生 CSS 在最近几个月/几年里取得了长足的进步。在这篇文章中,我将回顾人们使用 SASS、LESS 和 Stylus 等 css 预处理器的主要原因,并向您展示如何使用原生 CSS 完成这些相同的事情。

分隔文件

分离文件是人们使用预处理器的主要原因之一。尽管您已经能够将另一个文件导入到 CSS 文件中已经有一段时间了。看起来像这样。

@import url("./utils.css");
登录后复制
登录后复制

您可以使用相对或绝对路径,就像锚标记或任何其他资源上的 href 一样。

这个预处理器之间的主要区别在于,虽然预处理器会在编译时组合 then,但 CSS 将在运行时发出 http 请求。

嵌套规则

好吧,这是使用预处理器的主要原因。至少这是我过去使用它的主要原因。

但是 CSS 现在支持嵌套,并且它的工作方式主要是您习惯使用预处理器的方式。

header {
  h1 {
    font-weight: bold;
  }

  h2 {
    font-weight: normal;
  }
}

登录后复制
登录后复制

太棒了,像我们几十年来编写 CSS 的巨大优势。

header h1 {
  font-weight: bold;
}

header h2 {
  font-weight: normal;
}
登录后复制
登录后复制

须藤选择器

Sudo 选择器在本机 CSS 中的工作方式与您可能习惯的预处理器相同。

button {
  color: blue;

  &:hover {
    color: purple;
  }
}
登录后复制

您可以在 MDN 上阅读有关嵌套的更多信息。

变量

预处理器长期以来的一个原因是变量。您可以将所有颜色、间距等保存在一个文件中,并在各处进行全局更新。

现在你可以在原生 CSS 中做到这一点,一段时间。事实上,它在很多方面都比预处理器更好。

全局变量

全局变量包含在 :root 规则中。这些可以在任何地方引用。

:root {
  --bg-color: #333;
}
登录后复制

要使用变量,必须使用 var 标签引用

button {
  background-color: var(--bg-color);
}
登录后复制

作用域变量

您还可以在选择器上设置变量的范围,例如...

header {
  --bg-color: #999;
}
登录后复制

所以在这种情况下,引用 var(--bg-color);在标头选择器中将导致 #999;

在运行时重新赋值

因此,CSS 变量相对于预处理器的主要优点是它们可以在运行时被覆盖,而预处理器一旦编译,它就是永久性的。

例如,如果您有一个网站想要支持浅色和深色模式。使用 css 变量可以非常轻松地实现这一点。

:root {
  --bg-color: white;
}

body {
  background-color: var(--bg-color);
}

@media (prefers-color-scheme: dark) {
  :root {
    --bg-color: black;
  }
}
登录后复制

要使用预处理器实现类似的功能,您需要使用 Javascript 在主体上切换类,并使用 .dark 类或类似内容覆盖所有规则。

计算

大多数预处理器(例如 LESS、Stylus 或 SASS)都可以让您对事物进行数学运算。就像你想把一个变量分成两半等等。

您可以在原生 CSS 中使用 calc 函数来完成此操作。

@import url("./utils.css");
登录后复制
登录后复制

这有多酷?

变换颜色

所以另一个流行的功能(至少对我来说)是在CSS预处理器中使颜色变亮和变暗。您现在可以在本机 CSS 中执行此操作,也可以使用颜色混合。

header {
  h1 {
    font-weight: bold;
  }

  h2 {
    font-weight: normal;
  }
}

登录后复制
登录后复制

上面的内容相当于您在预处理器中使用 lighten(red, 50%) 所做的事情。

要变暗,只需与黑色混合而不是白色

header h1 {
  font-weight: bold;
}

header h2 {
  font-weight: normal;
}
登录后复制
登录后复制

我希望下次你选择在项目中使用什么工具时,你会尝试一下原生 CSS。已经走过了很长一段路。

以上是您不需要 CSS 预处理器的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

<🎜>:泡泡胶模拟器无穷大 - 如何获取和使用皇家钥匙
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
Mandragora:巫婆树的耳语 - 如何解锁抓钩
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系统,解释
3 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

热门话题

Java教程
1668
14
CakePHP 教程
1428
52
Laravel 教程
1329
25
PHP教程
1273
29
C# 教程
1256
24
静态表单提供商的比较 静态表单提供商的比较 Apr 16, 2025 am 11:20 AM

让我们尝试在这里造成一个术语:“静态表单提供商”。你带上html

使Sass更快的概念证明 使Sass更快的概念证明 Apr 16, 2025 am 10:38 AM

在一个新项目开始时,Sass汇编发生在眼睛的眨眼中。感觉很棒,尤其是当它与browsersync配对时,它重新加载

每周平台新闻:HTML加载属性,主要的ARIA规格以及从iframe转移到Shadow dom 每周平台新闻:HTML加载属性,主要的ARIA规格以及从iframe转移到Shadow dom Apr 17, 2025 am 10:55 AM

在本周的平台新闻综述中,Chrome引入了一个用于加载的新属性,Web开发人员的可访问性规范以及BBC Move

带有HTML对话框元素的一些动手 带有HTML对话框元素的一些动手 Apr 16, 2025 am 11:33 AM

这是我第一次查看HTML元素。我已经意识到了一段时间,但是尚未将其旋转。它很酷,

纸张形式 纸张形式 Apr 16, 2025 am 11:24 AM

购买或建造是技术的经典辩论。自己构建东西可能会感觉更便宜,因为您的信用卡账单上没有订单项,但是

'订阅播客”链接应在哪里? '订阅播客”链接应在哪里? Apr 16, 2025 pm 12:04 PM

有一段时间,iTunes是播客中的大狗,因此,如果您将“订阅播客”链接到喜欢:

托管您自己的非JavaScript分析的选项 托管您自己的非JavaScript分析的选项 Apr 15, 2025 am 11:09 AM

有很多分析平台可帮助您跟踪网站上的访问者和使用数据。也许最著名的是Google Analytics(广泛使用)

See all articles