CSS革命:用Sass/SCSS引領前端創新

目錄

  • 前言
  • SCSS
  • Sass
  • Sass 和 SCSS 的區別

前言

在現代的前端開發中,CSS已成為呈現網頁和應用程序樣式的核心。然而,原生的CSS語法在大型項目中可能變得混亂、冗長且難以維護。
為了解決這些問題,SCSS(Sass CSS)和Sass(Syntactically Awesome Style Sheets)應運而生。
本文將帶你簡單了解sass和scss。

sass中文網
scss中文網

SCSS

SCSS(Sass CSS)是一種CSS預處理器,它擴展了普通的CSS語法,提供了更強大、更靈活的功能。
SCSS使用類似于CSS的語法,并引入了變量、嵌套、混合、繼承等概念,使得CSS代碼更易于編寫和維護。

  1. 變量(Variables):您可以使用變量來存儲顏色、字體、間距等重復使用的值,并在需要的地方引用它們。這樣可以簡化代碼,方便統一修改。

    $primary-color: #007bff;.button {background-color: $primary-color;
    }
    
  2. 嵌套選擇器(Nested Selectors):可以在SCSS中嵌套選擇器,以減少代碼量,改善可讀性。

    .container {width: 100%;.title {font-size: 24px;}
    }
    
  3. 混合(Mixins):混合是一段可重用的代碼塊,可以像函數一樣在需要的地方引用。它可以包含任意數量的屬性和樣式。

    @mixin flexbox {display: flex;justify-content: center;align-items: center;
    }.container {@include flexbox;
    }
    
  4. 繼承(Extend):可以通過繼承樣式來減少重復的CSS代碼。

    .button {border: 1px solid #ccc;padding: 10px;
    }.primary-button {@extend .button;background-color: #007bff;color: #fff;
    }
    
  5. 導入其他文件(Import):可以將SCSS代碼拆分到多個文件中,并使用@import指令將它們導入到主文件中。

    // main.scss
    @import "variables";
    @import "buttons";
    
  6. @content 是 Sass/SCSS 中的特殊指令,用于在自定義的混入(Mixin)中傳遞代碼塊。通過使用 @content,可以將一個或多個代碼塊傳遞給混入,并在混入中使用這些代碼塊。

    @mixin media-query($size) {@media (max-width: $size) {@content;}
    }.container {width: 100%;@include media-query(768px) {background-color: #f5f5f5;}
    }
    

    編譯后的 CSS 代碼如下所示:

    .container {width: 100%;
    }@media (max-width: 768px) {.container {background-color: #f5f5f5;}
    }
    

    應用: 創建適應不同屏幕尺寸或其他條件的樣式。

以上只是SCSS的一小部分功能和用法。SCSS還提供了更多的功能,如條件語句、循環、函數等,以及靈活的配置選項,更多內容見scss中文網。


Sass

Sass(Syntactically Awesome Style Sheets)是一種CSS預處理器,它擴展了普通的CSS語法,并提供了更多的功能和特性。
Sass與SCSS非常相似,實際上,SCSS是Sass的一種語法擴展,可以說是更加兼容和易于學習的版本。

以下是一些Sass的特性和用法:

  1. 變量(Variables):在Sass中,使用變量來存儲重復的值,例如顏色、字體大小、間距等,并在需要的地方引用它們。

    $primary-color: #007bff.buttonbackground-color: $primary-color
    
  2. 嵌套選擇器(Nested Selectors):在Sass中嵌套選擇器,以減少代碼量和改善可讀性。

    .containerwidth: 100%.titlefont-size: 24px
    
  3. 混入(Mixins):混入是一段可重用的代碼塊,在需要的地方引用它們。與SCSS類似,混入可以包含任意數量的屬性和樣式。

    @mixin flexboxdisplay: flexjustify-content: centeralign-items: center.container@include flexbox
    
  4. 繼承(Extend):Sass允許通過繼承樣式來減少重復的CSS代碼。

    .buttonborder: 1px solid #cccpadding: 10px.primary-button@extend .buttonbackground-color: #007bffcolor: #fff
    
  5. 導入其他文件(Import):您可以將Sass代碼拆分到多個文件中,并使用@import指令將它們導入到主文件中。

    // main.sass
    @import variables
    @import buttons
    

Sass 和 SCSS 的區別

  • Sass:

    • 使用縮進來表示層級關系,沒有大括號和分號。
    • 通過空行、縮進和冒號來表示屬性和值的關系。
    • 嵌套選擇器使用父級選擇器后跟子級選擇器的方式,可以減少代碼量。
    • 沒有必要寫單位,如可以直接寫 margin: 10,Sass 會自動添加單位。
    • 變量定義符號為 $,例如 $primary-color: #007bff
    • 混入使用 @mixin 聲明,通過 @include 引用。
    • 文件后綴名為 .sass
    // main.sass$primary-color: #007bff.containerwidth: 100%.titlefont-size: 24px.buttonbackground-color: $primary-color
    
  • SCSS:

    • 使用花括號和分號來表示層級關系和語句結束。
    • 屬性和值之間使用冒號來進行分隔。
    • 嵌套選擇器使用普通的 CSS 語法,以大括號表示。
    • 需要明確寫明單位,如 margin: 10px
    • 變量定義符號為 $,例如 $primary-color: #007bff
    • 混入使用 @mixin 聲明,通過 @include 引用。
    • 文件后綴名為 .scss
    // main.scss$primary-color: #007bff;.container {width: 100%;.title {font-size: 24px;}
    }.button {background-color: $primary-color;
    }
    
  • 無論是Sass還是SCSS,最終都會被編譯為普通的CSS代碼

    /* main.css */.container {width: 100%;
    }.container .title {font-size: 24px;
    }.button {background-color: #007bff;
    }
    

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

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

相關文章

Java基礎篇--數組

目錄 聲明和初始化數組: 訪問和修改數組元素: 數組長度: 遍歷數組: 多維數組的遍歷: 數組的常見操作和方法: 拓展小知識: 數組是Java中的一種數據結構,用于存儲相同類型的多個…

B100-技能提升-線程池分布式鎖

目錄 線程池什么是線程池?為什么用線程池?線程池原理常見四種線程池和自定義線程池 線程池 什么是線程池? 池化技術 為什么用線程池? 1 由于設置最大線程數,防止線程過多而導致系統崩潰。 2 線程復用,不需要頻繁創建或銷毀…

包管理機制pip3

pip3 安裝pip3 安裝pip3 apt install python3-pip yum install python3-pip從倉庫出發的命令 查詢倉庫信息 // 獲取默認pip3源 pip3 config get global.index-url查詢所有軟件包 查詢已經安裝的所有軟件包 pip3 list從軟件包出發的命令 從軟件包名出發查詢其他信息 查詢…

230. 二叉搜索樹中第K小的元素

介紹 中序遍歷:左子樹 -> 中 -> 右子樹 二叉搜索樹:中序遍歷可以得到有序的序列 遞歸法 1.使用函數循環遞歸處理 2.使用一個數組來保存 k, 保證在個個遞歸函數中都能看到 看的變化;每訪問一個節點,這個數減一&#xff0c…

軟件測試基礎篇——Redis

Redis Redis數據庫的配置與連接 解壓redis數據庫的安裝包(建議把解壓后的安裝包放到磁盤的根目錄,方便訪問操作)打開【命令行窗口】:winR在命令行窗口,進入到redis安裝目錄中 ? 格式一:cd /d redis目錄…

Linux安裝Zookeeper

1、Zookeeper簡介 ZooKeeper是一個分布式的,開放源碼的分布式應用程序協調服務,是Google的Chubby一個開源的實現,是Hadoop和Hbase的重要組件。它是一個為分布式應用提供一致性服務的軟件,提供的功能包括:配置維護、域…

自然語言處理從入門到應用——LangChain:記憶(Memory)-[記憶的類型Ⅲ]

分類目錄:《自然語言處理從入門到應用》總目錄 對話令牌緩沖存儲器ConversationTokenBufferMemory ConversationTokenBufferMemory在內存中保留了最近的一些對話交互,并使用標記長度來確定何時刷新交互,而不是交互數量。 from langchain.me…

基于灰狼優化(GWO)、帝國競爭算法(ICA)和粒子群優化(PSO)對梯度下降法訓練的神經網絡的權值進行了改進(Matlab代碼實現)

💥💥💞💞歡迎來到本博客????💥💥 🏆博主優勢:🌞🌞🌞博客內容盡量做到思維縝密,邏輯清晰,為了方便讀者。 ??座右銘&a…

環保行業如何開發廢品回收微信小程序

廢品回收是近年來受到越來越多人關注的環保行動。為了推動廢品回收的普及和方便,我們可以利用微信小程序進行制作,方便人們隨時隨地參與廢品回收。 首先,我們需要注冊并登錄喬拓云賬號,并進入后臺。喬拓云是一個提供微信小程序制作…

數據結構(一):順序表詳解

在正式介紹順序表之前,我們有必要先了解一個名詞:線性表。 線性表: 線性表是,具有n個相同特性的數據元素的有限序列。常見的線性表:順序表、鏈表、棧、隊列、數組、字符串... 線性表在邏輯上是線性結構,但…

【云原生】Pod詳講

目錄 一、Pod基礎概念1.1//在Kubrenetes集群中Pod有如下兩種使用方式:1.2pause容器使得Pod中的所有容器可以共享兩種資源:網絡和存儲。1.3kubernetes中的pause容器主要為每個容器提供以下功能:1.4Kubernetes設計這樣的Pod概念和特殊組成結構有…

Django中級指南:理解并實現Django的模型和數據庫遷移

Django 是一個極其強大的 Python Web 框架,它提供了許多工具和特性,能夠幫助我們更快速、更便捷地構建 Web 應用。在本文中,我們將會關注 Django 中的模型(Models)和數據庫遷移(Database Migrations&#x…

上傳代碼到GitCode

Git 全局設置 git config --global user.name "AnyaPapa" git config --global user.email "fangtaihongqq.com" 添加SSH密鑰 Mac終端輸入命令 cd existing_folder git init git remote add origin gitgitcode.net:Java_1710/test.git git add . git co…

2023國賽數學建模A題思路分析

文章目錄 0 賽題思路1 競賽信息2 競賽時間3 建模常見問題類型3.1 分類問題3.2 優化問題3.3 預測問題3.4 評價問題 4 建模資料 0 賽題思路 (賽題出來以后第一時間在CSDN分享) https://blog.csdn.net/dc_sinor?typeblog 1 競賽信息 全國大學生數學建模…

Mac電腦如何把照片以文件格式導出?

在Mac電腦上,我們經常會拍攝、保存和編輯各種照片。有時候,我們可能需要將這些照片以文件形式導出,以便與他人共享、打印或備份。無論您是要將照片發送給朋友、上傳到社交媒體,還是保存到外部存儲設備,導出照片為文件是…

我的Python教程:使用Pyecharts畫柱狀圖

Pyecharts是一個用于生成 Echarts 圖表的 Python 庫。Echarts 是一個基于 JavaScript 的數據可視化庫,提供了豐富的圖表類型和交互功能。通過 Pyecharts,你可以使用 Python 代碼生成各種類型的 Echarts 圖表,例如折線圖、柱狀圖、餅圖、散點圖…

java不支持解壓rar5的解決辦法--引用本地7zip.exe

由于rar5算法未開源,沒有合適的JAVA依賴能夠解決解壓rar5。在運行中報錯: javacom.github.junrar.exception.RarException: badRarArchive 通過引用本地7zip.exe,命令行執行解決: private static void unZipRar5File(String fileP…

探索可視化應用的嶄新前景

在當今數據驅動的世界中,可視化應用成為了一種強大的工具,能夠將復雜的數據轉化為易于理解和分析的圖形形式。隨著技術的不斷發展和創新,可視化應用正迎來嶄新的前景。本文將介紹可視化應用的定義、重要性以及當前的發展趨勢,并探…

Controller是單例還是多例?

Controller是單例還是多例? controller默認是單例的,不要使用非靜態的成員變量,否則會發生數據邏輯混亂。正因為單例所以不是線程安全的。 我們下面來簡單的驗證下: package com.riemann.springbootdemo.controller;import org…