Sass 使用说明

news2024/11/20 1:54:21

      CSS 样式表越来越大、 越来越复杂、越来越难以维护。这就是预处理可以提供帮助的地方。 Sass 为你提供了 CSS 中还不存在的特性,例如变量、 嵌套、混合、继承和其它实用的功能,让编写 CSS 代码变得有意思。

      最直接的方式就是在命令行中调用 sass 命令。安装 Sass 之后,你就可以用 sass 命令将 Sass 编译为 CSS 了。 首先你需要告诉 Sass 从哪个文件开始构建,以及将生成的 CSS 输出到哪里。 例如,在命令行中执行 sass input.scss output.css 命令, 将会把 Sass 文件 input.scss 编译输出为 output.css

变量

变量是存储信息并在将来重复利用的一种方式,在整个样式表中都可访问。 你可以在变量中存储颜色、字体 或任何 CSS 值,并在将来重复利用。Sass 使用 $ 符号 作为变量的标志。例如:

嵌套

在编写 HTML 时,您可能已经注意到它有一个清晰的嵌套和可视化层次结构。 而 CSS 则没有。

Sass 允许您嵌套 CSS 选择器,嵌套方式 与 HTML 的视觉层次结构相同。请注意,过度嵌套的规则 将导致过度限定的 CSS,这些 CSS 可能很难维护,并且 通常被认为是不好的做法。

理解了这一点,下面就来看一个典型的网站导航的样式 示例:

你将注意到 ulli 和 a 选择器嵌套在 nav 选择器中。这是组织 CSS 并使其更具可读性的 好方法。

片段

您可以创建部分 Sass 文件,其中包含 您可以包含在其他 Sass 文件中的少量CSS片段。这是模块化CSS并有助于使事情更容易维护的好方法。partial 是一个以下划线开头的 Sass 文件。您可以将其命名为_partial.scss. 下划线让 Sass 知道该文件只是一个部分文件,不应将其生成到CSS文件中。Sass 部分与@use 规则一起使用。

模块

不必将所有 Sass 都写在一个文件中。您可以根据@use规则将其拆分。此规则将另一个 Sass 文件作为模块加载,这意味着您可以使用基于文件名的命名空间在 Sass 文件中引用其变量、mixin函数。使用文件还将在编译输出中包含它生成的CSS !

注意我们@use 'base';styles.scss文件中使用。使用文件时,不需要包含文件扩展名。Sass 很聪明,会为你解决。

混合(Mixins)

CSS中的一些东西写起来有点乏味,尤其是CSS3 和许多存在的供应商前缀。mixin 允许您创建要在整个站点中重用的 CSS声明组。你甚至可以传入值来让你的 mixin 更加灵活。mixin 的一个很好的用途是用于供应商前缀。这是一个例子 transform

要创建一个 mixin,您可以使用该@mixin指令并为其命名。我们已经命名了我们的 mixin transform。我们还在 $property括号内使用变量,因此我们可以传递任何我们想要的转换。创建混入后,您可以将其用作CSS 声明@include,以混入的名称开头。

扩展/继承

这是 Sass 最有用的特性之一。Using@extend允许您将一组CSS属性从一个选择器共享到另一个选择器。它有助于让你的 Sass 非常干。在我们的示例中,我们将使用另一个与扩展占位符类相辅相成的功能,为错误、警告和成功创建一系列简单的消息传递。占位符类是一种特殊类型的类,只有在扩展时才会打印,有助于保持编译后的CSS整洁干净。

上面的代码所做的是告诉.message.success.error.warning表现得像%message-shared。这意味着任何%message-shared出现的地方,.message.success.error, & .warning也会出现。奇迹发生在生成的CSS中,其中每个类都将获得与. 这有助于您避免在HTML 元素上编写多个类名。%message-shared

除了 Sass 中的占位符类之外,您还可以扩展大多数简单的CSS选择器,但使用占位符是确保您没有扩展嵌套在样式中其他地方的类的最简单方法,这可能会导致 CSS 中出现意外的选择器。

请注意,不会生成CSS,%equal-heights因为%equal-heights它永远不会扩展。

操作符

在 CSS 中经常需要做数学计算。Sass 支持一些标准的 数学运算符,例如 +-*/ 和 %。在下面的例子中,我们 将做一些简单的数学运算来计算出 aside & article 的宽度。

上述代码创建了一个非常简单的流式网格,以 960px 作为基准。Sass 中的操作符 让我们可以做一些比如将像素值转换为百分比的操作, 并且使用起来非常简单。 

 

 

 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/10935.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

java和vue的狱警管理系统监狱系统狱务管理系统

简介 狱警管理系统监狱系统狱务管理系统,主要是管理罪犯教育改造、劳动改造、案件管理,罪犯信息管理等 演示视频 https://www.bilibili.com/video/BV1VG411P7YL/?zw&vd_sourcefa4ffd66538a5ca679a754398a6fdb5f 技术:springbootvueel…

git的下载与安装

1. 下载地址 根据自己的电脑配置信息,选用合适的版本进行下载即可,我的电脑上64位win11,所以我选择了64位的widnows版本,下面其他内容也以此版本展开。 windows:Git - Downloading Package macOS:Git - …

Linux-进程管理

基本介绍 在Linux中,每个执行的程序都称为一个进程,每一个进程都分配一个ID号(pid) 程序运行起来就产生了进程 ps ps命令用来查看在目前系统中,有哪些正在执行的进程,以及他们执行的状况,可以不加任何参…

K_A05_004 基于 STM32等单片机驱动2X2块(8X8)点阵模块(MAX7219)显示0-9与中文

目录 一、资源说明 二、基本参数 1、参数 2、引脚说明 三、通信协议说明 工作时序 对应程序: 四、部分代码说明 1、接线说明 1.1、STC89C52RC2X2块(8X8)点阵模块(MAX7219) 1.2、STM32F103C8T62X2块(8X8)点阵模块(MAX7219) 2、亮…

年产10000吨餐厨垃圾制备氨基酸有机肥工厂设计

目录 摘 要 I Abstract II 第1章 餐厨垃圾概况 1 1.1餐厨垃圾性质 1 1.2餐厨垃圾无害化处理的必要性 1 1.3餐厨垃圾资源化处理工艺 1 1.3.1加工有机肥 2 1.3.2好氧堆肥 3 1.3.3厌氧消化 3 第2章 项目概述 4 2.1氨基酸有机肥的介绍 4 2…2 氨基酸有机肥的性质 4 2.3 氨基酸有机肥…

重温Python基础,都是最基础的知识点

前言 最近有很多朋友刚接触python学的还是有点模糊 还有的朋友就是想重温一下基础内容,毕竟基础不牢地动山摇 行吧,就总结了以下的一些知识点,可以都看看哈 一、开发环境搭建 更多学习资料.点击领取即可 1.1 Python解释器的安装 Python解…

三个最常见OSPF故障的实操检测步骤

大家好,我是小咖老师。 OSPF排错咱们已经讲过几期了,有同学反馈说看不懂,内容太多也不好记,今天咱就挑最常见的三个,给大家分析讲解一下。 1、OSPF邻居建立不成功 2、OSPF不能发现其他区域的路由 3、CPU过高问题 O…

-1- threejs 场景常见的方法和属性

场景常见的方法和属性场景的作用场景的坐标系常用的属性常用的方法场景的作用 场景(THREE.Scene)用于存储物体、光源、摄像机及其渲染所需要的其他的对象集合。THREE.Scene 对象又是被称为场景图,它不仅仅是一个对象数组,还包含了整个场景图树形结构中的…

Android API—序列化与反序列化学习+案例

概述 序列化是指将对象的状态信息转换为可以存储或传输形式的过程.在序列化期间,对象将其当前状态写入到临时或持久性存储区.以后可以通过从存储区中读取或者反序列化对象的状态,重新创建该对象. 序列化:利用ObjectOutputStream,把对象的信息,按照固定的格式转成一串字节值输…

论文笔记: 数据驱动的地震波形反演--健壮性与泛化性研究

摘要: 分享对论文的理解, 原文见 Zhongping Zhang and Youzuo Lin, Data-driven seismic waveform inversion: A study on the robustness and generalization. 1. 论文贡献 提供实时预测的 VelocityGAN与其他基于编码器-解码器的数据驱动地震波形反演方法不同, VelocityGAN …

c++ - 第11节 - stack和queue类

1.标准库中的stack类 1.1.stack类 stack类的文档介绍:https://cplusplus.com/reference/stack/stack/?kwstack 注: 1. stack是一种容器适配器,专门用在具有后进先出操作的上下文环境中,其删除只能从容器的一端进行元素的插入与提…

深度学习项目:男女性别识别【附完整源码】

性别分类对于人机交互应用和计算机辅助生理或心理分析等商业领域的许多应用至关重要,因为它包含有关男女特征差异的广泛信息。 本次案例收集了接近二十万的男女数据集图片。 文章目录性别分类简介使用 Python 进行性别分类的机器学习项目导入相关库和数据模型搭建…

Chapter3 Pytorch与机器学习有关函数(一)

3.1 Tensor中统计学有关的函数 3.1.1 平均值、总和 、累积 1.测试结果1 import torcha torch.rand(2, 2)print(a) print(torch.mean(a,)) print(torch.sum(a)) print(torch.prod(a)) 2.测试结果2:数组对第1维操作 import torcha torch.tensor([[1.0,2.0,3.0],[4.…

【毕业设计】酒店评价情感倾向分析系统 - python 深度学习

文章目录0 前言1 概述2 项目所需模块3 数据3.1 数据说明3.1.1 字段说明3.2 数据处理3.2.1 分词处理3.2.3 停用词处理3.2.4 样本均衡3.2.5 建立多层感知机分类模型3.2.6 训练模型3.2.7 网络检测率以及检测结果4 最后0 前言 🔥 Hi,大家好,这里…

回归模型介绍

Datawhale开源学习,机器学习课程,项目地址:https://github.com/datawhalechina/leeml-notes 首先讲机器学习中的:回归,回归Regression可以做哪些东西呢? 股票预测 输入为以往股票走势,预测未来…

HTML标签(下)

一、表格标签 1. 表格的主要作用 表格主要用于显示、展示数据。可以让数据规整、有可读性、有条理。 2. 表格的基本语法 <table><tr><td>单元格内的文字</td>...</tr>... </table><table> </table>是用于定义表格的标签 …

nodejs+vue+elementui零食食品o2o商城系统

目 录 摘 要 1 Abstract 1 1 系统概述 4 1.1 概述 4 1.2课题意义 4 1.3 主要内容 4 2 系统开发环境 5 3 需求分析 7 3.1技术可行性&#xff1a;技术背景 7 3.2经济可行性 7 3.3操作可行性&#xff1a; 8 3.4系统设计规则 8 3.5…

对pure pursuit算法的理解和改进

算法实现 purepursuit的核心其实是一个曲率半径的几何计算。 (x, y)是转换到机器人坐标系上的路径点。L是lookahead distance。r是形成的圆弧半径。D是r和x之间的差值。 根据上面的图形&#xff0c;可以发现有下面的几何关系&#xff1a; 同时通过 y2D2r2y^2 D^2 r^2 y2D2r…

java项目-第134期ssm社团管理系统-java毕业设计

java项目-第134期ssm社团管理系统-毕业设计 【源码请到资源专栏下载】 今天分享的项目是《社团管理系统》 该项目分为前台和后台。主要分成两个角色&#xff1a;普通用户、管理员角色。 普通用户登录前台&#xff0c;看到社团官网发布的一些信息。 比如&#xff1a;首页、新闻…

如何在 .NET MAUI 中加载 json 文件?

引言: 按core传统方式添加 AddJsonFile(“appsettings.json”) 在windows平台和ssr工作正常,但是在 ios 和 android 无法用这种方式,因为资源生成方式不一样. 使用内置资源方式不够灵活而且 ios 平台会提示不能复制 json 文件到目录,于是进行了几天的研究,终于能正确使用了. 资…