首页 > 其他分享 >Sass 变量与 CSS 自定义属性

Sass 变量与 CSS 自定义属性

时间:2022-09-01 00:13:09浏览次数:90  
标签:变量 Sass JavaScript 属性 CSS 自定义

Sass 变量与 CSS 自定义属性

这篇文章最初发表在我们自己的博客网站上 一探究竟 看到更多这样的帖子!

在这篇文章中

  • 语境
  • 真正的区别
  • 不可知论方法
  • 最后的想法

语境

在前端世界中,谈论 CSS 预处理器以获取一些常规 CSS 不具备的额外工具和功能是很常见的。虽然有几个预处理器选项,但根据 最近的 GitHub 统计数据 Sass 是最受欢迎的。

作为预处理器,Sass 具有许多功能,超出了在编程语言中使用变量的能力。但是,本文的目标是专门比较 Sass 变量和常规 CSS 变量。有什么区别吗?这个比那个好吗?或者至少,这两个选项之间是否存在技术差异?

真正的区别

尽管 Sass 在某些方面比常规 CSS 更灵活,但在使用变量时需要指出一点:对于 DOM 和 CSSOM,存在 CSS 自定义属性,但 Sass 变量不存在。

这意味着可以使用 JavaScript 更改 CSS 自定义属性的值,这将影响使用该值的每个属性。但是对于 Sass 变量,这根本不可能,因为 Sass 变量被编译为放置它们的 CSS 属性的纯值。

Sass 的最终产品不会包含对变量的任何引用。在示例中,$mainColor 在编译后在 CSS 上不可用。 Sass 变量不会转换为 CSS 自定义属性,它们只是转换为放置它的属性的值。因此,要更新这些属性的值,就必须使用 JavaScript 添加一个带有新值的额外类,或者直接覆盖该元素的值,这对于可维护性可能并不理想。

不可知论方法

使用 Sass 并不是使用 CSS 自定义属性的障碍。 Sass 的编译过程不会与自定义属性等 CSS 原生功能发生冲突。因此,可以将 Sass 与 CSS 自定义属性一起使用。事实上,这是推荐的路线,因为它可以实现流畅的 JavaScript-CSS 交互。

这种方法的唯一缺点是它不适用于不支持 CSS 自定义属性的已停产或过时的浏览器版本。

最后的想法

CSS 预处理器将为您提供比普通 CSS 更多的工具。这是事实,但重新审视本文开头提出的问题,可以肯定地说:风

因此,如果您打算使用 JavaScript 操作样式,这在应用明暗切换选项等实例中很常见,您应该尝试使用 CSS 自定义属性。这对我们来说效果很好。

感兴趣和我们一起工作吗?看看我们的 职业页面 如果您想成为我们团队的一员,请联系我们!

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明

本文链接:https://www.qanswer.top/5818/02240100

标签:变量,Sass,JavaScript,属性,CSS,自定义
From: https://www.cnblogs.com/amboke/p/16645035.html

相关文章

  • 我们应该如何在 CSS 中使用 rem、em、vw 和 px?
    我们应该如何在CSS中使用rem、em、vw和px?当我们开始创建网站时,我们通过HTML创建网站的基本结构,并使用CSS使网站的设计看起来更好。让我们检查一下rem、em、vw......
  • 您在 CSS 媒体查询中犯的错误。
    您在CSS媒体查询中犯的错误。视口,@media,最大高度,最小宽度,@supports,仅,屏幕和其他没用的东西.如果我们有这个,我们需要什么:@media屏幕和(最大宽度:Npx){}吨我看到......
  • 简单的Css动画---边框线条动画
    <!DOCTYPEhtml><htmllang="en"><head>  <metacharset="UTF-8">  <metahttp-equiv="X-UA-Compatible"content="IE=edge">  <metaname="viewport"c......
  • sass讲解
    sass概述sass是一个预编译的css语言,它是使用ruby语言写的,和它一样的预编译语言还有less,它是使用js写的。sass的环境之前是ruby环境,但是由ruby并了python,所以它可以运行在p......
  • NO.6 HTML+CSS 笔记
    第一节1、HTML+CSS是两门语言,联合起来可以开发网页2、HTML+CSS+JavaScript=网页3、HTML:超文本标记语言:定义网页中有哪些内容4、CSS:层叠样式表:定义网页中的东西......
  • 前端——CSS
    CSS 指的是层叠样式表 (Cascading Style Sheets)述了如何在屏幕、纸张或其他媒体上显示HTML元素节省了大量工作。它可以同时控制多张网页的布局 CSS语法 C......
  • Python根据类中属性自定义排序的方法
    如果以创建的对象作为列表中的元素,那么对列表进行排序时可使用sort()函数或sorted()函数,但要注意的是:①当排序对象为列表的时候两者适合的场景不同②sorted()函数会返......
  • webpack css-loader模块化导致的antd样式不好用解决方案
    css-loader模块化会导致antd样式文件无效,解决的方式就是排除node_modules下的目标文件就可以如果你用的less就可以按以下方式来配置{test:/\.less$/,inclu......
  • sass
    sass概述      sass是一个预编译的css语言,它是使用ruby语言写的,和它一样的预编译语言还有less,它是使用js写      的。sass的环境之前是ruby环境......
  • HTML入门2(学习Head First HTML与CSS 第2版)
    <a>元素的内容会成为Web页面中可单击的文本。href属性告诉浏览器链接的目标文件。<ahref="链接地址">链接名称</a>1.一个页面链接到另一个页面,要使用<a>标签。2.<a>元......