12-vue生態圈_sass

webpack
靜態模塊打包工具
它能夠把瀏覽器識別不了的語言(.css,.png),轉換成能夠識別的

本身只能處理js文件

Gulp/Grunt:優化前端開發流程的
webpack是模塊化的解決方案,處理速度更快

安裝
node
node -v
npm -v 包管理工具

yarn
淘寶鏡像 cnpm

局部安裝 npm install --save-dev webpack (在開發過程中需要,打包上線之後不需要的環境/依賴)
全局安裝 npm install -g webpack

webpack腳手架

npm install -g webpack-cli

npm install -g webpack webpack-cli

loader 可以把所有類型的文件轉換成,webpack可以處理的文件
use 轉換時候需要使用的loader
test 轉換的是哪一個或者是哪些類型的文件

module:{
rules:[
{

test: /.css$/i,
use:[‘style-loader’,‘css-loader’]

}
]
}

webpack在讀取使用的loader的時候,順序是從右到左的

css文件
css-loader 加載css文件的
npm install --save-dev css-loader

style-loader 讓加載之後的css文件起作用
npm install --save-dev style-loader

plugin
插件
對wepack現有的功能進行擴展
BannerPlugin 版權信息
html-webpack-plugin


怎麼提高網站的效率(減少網頁的加載時間)
優化css:避免冗餘,對css進行壓縮
優化圖片
使用精靈圖
減少http請求

https
http

SASS
{
}

.one width:100px height:100px

sass是css的預處理語言,提高css的使用效率,
在css的基礎上,新增了變量,嵌套,混合器,文件導入等特性

sass的特色功能
1.兼容css
2.在css的基礎上引入了變量,嵌套等
3.通過函數進行顏色值與屬性值的運算
4.提供指令
5.自定義輸出格式

sass和less
1.less的環境相對sass要簡單,sass依賴於ruby語言,less依賴於javascript
2.less比sass簡單
3.功能上sass要比less強大
4.less和sass的處理機制不一樣
前者是通過客戶端處理的,後者是通過服務端處理,相比較之下前者解析會比後者慢一點
5.相對變量的話,less使用的@,sass使用的$

在vue項目中使用sass
新建一個vue項目
Vue init webpack xxx
(npm如果下載報錯,那麼cnpm)

進入新建的項目
npm install node-sass --save-dev
npm install sass-loader@^7.0.3 –D
(sass-loader一定要指定版本,否則會報錯)

npm5之後,npm install xxx 默認帶–save/-S下載到dependencies,–save-dev/-D下載到devDependencies

找到build文件夾下的webpack.base.conf.js
在module的rules底下,黏貼下面的代碼
{
test: /.scss$/,
loaders: [“style”, “css”, “sass”]
},

到文件中使用scss

1.變量
$myColor:red;
寫什麼變量名,就引用什麼變量名
注意變量值一定要合法,符合css的屬性值的要求

當變量定義在css的規則塊內,那麼我們只能在當前css的代碼塊中使用這個變量
其他代碼塊使用會報錯
變量是有作用域的
變量值也可以引用其他的變量
$myColor:pink;
$myBorder:5px solid $myColor;
h1{
color: $myColor;
border: $myBorder;
}

    在sass中,下劃線和中劃線是可以相互兼容的

2.嵌套

3.父選擇器的標識符
& : 代表上一層父元素,如果在使用僞類元素的時候不加&,那麼會解析成該父元素底下的所有後代元素
// .one :hover{} 不加&符
// .one:hover{} 加了&符

    .one{
        width:  200px;
        height:  200px;
        border:  1px  solid  red;
        &:hover{
            background-color:  pink;
        }
    }

4.組合選擇器嵌套

.hello{
        >.one{
            color:  red;
            +div{
                width:  100px;
                height:  100px;
                background-color:  pink;
            }
        }
}

5.屬性選擇器

   .one{
    width:  100px;
    height:  100px;
    border:{
        style:solid;
        width:  5px;
        color:  red;
    }
}
把屬性名從中間'-'相連的地方拆分開

sass中文件導入
sass的@import規則在生成css文件時就把相關文件導入進來。這意味着所有相關的樣式被歸納到了同一個css文件中,而無需發起額外的下載請求

導入的方式,可以省略後綴名
@import “xxx”

靜默註釋
//
不會出現在css文件中的註釋

混合器
創建
@mixin 混合器名字{

}

使用
@include 混合器名字;

混合器中不僅可以寫屬性,還可以寫選擇器

繼承
@extend

.one{
width: 100px;
height: 100px;
border: 5px solid red;
margin: 10px;
}
.two{
@extend .one;
background-color: pink;
}

在上面的代碼中,two會繼承one的所有樣式,包括和one有關聯的樣式

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章