scss預處理器對比css的優點以及基本的使用

本文主要在vue中演示,scss的基本使用。安裝命令

npm install sass sass-loader --save-dev

變量

SCSS 支持變量,可將常用的值(如顏色、字體大小、間距等)定義為變量,方便重復使用和統一修改。

<template><div><div class="box">11111</div></div>
</template><script>
export default {}
</script><style lang="scss" scoped>
// 變量
$title-color:blue;
$text-font:30px;
.box{width: 200px;height: 200px; //使用$title-color變量給邊框設置顏色border: 1px solid $title-color; //使用$text-font變量設置文字大小font-size: $text-font;
}</style>>

嵌套規則?

scss支持嵌套規則,代碼結構更符合html的嵌套邏輯

<template><div><div class="box2"><div class="title">this is title</div></div><div class="title">this is title2</div></div>
</template><script>
export default {}
</script><style lang="scss" scoped>
// 變量
$title-color:blue;
$text-font:30px;// 嵌套規則
.box2{width: 200px;height: 200px;border: 1px solid $title-color;font-size: $text-font;.title{color: $title-color;}
//這里嵌套規則相當于css的 .box2 .title
}.title{color: red;}
</style>>

計算?

<template><div><div class="box3">這是一段文字aaaaaaaaaaa</div></div>
</template><script>
export default {}
</script><style lang="scss" scoped>
// 變量
$title-color:blue;
$text-font:30px;
$pad-value:10px;.box3{// fit-content 元素寬度由內容撐開,在實際開發中注意瀏覽器兼容性width: fit-content;border: 1px solid $title-color;// scss支持計算 這里使用了變量$pad-value,// 效果等同于 padding: (10px * 2);padding: ($pad-value * 2);
}</style>>

繼承?

<template><div><div class="box4">繼承樣式</div></div>
</template><script>
export default {}
</script><style lang="scss" scoped>
// 變量
$title-color:blue;
$text-font:30px;
$pad-value:10px;
$normal-width:200px;
$noraml-height:100px;
.box4{width: $normal-width;height: $noraml-height;//繼承 extendStyle類目的樣式,extendStyle中的樣式都會應用到box4類目上@extend .extendStyle;
}
.extendStyle{color: rgb(24, 211, 33); //該值即為頁面上文字的綠色border: 1px solid $title-color;font-size: 50px;padding: 20px;font-weight: 700;
}</style>>

?混合器

混合器(Mixins)是 SCSS 中一種非常強大的特性,它允許定義一組樣式,然后在多個地方重復使用這些樣式。可以把它想象成一個函數,這個函數封裝了一系列的 CSS 規則,并且可以接受參數,這樣在調用時可以根據不同的需求傳入不同的值,從而實現樣式的靈活復用。

<template><div><div class="box5">混合器</div></div>
</template><script>
export default {}
</script><style lang="scss" scoped>
// 變量
$title-color:blue;
$text-font:30px;
$pad-value:10px;
$normal-width:200px;
$noraml-height:100px;
// 無參數混合器
@mixin radiu-color{border: 2px solid red;border-radius: 10px;
}
// 有參數混合器
@mixin set-bgc($col){background-color: $col;
}
.box5{// 設置邊框和圓角@include radiu-color();// 設置背景顏色為紫色@include set-bgc(purple);padding: 20px;color: orchid ;width: 100px;
}</style>>

導入

在大型項目中,CSS 代碼可能會變得非常龐大和復雜,為了更好地組織和管理這些代碼,SCSS 提供了 `@import` 指令,允許你將多個 SCSS 文件導入到一個主文件中。這樣可以將不同功能的樣式代碼分離到不同的文件中,提高代碼的可維護性和可讀性。

這里創建四個scss文件,_button.scss,_mixin.scss,_variable.scss,main.scss

//_variable.scss 用來存放變量
$title-color:blue;
$text-font:30px;
$pad-value:10px;
$normal-width:200px;
$noraml-height:100px;
$primary-color:rgb(243, 167, 25);
//_mixin.scss 用來存放混合器
// 無參數混合器
@mixin radiu-color{border: 2px solid red;border-radius: 10px;
}
// 有參數混合器
@mixin set-bgc($col){background-color: $col;
}
//_button.scss  封裝按鈕樣式
@import '_variable';// 使用變量和混合器
.button {@include radiu-color;background-color: $primary-color;color: white;padding: 10px 20px;border: none;}
//main.scss 中導入
// 導入變量文件
@import '_variable';
// 導入混合器文件
@import '_mixin';
// 導入按鈕樣式文件
@import '_button';

在組件中使用

<template><div class="box">import導入<!-- 這里的類名button 就是 _button.scss中封裝的樣式 --><button class="button">按鈕</button></div>
</template><script>
export default {}
</script><style lang="scss" scoped>
// 導入
@import '@/css/main.scss';.box{// 驗證是否生效width:$normal-width;color: $title-color;}
</style>

end?

如有誤歡迎指正

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/73969.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/73969.shtml
英文地址,請注明出處:http://en.pswp.cn/web/73969.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Postman 如何高效地轉換時間戳?

在 Postman 中&#xff0c;時間戳的處理對于 API 請求和響應的調試和測試至關重要&#xff0c;正確處理時間戳可以確保數據的準確性和一致性&#xff0c;而 Moment 庫和原生 JS 是兩種常見的處理方式。此外&#xff0c;我們還將介紹 Apifox&#xff0c;它提供了更直觀、更簡便的…

iptables學習記錄

一.四表 filter 表&#xff1a; 主要用于控制數據包的過濾&#xff0c;決定數據包是否允許進出及轉發 。比如設置規則允許特定 IP 訪問服務器的 SSH 端口&#xff08;22 端口&#xff09;&#xff0c;或禁止某些 IP 訪問網站端口&#xff08;80 或 443 端口 &#xff09;。可作…

前端自動創建react項目腳手架

步驟&#xff1a;在終端窗口運行如下命令&#xff1a; npm create vitelatest 也可以指定 vite包 版本&#xff0c; 例如&#xff1a; npm create vite4.1.0 npm執行npm install 很慢 還出現證書問題 執行命令行:npm install -g create-vite npm error code UNABLE_TO_GET_IS…

[從零開始學習JAVA ] 了解線程池

前言&#xff1a; 在Java編程中&#xff0c;線程池是一個強大的工具&#xff0c;它能夠管理和復用線程&#xff0c;提供高效的并發處理能力。通過線程池&#xff0c;我們可以有效地控制并發線程的數量&#xff0c;并降低線程創建和銷毀的開銷。本文將引導你深入了解Java中的線程…

Nginx — Nginx處理Web請求機制解析

一、Nginx請求默認頁面資源 1、配置文件詳解 修改端口號為8080并重啟服務&#xff1a; 二、Nginx進程模型 1、nginx常用命令解析 master進程&#xff1a;主進程&#xff08;只有一個&#xff09; worker進程&#xff1a;工作進程&#xff08;可以有多個&#xff0c;默認只有一…

【C++標準IO庫】字符串流

目錄 一、字符串流概述 1.1 流的概念回顧 1.2 字符串流的定義和作用 二、istringstream 的使用 2.1 基本用法 2.2 常見應用場景 三、ostringstream 的使用 3.1 基本用法 3.2 常見應用場景 四、stringstream 的使用 4.1 基本用法 4.2 常見應用場景 五、字符串流的錯…

C語言pthread庫的線程休眠和喚醒的案例

一、代碼如下 #include<stdio.h> #include<pthread.h> // 定義獨占鎖 pthread_mutex_t mutex; // 定義條件信號對象 pthread_cond_t condition; // 初始化函數 void init(){ int code pthread_mutex_init(&mutex, NULL); printf("共享鎖初…

人臉照片比對 API 接口如何對接?

隨著數字化程度加深&#xff0c;身份驗證的重要性也日益凸顯&#xff0c;它成為保障個人信息安全、維護交易秩序的關鍵環節。人臉照片比對 API 接口作為連接人臉比對技術與各類應用的橋梁&#xff0c;正發揮著越來越重要的作用&#xff0c;成為眾多企業和開發者實現高效、安全身…

java學習筆記9——常用類

字符串相關的類&#xff1a; String 指向同一個地址可才相等 注意這個地方&#xff0c;兩個person對象的name實際上指向的是同一個字符串常量池&#xff08;Tom&#xff09; String常用方法 總結&#xff1a; 1.string類的理解(以JDK8為例說明) 1.1 類的聲明 public final cl…

Day 09

文章目錄 指針數組指針和函數技術名詞解釋技術細節課堂筆記 指針數組 #include<stdio.h> int main() {int a[3] {0,1,2};//指針數組&#xff0c;它是數組&#xff0c;每個元素都是指針int *p[3];p[0] &a[0];p[0] a;p[1] &a[1];p[1] a1;p[2] &a[2];p[…

Nginx — Nginx安裝證書模塊(配置HTTPS和TCPS)

一、安裝和編譯證書模塊 [rootmaster nginx]# wget https://nginx.org/download/nginx-1.25.3.tar.gz [rootmaster nginx]# tar -zxvf nginx-1.25.3.tar.gz [rootmaster nginx]# cd nginx-1.25.3 [rootmaster nginx]# ./configure --prefix/usr/local/nginx --with-http_stub_…

計算機網絡 用deepseek幫助整理的復習資料(一)

### 計算機網絡基礎知識整理 --- #### **一、網絡類型** 1. **局域網 (LAN)** - **定義**&#xff1a;覆蓋小范圍&#xff08;如家庭、教室、公司&#xff09;。 - **特點**&#xff1a;高帶寬、低延遲&#xff0c;設備通過交換機互聯。 - **示例**&#xff1…

Linux SCP傳輸文件免密配置

文章目錄 Linux SCP傳輸文件免密配置生成SSH密鑰對將公鑰復制到遠程服務器測試SSH連接使用SCP免密傳輸文件可選配置帶密碼的秘鑰連接處理使用 ssh-agent進行緩存管理&#xff08;該方式只能確保同一個回話中&#xff0c;多次傳輸只輸一次密碼&#xff09;使用 keychain&#xf…

數字電子技術基礎(三十六)——利用Multisim軟件實現3線-8線譯碼器

目錄 1 手動方式實現3線-8線譯碼器 2 使用字選擇器實現3線-8線譯碼器 現在嘗試利用Multisim軟件來實現3線-8線譯碼器。本實驗目的是驗證74LS138的基本功能&#xff0c;簡單來說就是“N中選1”。 實驗設計&#xff1a; &#xff08;1&#xff09;使能信號&#xff1a;時&am…

wait和notify : 避免線程餓死(以及votile內存可見性和指令重排序問題)

各位看官&#xff0c;大家早安午安晚安呀~~~ 如果您覺得這篇文章對您有幫助的話 歡迎您一鍵三連&#xff0c;小編盡全力做到更好 歡迎您分享給更多人哦 今天我們來學習&#xff1a;wait和notify : 避免線程餓死&#xff08;以及votile內存可見性和指令重排序問題&#xff09; …

HarmonyOS 介紹

HarmonyOS簡介 隨著萬物互聯時代的開啟&#xff0c;應用的設備底座將從幾十億手機擴展到數百億IoT設備。全新的全場景設備體驗&#xff0c;正深入改變消費者的使用習慣。 同時應用開發者也面臨設備底座從手機單設備到全場景多設備的轉變&#xff0c;全場景多設備的全新底座&am…

【視覺提示學習】3.28閱讀隨想

2109.01134 CoOp通過可學習的向量來建模提示的上下文詞匯&#xff0c;這些向量可以用隨機值或預訓練的詞嵌入進行初始化&#xff08;見圖2&#xff09;。我們提供了兩種實現方式&#xff0c;以處理不同性質的任務&#xff1a;一種是基于統一上下文&#xff08;unified context…

計算機求職面試中高頻出現的經典題目分類整理

以下為計算機求職面試中高頻出現的經典題目分類整理&#xff0c;涵蓋技術核心與深度考察方向&#xff0c;答案要點已附解析思路&#xff1a; 一、數據結構與算法 鏈表操作 題目&#xff1a;反轉鏈表&#xff08;迭代/遞歸實現&#xff09;考察點&#xff1a;指針操作、遞歸思維…

uniapp選擇文件使用formData格式提交數據

1. Vue實現 在vue項目中,我們有個文件,和一些其他字段數據需要提交的時候,我們都是使用axios 設置請求頭中的Content-Type: multipart/form-data,然后new FormData的方式來進行提交。方式如下: const sendRequest = () => {const formData = new FormData()formData…

BeanDefinition和Beanfactory實現一個簡單的bean容器

目錄 什么是 Springbean 容器 設計思路 圖解 參考文章 開源地址 BeanDefinition 類 BeanFactory 類 測試類 什么是 Springbean 容器 Spring 包含并管理應用對象的配置和生命周期&#xff0c;在這個意義上它是一種用于承載對象的容器&#xff0c;你可以配置你的每個 Bea…