less&sass

来源:https://www.cnblogs.com/AmyLin-blogs/archive/2019/09/03/11453646.html
-Advertisement-
Play Games

定義: less是一種動態樣式語言,對css賦予了動態語言的特性,比如變數、繼承、運算、函數,既可以運行在客戶端,也可以運行在伺服器端,依賴JavaScript sass是一種動態語言,屬於縮排語法,比css多出很多功能,比如變數、嵌套、運算、混入、繼承、函數等,更容易閱讀; sass與scss關係 ...


定義:

less是一種動態樣式語言,對css賦予了動態語言的特性,比如變數、繼承、運算、函數,既可以運行在客戶端,也可以運行在伺服器端,依賴JavaScript   sass是一種動態語言,屬於縮排語法,比css多出很多功能,比如變數、嵌套、運算、混入、繼承、函數等,更容易閱讀; sass與scss關係:sass的縮排語法,對於閱讀者很不直觀,因此sass對語法進行改良,sass3就變成scss,與原來的語法相容,只是用{}取代了原來的縮進   為什麼要使用less和sass:   因為css只是單純的屬性描述,並不具有變數、條件語句等,css的特性導致了它難組織和維護。   less與sass相同之處:   1.混入 class中的class 2.參數混入 可以傳遞參數的class 3.嵌套規則 class中嵌套class,從而減少重覆的代碼 4.運算 使用數學 5.顏色功能 可以編輯顏色 6.名字空間 7.作用域-局部修改樣式 8.JavaScript賦值,在css中使用JavaScript表達式賦值   區別之處:   1.less基於JavaScript,是在客戶端處理的          很多開發者不會選擇Less因為javaScript引擎需要額外的時間來處理代碼然後輸出修改過的Css到瀏覽器, 【解決:只在開發階段使用Less,一旦開發完成,複製Less輸出的到一個壓縮器,然後用一個單獨的css文件來代替Less文件;另一種方式是使用Less App來編譯和壓縮你的Less文件;這兩種方式都是最小化樣式輸出】   2.sass是基於ruby的,是在伺服器端處理的   變數在less和sass中唯一的區別就是,less使用@,sass使用$   3.變數、使用方面的區別   less: 1.變數: 使用@變數名:變數值 2.混合:無參混合,代參混合 3.less的匹配模式,會根據調用時提供的條件只尋找與之匹配的mixins執行,其中@_表示永遠需要執行的部分 4.less中的運算,加減乘除可帶、可不帶單位;顏色運算時,分紅綠藍三組進行運算,組內可進位,組間互不幹涉 5.包含了傳進來的所有參數:border:@arguments; 6.less中的嵌套保留了html的代碼結構 1)嵌套預設是後代選擇器,如果需要子代選擇器,則在子代前加>2).&表示上一層 &:表示上一層的hover事件   sass: 1.使用$變數名:變數值,如果變數需要需要在字元中嵌套,則需使用#加大括弧包裹 :border-#{$left}:10px solid #ccc; 2.會使用單位 3.嵌套:選擇器嵌套 偽類嵌套 屬性嵌套 選擇器嵌套 ul{li{}} 後代  ul{>li{}}子代  &表示上一級 屬性嵌套:屬性名與大括弧之間必須有: border:{color:red} 4、混合巨集、繼承、占位符   ①混合巨集:聲明:@mixin name($param:value){} 調用:@include name(value); >>>聲明時,可以有參,可以無參;可帶預設值,也可不帶;但是,調用時,必須符合聲明規範。同less >>>優點;可以傳參,不會生成同名class; >>>缺點:會將混合巨集中的代碼,copy到對應的選擇器中,產生冗餘代碼!

 

②繼承:聲明:.class{} 調用:@extend .class; >>>優點:繼承的相同代碼,會提取到並集選擇器中,減少冗餘代碼 >>>缺點:無法進行傳參,會在css中,生成一個同名class

 

③占位符:聲明:&class{} 調用:@extend %class; >>>優點:繼承相同代碼,會提前到並集選擇器;不會生成同名的class選擇器 >>>缺點:無法進行傳參 綜上所述:當需要傳遞參數時,用混合巨集;當有現成的class時用繼承;當不需要參數,也不需要class時,用占位符

 

5、if條件結構: @if 條件{} @else{}   6、for迴圈結構: @for $i from 1 to 10{} 不包含10; @for $i from 1 through 10{} 包含10;   7、while迴圈結構: $j:1; @while $j<10{ .while#{$j}{ border:#{$j}px solid red; } $j:$j+1; }   8、each迴圈遍歷 @each item in a,b,c,d{ //item表示每一項 }   9、函數: @function func($length){ $length1:$length*5; @return $length1; } 調用:func(10px);   10、使用...將傳進來的所有參數,接收到一個變數中 @mixin bordeRadius($param1...){ //使用...將傳進來的所有參數,接收到一個變數中 border-radius:$param1; -webkit-border-radius:$param1; }                    
您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 以上問題是在練習style屬性設置樣式時忽略的,後續需註意。 ...
  • web性能優化,主要分為前端和後臺兩個部分性能優化,後臺性能優化決定了web能不能用,前端優化決定了其好不好用,也就是牽涉到前端用戶體驗和web易用性等情況,所以前端性能與用戶體驗是有著極大的關聯的。 首先,前端優化之前,我們需要知道其整體性能情況,然後對整體情況進行細分與分析,瞭解其每一步所損耗的 ...
  • 我也是進入H5前端的小菜鳥一枚,最近才進入jquery的學習,所以打算對自己的學習進行記錄。 今天分享的是一個簡單的輪播圖,這個輪播圖的特效很簡單,能夠進行圖片的輪播以及點擊相應圖片,圖片能夠跳轉到相應位置 首先書寫的div部分 然後書寫style樣式部分 最後是script部分 然後出現上圖樣式, ...
  • javascript時間戳轉換,支持自定義格式,可以顯示年,月,周,日,時,分,秒多種形式的日期和時間。 推薦一個JavaScript常用函數庫 jutils jutils JavaScript常用函數庫 在日常工作生活中,會經常用到一些日期格式化,url相關操作,瀏覽器類型判斷,常用驗證格式等等函 ...
  • 動態綁定height: v-if、v-else例: ...
  • 右擊文件 > 驗證本文檔語法(V)後報錯 解決: 項目右鍵->”屬性”->”語法&框架”界面中配置項目的javaScript版本,將ECMAScript5.1 修改為6。 ...
  • 一:安裝 方式1: 腳手架安裝 方式2: 直接引入對應的js文件 二:Vue基礎知識 三:組件化 四、自定義指令 ...
  • <html lang="en"> <head> <meta charset="UTF-8"> <title>自適應頁面</title> <style type="text/css"> .div1{ position: relative;} .div2{ position: absolute; tex ...
一周排行
    -Advertisement-
    Play Games
  • 示例項目結構 在 Visual Studio 中創建一個 WinForms 應用程式後,項目結構如下所示: MyWinFormsApp/ │ ├───Properties/ │ └───Settings.settings │ ├───bin/ │ ├───Debug/ │ └───Release/ ...
  • [STAThread] 特性用於需要與 COM 組件交互的應用程式,尤其是依賴單線程模型(如 Windows Forms 應用程式)的組件。在 STA 模式下,線程擁有自己的消息迴圈,這對於處理用戶界面和某些 COM 組件是必要的。 [STAThread] static void Main(stri ...
  • 在WinForm中使用全局異常捕獲處理 在WinForm應用程式中,全局異常捕獲是確保程式穩定性的關鍵。通過在Program類的Main方法中設置全局異常處理,可以有效地捕獲並處理未預見的異常,從而避免程式崩潰。 註冊全局異常事件 [STAThread] static void Main() { / ...
  • 前言 給大家推薦一款開源的 Winform 控制項庫,可以幫助我們開發更加美觀、漂亮的 WinForm 界面。 項目介紹 SunnyUI.NET 是一個基於 .NET Framework 4.0+、.NET 6、.NET 7 和 .NET 8 的 WinForm 開源控制項庫,同時也提供了工具類庫、擴展 ...
  • 說明 該文章是屬於OverallAuth2.0系列文章,每周更新一篇該系列文章(從0到1完成系統開發)。 該系統文章,我會儘量說的非常詳細,做到不管新手、老手都能看懂。 說明:OverallAuth2.0 是一個簡單、易懂、功能強大的許可權+可視化流程管理系統。 有興趣的朋友,請關註我吧(*^▽^*) ...
  • 一、下載安裝 1.下載git 必須先下載並安裝git,再TortoiseGit下載安裝 git安裝參考教程:https://blog.csdn.net/mukes/article/details/115693833 2.TortoiseGit下載與安裝 TortoiseGit,Git客戶端,32/6 ...
  • 前言 在項目開發過程中,理解數據結構和演算法如同掌握蓋房子的秘訣。演算法不僅能幫助我們編寫高效、優質的代碼,還能解決項目中遇到的各種難題。 給大家推薦一個支持C#的開源免費、新手友好的數據結構與演算法入門教程:Hello演算法。 項目介紹 《Hello Algo》是一本開源免費、新手友好的數據結構與演算法入門 ...
  • 1.生成單個Proto.bat內容 @rem Copyright 2016, Google Inc. @rem All rights reserved. @rem @rem Redistribution and use in source and binary forms, with or with ...
  • 一:背景 1. 講故事 前段時間有位朋友找到我,說他的窗體程式在客戶這邊出現了卡死,讓我幫忙看下怎麼回事?dump也生成了,既然有dump了那就上 windbg 分析吧。 二:WinDbg 分析 1. 為什麼會卡死 窗體程式的卡死,入口門檻很低,後續往下分析就不一定了,不管怎麼說先用 !clrsta ...
  • 前言 人工智慧時代,人臉識別技術已成為安全驗證、身份識別和用戶交互的關鍵工具。 給大家推薦一款.NET 開源提供了強大的人臉識別 API,工具不僅易於集成,還具備高效處理能力。 本文將介紹一款如何利用這些API,為我們的項目添加智能識別的亮點。 項目介紹 GitHub 上擁有 1.2k 星標的 C# ...