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
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...