细数sass安装中遇到的坑

前言:

前两天打算清理电脑的时候,遇到了一点特殊的问题,打算重装一些东西,其中就有我一直用的顺手的SASS预编译工具。 但是在重装的时候,我发现我居然不会用了??? 靠,要不是我用了半年的Sass,我真以为我这个垃圾的切图仔用了个假的sass。 这里整理一下安装的过程,排除掉安装中遇到的坑,同时也细数一下sass的用法和好处,如有不足之处,欢迎指正和留言;

当然,如果要看更准确的,欢迎直接:www.sass.hk/install/

以下仅仅是我个人的整理笔记,为了改掉我早期不爱写笔记的坏毛病。

这些内容是基于我自己的理解,整理出的模式,目的是为了交流和回忆,这些都是留给我以后填坑用的,如果要是有兴趣,欢迎指正。


安装过程

下载准备:

这里放上ruby:www.ruby-lang.org/en/download… 有能力的朋友可以直接用命令行下,这时候的我还不太会命令行工具。。

安装ruby环境:

Q:肯定有人会问,这里为什么要先装ruby这个东西,这是什么东西?

A:这里稍微解释一下,这个一个编程工具,sass就是基于ruby编译出来的一个工具,至于他有什么好处,有什么特殊的地方,这些你统统不要了解,他的存在就是为sass提供一个运行环境而已;

安装sass文件:

我是window系统,所以,打开CMD命令行,然后什么都不要做,直接输入以下命令:

gem  install sass
复制代码

完成后:

题外话:

安装的方式并非是绝对我这一种,但是目前这是我自己试过最稳妥的方式,如果你用过nodejs的话,那么可以走node路径下载,有了vpn的话,甚至比我这种方式还快;


Sass的优点:

  • 可以计算:

  • 变量定义:

  • 嵌套写法:

  • 继承用法:

个人观点: 以上基本上是我在sass使用过程中最直观的感受,尤其是嵌套和继承,这两个可能新人刚开始用的时候,会觉得不是那么好用,但是用久了,你就会发现,这真是好用,比起CSS那种重复写法真是省事太多了; 可以计算还有定义变量这两种用法,也相当好用,毕竟很多时候,我是真的懒得去一个个改页面中的那些数据;


Sass的编译风格:

这一段引用自blog.csdn.net/u013034014/…。

早期对官方那种较为死板的说明方式很是不喜,所以错过了官方那种明白的教程,走了很长时间的弯路。

弯路走了很多,不过,最终应该也是走到了正路上了,靠着这篇博客,我也算是把SASS最后这段弯路给补全了吧。。。。

希望各位新人在学习的时候,尽可能的多看各种官方文档,毕竟,没有比官方文档更正确的了。。

因为每个前端工程师编写代码的风格都不太一样,所以Sass的编译也非常人性化的提供了不同风格的编译方式,主要分为4种

  • 嵌套输出 nested
  • 展开输出 expanded
  • 紧凑输出 compact
  • 压缩输出 compressed

肯定有人疑惑,这四种方式到底是什么意思,后边的英文又是做什么的,那么,话不多说,直接进入正题吧。

CSS源码:

nav {  ul {  margin: 0;  padding: 0;  list-style: none;  }  li { display: inline-block; }  a {  display: block;  padding: 6px 12px;  text-decoration: none;  }  
} 
复制代码

1.嵌套输出 nested:

nav ul {  margin: 0;  padding: 0;  list-style: none; }  
nav li {  display: inline-block; }  
nav a {  display: block;  padding: 6px 12px;  text-decoration: none; } 
复制代码

这是默认的风格,我一开始不知道怎么调的时候,很是伤脑筋,总觉得这个默认风格特别傻,并不是特别好用。

2.展开输出 expanded:

nav ul {  margin: 0;  padding: 0;  list-style: none;  
}  
nav li {  display: inline-block;  
}  
nav a {  display: block;  padding: 6px 12px;  text-decoration: none;  
}  
复制代码

这是我以前傻写CSS常用的编写方式,看着非常舒服和习惯,如果要是预编译给我自己看的话,我用的就是这种方式。

3.紧凑输出 compact

nav ul { margin: 0; padding: 0; list-style: none; }  
nav li { display: inline-block; }  
nav a { display: block; padding: 6px 12px; text-decoration: none; }  
复制代码

这个也就是所谓的单行CSS格式啦,还是有不少人喜欢这个风格的。。话说,这种傻屌的用法真的不怕自己眼睛不够用吗。。。我真的是觉得这个用法比较瞎眼。。。

4.压缩输出 compressed:

nav ul{margin:0;padding:0;list-style:none}nav li{display:inline-block}nav a{display:block;padding:6px 12px;text-decoration:none}  
复制代码

也就是变成了压缩之后的CSS代码,去掉了所有的空格和换行。如果是特别巨大的页面工程,推荐使用这个编码风格。

这里稍微解释一下,为什么说这种风格适合大的页面工程:

首先,空行和空格,这两样在CSS样式中,在载入渲染的时候,会占有一定的资源的。

也许,这在简单的页面没有什么感觉。但是,对于那种上万行CSS样式的项目来说,这就很要命了,就算一个空行消耗的时间可以忽略,那上万行下来的时间傻子也能看出来不对劲。

所以,这样压缩便有了以下的优势:

  • 1、减小了文件的体积
  • 2、减小了网络传输量和带宽占用
  • 3、减小了服务器的处理的压力
  • 4、提高了页面的渲染显示的速度

Sass四种编译风格的实现方法:

首先,先说明一点,实现的方式并非只有一种,但是在经历了koala的崩盘后,我对外部工具已经不是很信任了,也许这些可视化工具让sass编译的过程显得很轻松易懂,但是一旦出了问题,可就不是那么轻松易懂了,所以我个人推荐还是用命令行来编辑,还是命令行这玩意靠谱。。

所以,以下只介绍一种编译方式:命令行编译,其余的方式自行上官网了解吧。SASS中文网:www.sass.hk/install/

还有之前那位大佬的博客,这里也贴一下:blog.csdn.net/u013034014/…

固有格式

sass --watch SASS文件名.scss:想要的CSS文件名.css --style 四种方式中你想要的输出风格
复制代码

以压缩编译为例:

sass --watch style1.scss:style1.css --style compressed
复制代码

好吧,其实很简单,就是在原来编译指令的后面加了 --style 输出风格

所以只要依据需求,把compact,compressed这样的参数写在--style后面就行

结语:

以上就是对SASS的梳理了,用了这么就,对于SASS的使用,还是略有一点心得的,说起来惭愧,这么长时间了,这恐怕是我唯一用的熟手的东西了。

但是这段时间在见识了各路大佬那恐怖的学习速度后,我不认为我这点熟手的东西有什么值得自豪的,也许只是一两天就能弄明白的东西吧。

如果我上边说的有什么不对的地方,还请指教,最后,在这里谢过了。

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

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

相关文章

442. 数组中重复的数据

442. 数组中重复的数据 给定一个整数数组 a,其中1 ≤ a[i] ≤ n (n为数组长度), 其中有些元素出现两次而其他元素出现一次。 找到所有出现两次的元素。 你可以不用到任何额外空间并在O(n)时间复杂度内解决这个问题吗? 示例&am…

[bzoj 2726] 任务安排 (斜率优化 线性dp)

3月14日第三题!!!(虽然是15号发的qwq) Description 机器上有N个需要处理的任务,它们构成了一个序列。这些任务被标号为1到N,因此序列的排列为1,2,3…N。这N个任务被分成若干批,每批…

2018年,牛客网小白月赛5

第一次啊,补题,希望大佬批评。 题目按我补题顺序来的。 https://www.nowcoder.com/acm/contest/135#question H 题 最大公倍数 题意:给出两个数,求最大公倍数 欧几里德算法算出最大公约数k; 然后算出。最大公倍数即可 代码如下: …

292. Nim 游戏

292. Nim 游戏 你和你的朋友,两个人一起玩 Nim 游戏: 桌子上有一堆石头。你们轮流进行自己的回合,你作为先手。每一回合,轮到的人拿掉 1 - 3 块石头。拿掉最后一块石头的人就是获胜者。 假设你们每一步都是最优解。请编写一个函…

0710 mux协议的作用(ppp拨号时如何和gprs进行at指令交互)

ppp拨号使gprs上网的同时如何和gprs模块进行at指令的交互,这是一个问题。 在linux中,ppp拨号上网是内核中支持的,只需要在内核配置中选上。 ppp拨号的方式使gprs进行上网与at指令使gprs上网,两者之间有不同。ppp是一个将用at指令使…

爬虫笔记(十二)——浏览器伪装技术

为什么要进行浏览器伪装技术? 有一些网站为了避免爬虫的恶意访问,会设置一些反爬虫机制,对方服务器会对爬虫进行屏蔽。常见的饭爬虫机制主要有下面几个: 1. 通过分析用户请求的Headers信息进行反爬虫 2. 通过检测用户行为进行反…

650. 只有两个键的键盘

650. 只有两个键的键盘 最初记事本上只有一个字符 ‘A’ 。你每次可以对这个记事本进行两种操作: Copy All(复制全部):复制这个记事本中的所有字符(不允许仅复制部分字符)。Paste(粘贴&#x…

Codeforces 626F Group Projects (DP)

题目链接 8VC Venture Cup 2016 - Elimination Round 题意 把$n$个物品分成若干组,每个组的代价为组内价值的极差,求所有组的代价之和不超过$k$的方案数。 考虑DP,$f[i][j][k]$表示考虑到第$i$个物品的时候,还有$j$组尚未分配完…

《活出生命的意义》:人生有何意义?

在你一生的阅读体验中,如果能够有一本书,它的某个章节、某种思想、或者某句话能够触动你的内心,解决你的困惑,甚至能改变你的命运,那这样的一本书你一定要视如珍宝,经常翻阅,维克多弗兰克尔的《…

右键添加git-bash

主要: 右键如果没有git-bash,如何给右键手动添加 前面对右键存在git-bash但使用出现问题的解决,也想到如果右键都没有,该如何给右键添加了,于是接着记录下如何添加的过程: 情形: 手动给右键添加…

Weblogic的缓存

2019独角兽企业重金招聘Python工程师标准>>> 最近遇到一个关于weblogic缓存的问题。再把war包放入到weblogic指定目录启动以后,访问页面信息没有更新。最后发现是\weblogic\user_projects\domains\base_domain\servers\AdminServer下的文件没有清除&…

725. 分隔链表

725. 分隔链表 给你一个头结点为 head 的单链表和一个整数 k ,请你设计一个算法将链表分隔为 k 个连续的部分。 每部分的长度应该尽可能的相等:任意两部分的长度差距不能超过 1 。这可能会导致有些部分为 null 。 这 k 个部分应该按照在链表中出现的顺…

LAMP介绍-MySQL安装

2019独角兽企业重金招聘Python工程师标准>>> LAMP: linux-apache-mysql-php (安装方式有:rpm,源码,二进制免编译) linux-操作系统 apache-web服务软件(httpd) mysql-存储数据库 php…

总结verilog产生随机数的$random和seed

$random(seed)是verilog中最简单的产生随机数的系统函数。 在调用系统函数$random(seed)时,可以写成三种样式:1)$random,2)$random(),3)$random(seed)。下面分别说明: 1)…

326. 3的幂

326. 3的幂 给定一个整数,写一个函数来判断它是否是 3 的幂次方。如果是,返回 true ;否则,返回 false 。 整数 n 是 3 的幂次方需满足:存在整数 x 使得 n 3x 示例 1:输入:n 27 输出&#x…

Lottie 站在巨人的肩膀上实现 Android 酷炫动画效果

说到动画效果,一般都会感到很高端,感觉很酷炫;而小菜技术有限,稍复杂的动画效果也需要很多时间处理,但是遇到时间紧任务重的情况该怎么办呢?那就尝试一下 Lottie 吧,酷炫的动画集成却相当简单&a…

正则表达式(读书过程所记未整理)

\d 表示一位数字字符 \d{3} 表示3个数字字符 匹配电话比如400-400-1118 import re phone_number re.compile(r\d{3}-\d{3}-\d{4}) mo phone_number.search(rfor a number is 400-400-4000) print(mo.group()) ************************************************************…

java1

不知道为啥粘贴的图片是一堆编码。。。。 如何插入图片 博客后后台MarkDown编辑器上只有一个按钮,就是用来上传图片并自动插入MarkDown标记的,超级好用 (一)学习总结 1.在java中通过Scanner类完成控制台的输入,查阅JDK…

430. 扁平化多级双向链表

430. 扁平化多级双向链表 多级双向链表中,除了指向下一个节点和前一个节点指针之外,它还有一个子链表指针,可能指向单独的双向链表。这些子列表也可能会有一个或多个自己的子项,依此类推,生成多级数据结构&#xff0c…

PHPstudy搭建本地环境的网页加载速度慢的解决方案

PHP5.3以上,如果数据库链接地址是localhost,会自动检测最终的地址是IPV4还是IPV6,所以会比较慢。解决办法:修改数据库的链接地址,将localhost改为127.0.0.1即可。 原文链接:https://chasjd.com/posts/fb433…