热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

SASS和SCSS标签详解与scoped局部和全局的使用

首先,学会使用sass:1.先下载和安装node-sass和一些加载器$cnpminstallsass-loadernode-sassvue-style-loader--D2.

首先,学会使用sass:

1.先下载和安装node-sass和一些加载器

$ cnpm install sass-loader node-sass vue-style-loader --D

2.配置webpake加载器:webpack.base.config.js //从这一段上面是默认的!不用改!下面是没有的需要你手动添加,相当于是编译识别sass!

{ test: /\.scss$/, loaders: ["style", "css", "sass"] }

3.在需要用到sass的地方添加lang=scss

。。。。。。。


以上是独立装sass的过程,一般项目在构建的时候会在package.json里面提前引入了node-sass和加载器,webpack也默认配置了加载器,具体参考项目里面的配置。

sass和scss

注意:sass和scss是两个不同的东西!只是相似!sass借鉴了ruby语言的规范很严格!代码里面也没有大括号!这对于习惯用css{}的前端人员很难适应!于是就出现了scss!完美兼容css!还能有sass的功能! 如果用的是webpack-simple模版用sass的话就是lang="sass",sass是没有{}括号的,如果有{}会抱错。 webpack模版的话就是用lang="scss"


以下是关于sass的引入和使用,下面讨论一些关于sass在项目里面如何结构化,和模块化的使用:

1:分散式(参考大部分的后台系统) 分散式是vue官网推荐的一种方式,就是每个模块是一个独立的.vue文件,里面包含template模版,js,css,这三种都用标签封装起来,成为一个vue实例,实例解析的时候逐步解析每个标签的内容,所以这个vue文件里面的sass是局部的,只有这个实例界面生效,一般在标签上面加scoped来局部化,去掉scoped就会变成全局样式。

【好处:】每个vue界面样式独立开发,互不影响,定位问题和改界面样式的话都比较方便,好找

【弊端:】界面被scoped局部化之后,不能覆盖界面里面的子组件样式,因为样式只对当前界面生效。(可以加/deep/解决)

【公共样式和变量:】公共样式和公共变量一般定义在外面,每个界面要用的时候都需要引入(import)

2:集中式(参考大部分的前台系统) 集中就是把所有模块的样式都抽离出来做独立的.scss文件,每个模块里面不写scss标签,写一个公共的scss文件(app.scss)把所有模块的样式按照顺序都引入一遍(先引公共变量,在引公共样式,最后引入每个模块),最后在app.vue里面或者main.js主入口里面import app.scss。最后界面就一个style标签

【好处:】所有样式集中管理,样式之间可以互相覆盖,可以随意覆盖子组件样式,公共变量和公共样式可以随意使用。

【弊端:】所有模块都需要独立的样式文件,导致样式文件过多不好管理,互相覆盖容易产生bug(为了不互相覆盖,每个样式都需要写在 父样式的嵌套里面,引入的时候也需要注意顺序),

【公共样式和变量:】公共样式和公共属性会在引入根样式文件(app.scss)里面第一个引入,这样后面引入的样式就可以随意使用。


关于sass里面怎么定义全局的变量上述的公共样式就是一个解决方案,不过看到一些其他解决方案,也可以参考下:https://www.imooc.com/article/28195


推荐阅读
  • 本文详细介绍了如何使用JavaScript实现数据的双向绑定,包括MVVM架构的基本概念、不同框架下的实现方式以及具体的代码示例。 ... [详细]
  • 本文探讨了前端包管理器的核心功能,包括注册机制、文件存储、上传下载、以及依赖分析等关键特性,并介绍了几种流行的前端包管理工具。 ... [详细]
  • Vue 项目构建与部署指南
    本文将指导您完成Vue项目的构建和部署过程,包括环境搭建、项目初始化及配置、以及最终的部署步骤。 ... [详细]
  • 本文详细探讨了Xshell6评估版到期后无法使用的常见问题,并提供了有效的解决方案,包括如何合法购买授权以继续使用。 ... [详细]
  • 本文由「Vue虚拟实验室」的成员effort撰写,深入探讨了Vue CLI 3.0创建项目后的配置细节,特别是如何通过配置代理解决开发环境中的跨域问题。 ... [详细]
  • 本文介绍了如何使用外向烧鹅IO库来封装GET请求的具体步骤,包括库的安装与配置、请求拦截器的设置以及如何在Vue项目中调用这些封装好的请求方法。 ... [详细]
  • Spring Boot 中静态资源映射详解
    本文深入探讨了 Spring Boot 如何简化 Web 应用中的静态资源管理,包括默认的静态资源映射规则、WebJars 的使用以及静态首页的处理方法。通过本文,您将了解如何高效地管理和引用静态资源。 ... [详细]
  • Vue 开发与调试工具指南
    本文介绍了如何使用 Vue 调试工具,包括克隆仓库、安装依赖包、构建项目以及在 Chrome 浏览器中加载扩展的详细步骤。 ... [详细]
  • CentOS 7.6环境下Prometheus与Grafana的集成部署指南
    本文旨在提供一套详细的步骤,指导读者如何在CentOS 7.6操作系统上成功安装和配置Prometheus 2.17.1及Grafana 6.7.2-1,实现高效的数据监控与可视化。 ... [详细]
  • 本文档汇总了Python编程的基础与高级面试题目,涵盖语言特性、数据结构、算法以及Web开发等多个方面,旨在帮助开发者全面掌握Python核心知识。 ... [详细]
  • Vue项目中应用骨架屏实践
    在当前开发的项目中,由于登录过程涉及多次重定向,导致用户体验不佳。为了改善这一状况,本文介绍了如何使用vue-skeleton-webpack-plugin插件在Vue项目中实现骨架屏,以减少用户感受到的白屏时间。 ... [详细]
  • 本文探讨了Vue项目在Internet Explorer浏览器中遇到的问题及解决方案,包括axios请求失效和页面在低版本浏览器中显示为空白的问题。 ... [详细]
  • 解决Vue项目离线创建问题
    当使用vue-cli工具通过命令`vue init webpack demo`创建Vue项目时,可能会遇到连接超时错误,这通常是因为网络问题导致无法访问远程服务器。本文将介绍如何通过离线方式成功创建Vue项目。 ... [详细]
  • 本文详细探讨了在使用 npm 安装 node-sass 时遇到的 postinstall 脚本错误问题,并提供了有效的解决方案。问题主要源于安装源的配置不当。 ... [详细]
  • 本文探讨了如何通过webpack将大型前端项目拆分为多个小型模块,并在主项目中正确引用这些打包后的模块。 ... [详细]
author-avatar
手机用户2602932547
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有