scss预处理器对比css的优点以及基本的使用

本文主要在vue中演示,scss的基本使用。安装命令

npm install sass sass-loader --save-dev

变量

SCSS 支持变量,可将常用的值(如颜色、字体大小、间距等)定义为变量,方便重复使用和统一修改。

<template><div><div class="box">11111</div></div>
</template><script>
export default {}
</script><style lang="scss" scoped>
// 变量
$title-color:blue;
$text-font:30px;
.box{width: 200px;height: 200px; //使用$title-color变量给边框设置颜色border: 1px solid $title-color; //使用$text-font变量设置文字大小font-size: $text-font;
}</style>>

嵌套规则 

scss支持嵌套规则,代码结构更符合html的嵌套逻辑

<template><div><div class="box2"><div class="title">this is title</div></div><div class="title">this is title2</div></div>
</template><script>
export default {}
</script><style lang="scss" scoped>
// 变量
$title-color:blue;
$text-font:30px;// 嵌套规则
.box2{width: 200px;height: 200px;border: 1px solid $title-color;font-size: $text-font;.title{color: $title-color;}
//这里嵌套规则相当于css的 .box2 .title
}.title{color: red;}
</style>>

计算 

<template><div><div class="box3">这是一段文字aaaaaaaaaaa</div></div>
</template><script>
export default {}
</script><style lang="scss" scoped>
// 变量
$title-color:blue;
$text-font:30px;
$pad-value:10px;.box3{// fit-content 元素宽度由内容撑开,在实际开发中注意浏览器兼容性width: fit-content;border: 1px solid $title-color;// scss支持计算 这里使用了变量$pad-value,// 效果等同于 padding: (10px * 2);padding: ($pad-value * 2);
}</style>>

继承 

<template><div><div class="box4">继承样式</div></div>
</template><script>
export default {}
</script><style lang="scss" scoped>
// 变量
$title-color:blue;
$text-font:30px;
$pad-value:10px;
$normal-width:200px;
$noraml-height:100px;
.box4{width: $normal-width;height: $noraml-height;//继承 extendStyle类目的样式,extendStyle中的样式都会应用到box4类目上@extend .extendStyle;
}
.extendStyle{color: rgb(24, 211, 33); //该值即为页面上文字的绿色border: 1px solid $title-color;font-size: 50px;padding: 20px;font-weight: 700;
}</style>>

 混合器

混合器(Mixins)是 SCSS 中一种非常强大的特性,它允许定义一组样式,然后在多个地方重复使用这些样式。可以把它想象成一个函数,这个函数封装了一系列的 CSS 规则,并且可以接受参数,这样在调用时可以根据不同的需求传入不同的值,从而实现样式的灵活复用。

<template><div><div class="box5">混合器</div></div>
</template><script>
export default {}
</script><style lang="scss" scoped>
// 变量
$title-color:blue;
$text-font:30px;
$pad-value:10px;
$normal-width:200px;
$noraml-height:100px;
// 无参数混合器
@mixin radiu-color{border: 2px solid red;border-radius: 10px;
}
// 有参数混合器
@mixin set-bgc($col){background-color: $col;
}
.box5{// 设置边框和圆角@include radiu-color();// 设置背景颜色为紫色@include set-bgc(purple);padding: 20px;color: orchid ;width: 100px;
}</style>>

导入

在大型项目中,CSS 代码可能会变得非常庞大和复杂,为了更好地组织和管理这些代码,SCSS 提供了 `@import` 指令,允许你将多个 SCSS 文件导入到一个主文件中。这样可以将不同功能的样式代码分离到不同的文件中,提高代码的可维护性和可读性。

这里创建四个scss文件,_button.scss,_mixin.scss,_variable.scss,main.scss

//_variable.scss 用来存放变量
$title-color:blue;
$text-font:30px;
$pad-value:10px;
$normal-width:200px;
$noraml-height:100px;
$primary-color:rgb(243, 167, 25);
//_mixin.scss 用来存放混合器
// 无参数混合器
@mixin radiu-color{border: 2px solid red;border-radius: 10px;
}
// 有参数混合器
@mixin set-bgc($col){background-color: $col;
}
//_button.scss  封装按钮样式
@import '_variable';// 使用变量和混合器
.button {@include radiu-color;background-color: $primary-color;color: white;padding: 10px 20px;border: none;}
//main.scss 中导入
// 导入变量文件
@import '_variable';
// 导入混合器文件
@import '_mixin';
// 导入按钮样式文件
@import '_button';

在组件中使用

<template><div class="box">import导入<!-- 这里的类名button 就是 _button.scss中封装的样式 --><button class="button">按钮</button></div>
</template><script>
export default {}
</script><style lang="scss" scoped>
// 导入
@import '@/css/main.scss';.box{// 验证是否生效width:$normal-width;color: $title-color;}
</style>

end 

如有误欢迎指正

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

GPU架构与通信互联技术介绍

文章目录 GPU架构介绍SM 和 Warp Scheduler GPU通信互联技术介绍1、GPUDirectGPUDirect Shared AccessGPUDirect P2PGPUDirect for VideoGPUDirect for RDMARDMAGPUDirect RDMA GPUDirect Storage 2、NVLink & NVSwitchNVLinkNVSwitch 3、应用场景总结 GPU架构介绍 SM 和 …

强化学习与神经网络结合(以 DQN 展开)

目录 基于 PyTorch 实现简单 DQN double DQN dueling DQN Noisy DQN&#xff1a;通过噪声层实现探索&#xff0c;替代 ε- 贪心策略 Rainbow_DQN如何计算连续型的Actions 强化学习中&#xff0c;智能体&#xff08;Agent&#xff09;通过与环境交互学习最优策略。当状态空间或动…

day 16

创建链接文件 软链接&#xff1a;又叫符号链接&#xff0c;类似win的快捷方式&#xff0c;是一种用来建立文件的特殊文件&#xff0c;这个文件里的数据都是建立链接的文件&#xff0c;但是它和建立链接的文件不是一个东西&#xff0c;如果建立链接的文件移动或删除&#xff0c…

fork系统调用

基本概念&#xff1a; 在操作系统里&#xff0c;进程是正在运行的程序的实例。fork() 函数的作用是复制当前进程&#xff0c;生成一个新的进程&#xff0c;这个新进程被称作子进程&#xff0c;而原本的进程则是父进程。这两个进程&#xff08;父进程和子进程&#xff09;会从 …

【leetcode刷题记录】(java)数组 链表 哈希表

文章目录 四、题目之&#xff1a;代码随想录(1) 代码随想录&#xff1a;数组[704. 二分查找](https://leetcode.cn/problems/binary-search/)[27. 移除元素](https://leetcode.cn/problems/remove-element/)暴力解:双指针&#xff1a; [977. 有序数组的平方](https://leetcode.…

在线运行vscode

安装 https://github.com/coder/code-server?utm_sourcesyndication&pubDate20250317 运行前预览脚本 curl -fsSL https://code-server.dev/install.sh | sh -s -- --dry-run运行脚本 curl -fsSL https://code-server.dev/install.sh | sh其他 可以通过后台服务运行&am…

【Tauri2】002——Cargo.toml和入口文件

目录 前言 正文 toml文件的基础 注释——# Comment 键值对——Key/Value 表——[table] 内联表——Inline Table 数组——Array package和crate Cargo.toml文件 Cargo.toml——dependencies Cargo.toml——lib crate-type main.rs 前言 【Tauri2】001——安装及…

Netty源码—7.ByteBuf原理三

大纲 9.Netty的内存规格 10.缓存数据结构 11.命中缓存的分配流程 12.Netty里有关内存分配的重要概念 13.Page级别的内存分配 14.SubPage级别的内存分配 15.ByteBuf的回收 9.Netty的内存规格 (1)4种内存规格 (2)内存申请单位 (1)4种内存规格 一.tiny&#xff1a;表示从…

W、M、C练题笔记(持续更新中)

web here are the flag 点击&#xff0c;页面跳转404.php&#xff0c;用bp抓包访问/flag.php页面&#xff0c;得到flag用base64解码 TryToFindFlag 打开后查看源代码 发现是robots协议&#xff0c;访问robots.txt 访问flllaaa......&#xff0c;得到空白页面&#xff0c;查看…

【高项】信息系统项目管理师(十二)项目干系人管理【3分】

项目干系人管理包括识别能够影响项目或会受项目影响的人员、团队或组织,分析干系人对项目的期望和影响,制定管理策略有效调动干系人参与项目决策和执行。项目干系人管理过程能够支持项目团队的工作。一、管理基础 1、管理的重要性 项目经理和团队管理干系人的能力决定着项目…

Keil(ARMCC)编译改为Cmake(GNU)编译

1. 环境介绍&#xff1a; 某款ARM-M4芯片&#xff08;应该芯片通用&#xff09;cmkeGNUNinja&#xff08;CLion&#xff09; 2. 必备&#xff1a; 芯片启动文件 startup_xxxx.s链接文件 xxxx_flash.ldCMakeLists.txt 3. 具体修改步骤 第一步&#xff1a;观察启动文件…

SpringCould微服务架构之Docker(4)

Docker ce是社区版。 安装docker之前&#xff0c;先安装yum-util 。 安装docker之前&#xff0c;一定要先关闭防火墙。

LangChain开发(四)服务监控(LangSmith、verbose、debug)

文章目录 LangChain服务监控LangSmith Tracing&#xff08;跟踪&#xff09;Verbose&#xff08;1详细日志打印&#xff09;Debug&#xff08;调试日志打印&#xff09;源码地址参考资料 LangChain服务监控 与构建任何类型的软件一样&#xff0c;使用LLM构建时&#xff0c;总会…

从车间到数字生态:MES如何引领制造业智能化革命‌

在全球制造业加速迈向工业4.0的浪潮中&#xff0c;传统生产模式正经历颠覆性变革。制造执行系统&#xff08;MES&#xff09;作为连接物理车间与数字世界的核心纽带&#xff0c;正从“生产辅助工具”升级为“智能决策大脑”&#xff0c;推动制造业向数据驱动、柔性化与可持续化…

人工智能之数学基础:瑞利商的推广形式——广义瑞利商

本文重点 在数学和工程领域,瑞利商(Rayleigh quotient)的推广形式——广义瑞利商(Generalized Rayleigh quotient)扮演着重要的角色。它们不仅为线性代数中的特征值问题提供了新的视角,还在信号处理、机器学习、计算机视觉等领域有广泛的应用。 广义瑞利商的定义 广义…

【QT】QT中的中文显示乱码解决

QT中的中文显示乱码解决 1.编辑栏左键——>选择编码 2.选择UTF-8—>按编码重新载入 3.工具栏左键—>选择选项 4.同样选择UTF-8—>确定即可

优选算法系列(4.前缀和 _下) k

目录 五&#xff1a;和为 k 的子数组&#xff08;medium&#xff09; 题目链接&#xff1a;560. 和为 K 的子数组 - 力扣&#xff08;LeetCode&#xff09; 解法&#xff1a; 代码&#xff1a; 六&#xff1a;和可被 K 整除的子数组&#xff08;medium&#xff09; 题目链…

批量处理word里面表格的空白行

1&#xff0c;随便打开一个word文档。 2&#xff0c;按下Alt F11 VBA编辑器,在左侧的「工程资源管理器」窗口中找到Normal 项目,右键选择插入->模块。 弹出一下弹窗 3&#xff0c;输入一下代码 代码&#xff1a; Sub RemoveEmptyTableRows()Dim tbl As TableDim row As R…

《Linux运维实战:Ubuntu 22.04使用pam_faillock实现登录失败处理策略》

总结&#xff1a;整理不易&#xff0c;如果对你有帮助&#xff0c;可否点赞关注一下&#xff1f; 更多详细内容请参考&#xff1a;Linux运维实战总结 一、背景信息 在ubuntu 22.04中&#xff0c;pam_tally2模块已被弃用&#xff0c;取而代之的是pam_faillock模块。因此&#xf…

如何通过数据可视化提升管理效率

通过数据可视化提升管理效率的核心方法包括清晰展示关键指标、及时发现和解决问题、支持决策优化。其中&#xff0c;清晰展示关键指标尤为重要。通过数据可视化工具直观地呈现关键绩效指标&#xff08;KPI&#xff09;&#xff0c;管理者能快速、准确地理解业务现状&#xff0c…