天天看點

技能學習:學習使用Node.js + Vue.js,開發前端全棧網站-13-1.使用sass工具搭建前台web端頁面

關于sass:

Sass 是一款強化 CSS 的輔助工具,它在 CSS 文法的基礎上增加了變量 (variables)、嵌套 (nested rules)、混合 (mixins)、導入 (inline imports) 等進階功能,這些拓展令 CSS 更加強大與優雅。使用 Sass 以及 Sass 的樣式庫(如 Compass)有助于更好地組織管理樣式檔案,以及更高效地開發項目。 點選連結可進入sass官網

檔案字尾是.scss,在此之前我們先一步一步對頁面進行樣式測試。

1.進入web端

cd web           
npm run serve           
技能學習:學習使用Node.js + Vue.js,開發前端全棧網站-13-1.使用sass工具搭建前台web端頁面

如果admin端已經開啟8080端口,再開啟web端就是8081端口了。

技能學習:學習使用Node.js + Vue.js,開發前端全棧網站-13-1.使用sass工具搭建前台web端頁面

此時我們在web檔案夾中添加style.css檔案,設定頁面樣式:

技能學習:學習使用Node.js + Vue.js,開發前端全棧網站-13-1.使用sass工具搭建前台web端頁面

再到main.js引入該頁面樣式檔案:

技能學習:學習使用Node.js + Vue.js,開發前端全棧網站-13-1.使用sass工具搭建前台web端頁面

頁面發生了變化,效果樣式css的引入沒問題:

技能學習:學習使用Node.js + Vue.js,開發前端全棧網站-13-1.使用sass工具搭建前台web端頁面

2.安裝sass

(1)我們先把style.css檔案字尾改為.scss,然後main.js同樣對引入的style檔案進行修改:

技能學習:學習使用Node.js + Vue.js,開發前端全棧網站-13-1.使用sass工具搭建前台web端頁面

此時頁面報錯,說在web端檔案中找不到sass-loader:

技能學習:學習使用Node.js + Vue.js,開發前端全棧網站-13-1.使用sass工具搭建前台web端頁面

(2)我們安裝sass-loader:

cd web           
npm i -D sass-loader           

由于sass是強化css的輔助工具,是以隻在我們開發時使用sass,待我們項目完成上線時sass就沒有任何作用了。是以我們使用-D在生産環境安裝。

-D即--dev(生産)

包名會被注冊在package.json的devDependencies裡面,僅在開發環境下存在的包用-D,如babel,sass-loader這些解析器

技能學習:學習使用Node.js + Vue.js,開發前端全棧網站-13-1.使用sass工具搭建前台web端頁面

可惜,可惜,無論如何都安裝不成功:)想盡一切辦法

最終,我簡單粗暴地安裝了cnpm,使用cnpm下載下傳了node-sass和sass-loader,原因是sass-loader依賴于node-sass,npm都下載下傳不成功,大家如果npm下載下傳不成功也可以使用cnpm:

npm i cnpm
cnpm i node-sass -d
cnpm i sass-loader -d           
技能學習:學習使用Node.js + Vue.js,開發前端全棧網站-13-1.使用sass工具搭建前台web端頁面

可能是由于淘寶當時引入的cnpm庫中的sass-loader沒有被更新,好像sass安裝後來被官方改為隻能由ruby安裝等原因,但是不深究,我們得到結果就好。

技能學習:學習使用Node.js + Vue.js,開發前端全棧網站-13-1.使用sass工具搭建前台web端頁面

安裝sass-loader成功之後,頁面發生了變化:

技能學習:學習使用Node.js + Vue.js,開發前端全棧網站-13-1.使用sass工具搭建前台web端頁面

應該是sass-loader版本号太高所緻,此時vue-cli中使用到的webpack不能使用版本過高的sass-loader,是以我們下載下傳7.3.1版本:

cnpm install [email protected] -D           
技能學習:學習使用Node.js + Vue.js,開發前端全棧網站-13-1.使用sass工具搭建前台web端頁面

重新進入web端

ctrl + c

y回車

npm run serve            

進入後頁面再次發生變化,此時顯示node-sass版本過高,讓我們使用4.0.0版本:

技能學習:學習使用Node.js + Vue.js,開發前端全棧網站-13-1.使用sass工具搭建前台web端頁面

這時我們解除安裝之前版本的node-sass,安裝4.0.0版本

cnpm uninstall node-sass           
cnpm i [email protected] -d           

安裝完成後,再次重新開機web端。此時頁面正常進入:

技能學習:學習使用Node.js + Vue.js,開發前端全棧網站-13-1.使用sass工具搭建前台web端頁面

3.使用sass

因為sass是css工具,是以.scss檔案可以使用css一切樣式,這時我們測試第一個功能——嵌套。

首先我們修改目前vue頁面元素:

技能學習:學習使用Node.js + Vue.js,開發前端全棧網站-13-1.使用sass工具搭建前台web端頁面
技能學習:學習使用Node.js + Vue.js,開發前端全棧網站-13-1.使用sass工具搭建前台web端頁面

這時我們使用嵌套方法:

就像html語言中的嵌套元素一樣,把元素按父子級嵌套。

p{
    color:red;
}
.a{
    background:red;
    p{
        color: blue;
    }
}           
技能學習:學習使用Node.js + Vue.js,開發前端全棧網站-13-1.使用sass工具搭建前台web端頁面

4.總結

sass的優勢:sass通過變量 (variables)、嵌套 (nested rules)、混合 (mixins)、導入 (inline imports) 等進階功能,增加了效果樣式css的複用性、美觀性和易讀性。

接下來的文章中我們就會使用sass編輯前端樣式,一起學習sass除嵌套以外的其他功能。

繼續閱讀