細數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.pswp.cn/news/390062.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/390062.shtml
英文地址,請注明出處:http://en.pswp.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…