日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【Sass】全面的 Sass 教程及学习笔记

發布時間:2025/3/21 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【Sass】全面的 Sass 教程及学习笔记 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

  • Sass 安裝教程
    • `npm` 安裝
  • Sass 變量存儲數據
  • Sass 嵌套 CSS
  • Mixins 創建可重用 CSS
  • @if 和 @else 為樣式添加邏輯
  • @for 創建一個 Sass 循環
  • @each 遍歷列表中的項目
  • @while 循環創建樣式
  • Partials 將樣式分成小塊
  • 將一組 CSS 樣式擴展到另一個元素

Sass,英文全稱為 “Syntactically Awesome StyleSheets”,是對 CSS 的擴展。它添加了一些基礎 CSS 中不具有的新特性。 Sass 簡化了 CSS,這讓維護項目中的樣式表變得更容易。

Sass 安裝教程

npm 安裝

我們可以使用 npm(NPM 使用介紹)來安裝 Sass。

npm install -g sass

注: 國內 npm 建議使用淘寶鏡像來安裝,參考:npm 國內慢的問題解決

Sass 變量存儲數據

Sass 不同于 CSS 的一個特點是它允許使用變量。 可以在 Sass 中聲明變量,并為它賦值,就像在 JavaScript 中一樣。

在 JavaScript 和 TypeScript 中,變量是使用 let 和 const 關鍵字定義的。 在 Sass 中,變量以 $ 開頭的,后跟變量名。

這里有幾個例子:

$main-fonts: Arial, sans-serif; $headings-color: green;

并使用變量:

h1 {font-family: $main-fonts;color: $headings-color; }

當需要把多個元素設置成相同顏色時,變量就會很有用。 一旦需要更改顏色,只需要改變這個變量的值就好。

Sass 嵌套 CSS

Sass 允許 CSS 規則的嵌套,這在組織樣式表的時候會很有用。

在 CSS 里,每個元素的樣式都需要寫在獨立的代碼塊中,如下所示:

nav {background-color: red; }nav ul {list-style: none; }nav ul li {display: inline-block; }

對于一個大型項目,CSS 規則會很復雜。 這時,引入嵌套功能(即在對應的父元素中寫子元素的樣式)可以有效地簡化代碼:

nav {background-color: red;ul {list-style: none;li {display: inline-block;}} }

Mixins 創建可重用 CSS

在 Sass 中,mixin 是一組 CSS 聲明,可以在整個樣式表中重復使用。

CSS 的新功能需要一段時間適配后,所有瀏覽器后才能完全使用。 隨著瀏覽器的不斷升級,使用這些 CSS 規則時可能需要添加瀏覽器前綴。 考慮 box-shadow:

div {-webkit-box-shadow: 0px 0px 4px #fff;-moz-box-shadow: 0px 0px 4px #fff;-ms-box-shadow: 0px 0px 4px #fff;box-shadow: 0px 0px 4px #fff; }

對于所有具有 box-shadow 屬性的元素重寫此規則,或者更改每個值以測試不同的效果,需要花費大量的精力。 Mixins 就像 CSS 的函數。 以下是一個例子:

@mixin box-shadow($x, $y, $blur, $c){ -webkit-box-shadow: $x $y $blur $c;-moz-box-shadow: $x $y $blur $c;-ms-box-shadow: $x $y $blur $c;box-shadow: $x $y $blur $c; }

定義以 @mixin 開頭,后跟自定義名稱。 參數($x,$y,$blur,以及上例中的 $c )是可選的。 現在在需要 box-shadow 規則的地方,只需一行 mixin 調用而無需添加所有的瀏覽器前綴。 mixin 可以通過 @include 指令調用。

div {@include box-shadow(0px, 0px, 4px, #fff); }

@if 和 @else 為樣式添加邏輯

Sass 中的 @if 指令對于測試特定情況非常有用 —— 它的工作方式與 JavaScript 和 TypeScript 中的 if 語句類似。

@mixin make-bold($bool) {@if $bool == true {font-weight: bold;} }

類似 JavaScript 和 TypeScript,Sass 也可以使用 @else if 和 @else 測試更多條件:

@mixin text-effect($val) {@if $val == danger {color: red;}@else if $val == alert {color: yellow;}@else if $val == success {color: green;}@else {color: black;} }

@for 創建一個 Sass 循環

可以在 Sass 中使用 @for 循環添加樣式,它的用法和 JavaScript 中的 for 循環類似。

@for 以兩種方式使用:“開始 through 結束” 或 “開始 to 結束”。 主要區別在于 “開始 to 結束” 不包括 結束數字,而 “開始 through 結束” 包括 結束號碼。

這是一個開始 through 結束的示例:

@for $i from 1 through 12 {.col-#{$i} { width: 100%/12 * $i; } }

#{$i} 部分是將變量(i)與文本組合成字符串的語法。 當 Sass 文件轉換為 CSS 時,它看起來像這樣:

.col-1 {width: 8.33333%; }.col-2 {width: 16.66667%; }....col-12 {width: 100%; }

@each 遍歷列表中的項目

上一個挑戰顯示了 @for 指令如何通過起始值和結束值循環一定次數。 Sass 還提供 @each 指令,該指令循環遍歷列表或映射中的每個項目。 在每次迭代時,變量將從列表或映射分配給當前值。

@each $color in blue, red, green {.#{$color}-text {color: $color;} }

map 的語法略有不同。 這是一個示例:

$colors: (color1: blue, color2: red, color3: green);@each $key, $color in $colors {.#{$color}-text {color: $color;} }

請注意,需要用 $key 變量來引用 map 中的鍵。 否則,編譯后的 CSS 將包含 color1,color2… 以上兩個代碼示例都轉換為以下 CSS:

.blue-text {color: blue; }.red-text {color: red; }.green-text {color: green; }

@while 循環創建樣式

Sass 中的 @while 指令與 JavaScript 中的 while 類似。 只要滿足條件,它就會一直創建 CSS 代碼。

使用 @for 創建的簡單網格系統示例。

@for $i from 1 through 12 {.col-#{$i} { width: 100%/12 * $i; } }

用 @while 也可以實現。

$x: 1; @while $x < 13 {.col-#{$x} { width: 100%/12 * $x;}$x: $x + 1; }

首先,定義變量 $x 并將其設置為 1。 接下來,使用 @while 指令,while $x 小于 13 時創建網格系統 。 在設置 width 的 CSS 規則后,$x 增加 1 以避免無限循環。

Partials 將樣式分成小塊

Sass 中的 Partials 是包含 CSS 代碼段的單獨的文件。 這些片段可以導入其它 Sass 文件使用。 可以把類似代碼放到模塊中,以保持代碼結構規整且易于管理。

partials 的名稱以下劃線(_)字符開頭,這樣 Sass 就知道它是 CSS 的一小部分,而不會將其轉換為 CSS 文件。 此外,Sass 文件以 .scss 文件擴展名結尾。 要將 partial 中的代碼放入另一個 Sass 文件中,使用 @import 指令。

例如,如果所有 mixins 都保存在名為 _mixins.scss 的 partial 中,并且在 main.scss 文件中需要它們,下面是使用方法:

@import 'mixins'

請注意,import 語句中不需要下劃線 —— Sass 知道它是 partial。 將 partial 導入文件后,可以使用所有變量、mixins 和其它代碼。

將一組 CSS 樣式擴展到另一個元素

Sass 有一個名為 extend 的功能,可以很容易地從一個元素中借用 CSS 規則并在另一個元素上重用它們。

例如,下面的 CSS 規則塊設置了 .panel class 的樣式。 它有 background-color,height 和 border。

.panel{background-color: red;height: 70px;border: 2px solid green; }

現在需要另一個名為 .big-panel 的面板。 它具有與 .panel 相同的基本屬性,但還需要 width 和 font-size。 可以從 .panel 復制并粘貼初始 CSS 規則,但是當添加更多類型的面板時,代碼會變得重復。 extend 指令是一種重用為一個元素編寫的規則的簡單方法,可以為另一個元素重用并添加更多規則:

.big-panel{@extend .panel;width: 150px;font-size: 2em; }

除了新樣式之外,.big-panel 將具有與 .panel 相同的屬性。

總結

以上是生活随笔為你收集整理的【Sass】全面的 Sass 教程及学习笔记的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。