Sass 基礎(七)

来源:http://www.cnblogs.com/nmxs/archive/2016/03/28/5329741.html
-Advertisement-
Play Games

Sass Maps 的函數-map-remove($map,$key),keywords($args) map-remove($map,$key) map-remove($map,$key)函數是用來刪除當前$map中的某一個$key,從而得到一個新的 map,其返回的值是一個map.他並不能直接從 ...


Sass Maps 的函數-map-remove($map,$key),keywords($args)
    map-remove($map,$key)
    map-remove($map,$key)函數是用來刪除當前$map中的某一個$key,從而得到一個新的
    map,其返回的值是一個map.他並不能直接從一個map 中刪除另一個map,僅能通過刪除
    map中的某個key 得到新的map
    $map:map-remove($social - colors,dribble);
      返回的是一個新map
        $map:(
            facebook:#3b5998,
            github:#171515,
            google:#db4437,
            twitter:#55acee
        );
        keywords($args)
        keywords($args)
        keywords($args) 函數可以通過混合巨集或函數的參數變創建map.
        參數也是成對出現,其中$args 變成key(會自動去掉$符號),而
        $args對應的的值是value.
        @mixin map($args...){
            @debug keywords($args);
        }
        @include map(
          $dribble: #ea4c89,
          $facebook:#3b5998,
          $github:#171515,
          $google:#db4437,
          $twitter:#55acee
        );
RGB 顏色函數-RGB()顏色函數
      在Sass 的官網文檔中,列出了Sass 的顏色函數清單,從大的方面主要分為RGB,HSL 和 Opacity 三大函數,
      當然其還包括一些其他的顏色函數,比如說adjust-color和chang-color 等。
      1.RGB 顏色函數
          RGB顏色只是顏色中的一種表達式,其中R 是red 表示紅色,G是green 表示綠色而 B 是blue 表示藍色
          在Sass 中為RGB 顏色提供六種函數:
          rgb($red,$green,$blue):根據紅,綠,藍三個值創建一個顏色
          rgba($red,$green,$blue,$alpha):根據紅,綠,藍和透明度創建一個顏色。
          red($color):從一個顏色中獲取其中紅色值:
          green($color):從一個顏色總或者去其中綠色值:
          blue($color):從一個顏色中獲取其中藍色值:
          mix($color-1,$color-2,[$weight]):把梁總顏色混合在一起。

            $ sass -i
          >>rgb(200,40,88) //根據r:200, g:40, b;88 計算出一個十六進位顏色值。
            #c82858
          >> rgba(#c82858,.65) //根據#c82858 的65%透明度計算 出一個rgba顏色值。
            rgba(200,40,88,0.65)
          >>red(#c82858) //#c82858 顏色中得到紅色值、
            200
            200
          >> green(#c82858) //從#c82858 顏色中得到藍色值
            88
            88
          >> mix(#c82858,rgba(200,40,80,.65),.3) //把#c82858 和rgba(200,40.88..65)兩顏色按比例混合得到一個新顏色
            rgba(200,40,80,0.65105)
            RGB 顏色函數-RGBA() 函數
      2. rgba() 函數主要用來將一個顏色根據透明度轉換成rgba顏色。
          其語法有兩種格式
          rgba($red,$green,$blue,$alpha) // 講一個rgba 顏色轉譯出來,和未轉譯的值一樣。
          rgba($color,$alpha) // 將一個Hex 顏色轉換成rgba 顏色
          其中rgba($color,$alpha) 函數擢用更大主要運用在這樣的情形
          之中:假設在實際中知道的顏色值是 #f36 或者 red,但在使用中
          ,需要給他們配上一個透明度,這個時候在原來的 CSS 中,首先需
          要通過製圖工具,得到 #f36 或 red 顏色的 R、G、B 值,而不能
          直接使用(註意 css3 是可以的,但是存在瀏覽器相容問題):
        //CSS
          color: rgba(#f36,.5); //在css中,這是無效的寫法
          $color: #f36;
          $bgColor: orange;
          $borderColor:green;
        //SCSS
          .rgba {
              color: rgba(#f36,.5);
              background: rgba(orange,.5);
              border-color: rgba(green,.5);
          }
        語法:
        在這個實例中,我們使用了 Sass 的 rgba 函數,在括弧是函數的
        參數,第一個參數是需要轉換的顏色,他可以是任何顏色的表達方
        式,也可以是一個顏色變數;第二個參數是顏色的透明度,其值是
        0~1 之間。上面的代碼轉譯出來:
      .rgba {
          color: rgba(255, 51, 102, 0.5);
          background: rgba(255, 165, 0, 0.5);
          border-color: rgba(0, 128, 0, 0.5);
      }
      來看一個調用前面定義的變數
        //SCSS
          .rgba {
            color: rgba($color,.5);
            background: rgba($bgColor,.5);
            border-color: rgba($borderColor,.5);
          }
        編譯出來的 css 代碼:
          //CSS
            .rgba {
                color: rgba(255, 51, 102, 0.5);
                background: rgba(255, 165, 0, 0.5);
                border-color: rgba(0, 128, 0, 0.5);
            }
RGB 顏色函數-Red(),Green(),Blue函數
    3.Rred() 函數
        red() 函數非常簡單,其主要作用獲取一個嚴重的紅色值,假設沒有一個#f36 的顏色,如果你想得到#f36中 的red
        指示多少,這個時候使用red() 函數就能很簡單獲取。
        >> red
            255
    4,Green 函數
        green() 函數和red 函數一樣,用來獲取某個顏色中green的值,同樣拿“#f36” 顏色為例
        >>green(#f36)
            51
    5.Blue() 函數
        同理,blue () 函數是用來獲取某個值顏色中bliue 的值
        >> blue(#f36)
          102
        RGB 顏色函數-Mix() 函數
        Mix 函數 是將兩種顏色根據一定的比例混合在一起,生成另一種顏色,
        mix($color-1,$$color-2,$weight);
          $color-1 和$color-2 指的是你需要合併的顏色,顏色是可以是任何表達式,也可以是顏色變數。
          $weight 為合併的比例(選擇權重),預設值為50%,其取值範圍是0~1 之間,他是每個RGB 的
          百分比是50%,這意味著兩個顏色各占一半,如果指定的比例是 25%,這意味著第一個顏色所占比例為 25%,
        第二個顏色所占比例為75%。
      其使用方法很簡單
        mix(#f00,#00f) =>#7f007f
        mix(rgba(255,0,0,0.5),#00f) =>rgba(63,0,191.0.75)
      在前面的基礎上,做一個修改
      //SCSS
        $color1:#a63;
        $color2:#fff;
        $bgColor1:#f36;
        $bgColor2:#e36;
        $borderColor1:#c36;
        $borderColor2:#b36;
      .mix{
          background:mix($bgColor1,bgColor2,.75);
          color:mix($color1,$color2,.25);
          border-color:
          mix($borderColor1,(bgColor2,.05));
    }
      編譯出來的css 代碼
      //css
        .mix{
            background:#ee3366;
            color:#fefefe;
            border-color:#ed33
        }
HSL 函數簡介
      在 Sass 中提供了一系列有關於 HSL 的顏色函數,以供大家使用,
      其中常用的有 saturation、lightness、adjust-hue、lighten、darken
      等等。接下來我們先來瞭解一下 HSL 顏色函數包括哪些具體的函數,所起的作用是什麼:

      1,hsl($hue,$saturation,$lightness):通過色相(hue)、飽和度(saturation)和亮度(lightness)的值創建一個顏色;
      2,hsla($hue,$saturation,$lightness,$alpha):通過色相(hue)、飽和度(saturation)、亮度(lightness)和透明(alpha)的值創建一個顏色;,
      3,hue($color):從一個顏色中獲取色相(hue)值;
      4,lightness($color):從一個顏色中獲取亮度(lightness)值;
      5,darken($color,$amount):通過改變顏色的亮度值,讓顏色變暗,創建一個新的顏色;
      6,saturate($color,$amount):通過改變顏色的飽和度值,讓顏色更飽和,從而創建一個新的顏色
      7,desaturate($color,$amount):通過改變顏色的飽和度值,讓顏色更少的飽和,從而創建出一個新的顏色;
      8,grayscale($color):將一個顏色變成灰色,相當於desaturate($color,100%);
      9,complement($color):返回一個補充色,相當於adjust-hue($color,180deg);
      10,invert($color):反回一個反相色,紅、綠、藍色值倒過來,而透明度不變。

      同樣在你的終端,通過 sass -i 來對上面的各個函數做一個簡單測試:
        >> hs1(200,30%,60%) // 通過還h200,s30% l60% 創建一個顏色
          #7aa3b8
        >>hsla(200,30%,60%,.8) // 通過h200,s30%,160%,a80% 創建一個顏色
          rgba(122,163,184,0.8)
        >> hue(#7ab) // 得到#7ab 顏色的色相值
          195deg
        >> saturation(#7ab) // 得到#7ab 顏色的飽和度值
          33.33333%
        >>lightness(#7ab) // 得到#7ab 顏色的亮度
          60%
        >> adjust-hue(#f36,150deg ) // 改變#f36 顏色的色相值為 150deg
          #33ff66
        >> lighten(#f36,50%) // 把#f36 顏色高度提高50%
          #ffffff
        >>darken(#f36,50%) //把#f36 顏色亮度提高50%
          #33000d
        >>saturate(#f36,50%) //把#f36 顏色飽和度提高50%
          #ff3366
        >>desaturate(#f36,50%) //把#f36 顏色飽和度降低50%
          #cc667f
        >>grayscale(#f36) // 把#f36 顏色變成灰色
          #999999
        >>complement(#f36)
          #33ffcc
        >>invert(#f36)
          #00cc99
HSL函數-lighten()
      lighten() 和 darken() 兩個函數都是圍繞顏色的亮度值做調整的,
      其中 lighten() 函數會讓顏色變得更亮,與之相反的 darken() 函數
      會讓顏色變得更暗。這個亮度值可以是 0~1 之間,不過常用的一
      般都在 3%~20% 之間。
      來看一個簡單的實例,首先頂一個一個顏色變數
        $baseColor:#ad141e;
      使用lighten()和darken() 函數來修改10% 的亮度值:
      // SCSS
        .lighten{
            background:lighten($baseColor,10%)
        }
        .darken{
            background:darken($baseColor,10%)
        }
      編譯出來的css 代碼
    //CSS
      .lighten{
          background:#db1926;
        }
      .darken{
          background:#7f0f16;
      }
HSL 函數-saturate()
      saturate(),desaturate() 這兩個函數是通過改變顏色的飽和度來得到
      一個新的顏色,我們和前面介紹的修改亮度得到新顏色的方法非常相似。
    // SCSS
      $baseColor: #ad141e;
      .saturate{
          background:saturate($baseColor,30%); //在原色飽和度基礎上增加飽和度
        }
      .desaturate{
          background:desaturate($baseColor,30%); // 在原色飽和度基礎上減少飽和度。
      }
    // 編譯出來的css 代碼
    // CSS
      .saturate{
          background:#c1000d;
        }
      .desaturate{
          background:#903137;
      }
HSL 函數-adjust-hue() 函數
    這個是通過調整顏色的色相換算一個新顏色。他需要一個顏色和色
    相度數值。通常這個度數值是在 -360deg 至 360deg 之間,當然了可以是百分數:
    //SCSS
      $baseColor:#ad14le;
      .adjust-hue-deg{
          background:adjust-hue($baseColor,30deg);
      }
      .adjust-hue-per{
          background:adjust-hue($baseColor,30%);
      }
      編譯出來的css 代碼
      // css
        .adjust-hue-deg{
          background:ad5614;
        }
        .adjust-hue-per{
          background:#ad5614;
        }
HSL 函數-grayscale() 函數
      這個函數會顏色的飽和度值直接調至 0%,所以此函數與 desaturate($color,100%)
      所起的功能是一樣的。一般這個函數能將彩色顏色轉換成不同程度的灰色。例如:
      // SCSS
        $baseColor:#ad141e;
        .grayscale{
          background:grayscale($baseColor);
        }
        .desaturate{
          background:desaturate($baseColor,100%)
        }
        編譯出來的css 代碼
          //css
            .grayscale{
                background:#616161;
            }
          .desaturate{
              background:#616161;
          }
Opacity 函數介紹
      在 CSS 中除了可以使用 rgba、hsla 和 transform 來控制顏色透明度
      之外,還可以使用 opacity 來控制,只不過前兩者只是針對顏色上的
      透明通道做處理,而後者是控制整個元素的透明度。

      在 Sass 中,也提供了系列透明函數,只不過這系列的透明函數主要用來處理顏色透明度:
      alpha($color) / opacity($color) 獲取顏色透明度
      rgba($color,$alpha):改變顏色的透明度值。
      opacify($color,$amount)/ fade-in($color,$amount): 使顏色更加不透明
      transparentize($color,$amount) / fade-out($color,$amount) 使顏色更加透明。
      Opacity 函數-alpha(),opacity() 函數
      alphpa() 和opacity() 函數很簡單,與前面介紹的red(),green() 等函數
      數很類似。這個函數的主要功能是用來獲取一個顏色的透明度值。如
      果顏色沒有特別指定透明度,那麼這兩個函數得到的值都會是 1:
      >> alpha(red)
        1
      >> alpha(rgba(red,.8))
        0.8
      >>opacity(red)
        1
      >>opacity(rgba(red,.8))
        .8
Opacity 函數-rgba() 函數
    在前面介紹 RGB 函數一節中,還記得嗎?有一個 rgba() 函數可以創
    建一個顏色,同時還可以對顏色修改其透明度。其可以接受兩個參數,
    第一個參數為顏色,第二個參數是你需要設置的顏色透明值。
    >>rgba(red,.5)
      rgba(255,0,00.5)
    >>rgba(#dedede,.5)
      rgba(222,222,222,0.5)
    >>rgba(rgb(34,45,44),.5)
      rgba(34, 45, 44, 0.5)
    >> rgba(rgba(33,45,123,.2),.5)
      rgba(33, 45, 123, 0.5)
    >> rgba(hsl(33,7%,21%),.5)
      rgba(57, 54, 50, 0.5)
    >> rgba(hsla(33,7%,21%,.9),.5)
      rgba(57, 54, 50, 0.5)
Opacity 函數-opacify(),fade-in()函數
      這兩個函數是用來對已有顏色的透明度做一個加法運算,會讓顏色
      更加不透明。其接受兩個參數,第一個參數是原始顏色,第二個參
      數是你需要增加的透明度值,其取值範圍主要是在 0~1 之間。當
      透明度值增加到大於 1 時,會以 1 計算,表示顏色不具有任何透明度。
      >>opacify(rgba(22,34,235,.6),.2)
        rgba(22,34,235,0.8)
      >>opacify(rgba(22,34,235,.6),.5)
        #1622eb
      >>opacify(hsla(22,34,235,.6),.15)
        rgba(79,53,39,0.75)
      >>opacify(hsla(22,34%,23%,.6),.415)
        #4f3527
      >>opacify(red,.15)
        #89adde
      >>fade-in(rgba(23,34,34,.5),.15)
        rgba(23,34,34,0.65)
      >>fade-in(rgba(23,34,34,.5),.615)
        #172222
Opacity 函數-transparentize(), fade-out() 函數
    transparentize() 和 fade-out() 函數所起作用剛好與 opacify() 和 fade-in()
    函數相反,讓顏色更加的透明。這兩個函數會讓透明值做減法
    運算,當計算出來的結果小於 0 時會以 0 計算,表示全透明。
    >>transparentize(red,.5)
      rgba(255,0,0,0.5)
    >>transparentize(#fde,.9)
      rgba(255,221,238,0.1)
    >>transparentize(rgba(98,233,124,.3),.11)
      rgba(98, 233, 124, 0.19)
    >> transparentize(rgba(98,233,124,.3),.51)
      rgba(98, 233, 124, 0)
    >> fade-out(red,.9)
      rgba(255, 0, 0, 0.1)
    >> fade-out(hsla(98,6%,23%,.5),.1)
      rgba(58, 62, 55, 0.4)
    >> fade-out(hsla(98,6%,23%,.5),.6)
      rgba(58, 62, 55, 0)


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 一、引言 在軟體開發過程,如果我們需要重覆使用某個對象的時候,如果我們重覆地使用new創建這個對象的話,這樣我們在記憶體就需要多次地去申請記憶體空間了,這樣可能會出現記憶體使用越來越多的情況,這樣的問題是非常嚴重,然而享元模式可以解決這個問題,下麵具體看看享元模式是如何去解決這個問題的。 二、享元模式的詳 ...
  • 原文鏈接:http://docs.autofac.org/en/latest/lifetime/index.html Lifetime 是指服務的實例在程式中存活多久 – 從最初的實例化到清理(disposal)。例如,一個實現 IDisposable 的對象,它的生命周期就是從實例化時開始,持續到 ...
  • 一、引言 在軟體開發過程中,客戶端程式經常會與複雜系統的內部子系統進行耦合,從而導致客戶端程式隨著子系統的變化而變化,然而為了將複雜系統的內部子系統與客戶端之間的依賴解耦,從而就有了外觀模式,也稱作 ”門面“模式。下麵就具體介紹下外觀模式。 二、外觀模式的詳細介紹 2.1 定義 外觀模式提供了一個統 ...
  • 一、引言 在軟體開發過程中,我們經常會遇到處理簡單對象和複合對象的情況,例如對操作系統中目錄的處理就是這樣的一個例子,因為目錄可以包括單獨的文件,也可以包括文件夾,文件夾又是由文件組成的,由於簡單對象和複合對象在功能上區別,導致在操作過程中必須區分簡單對象和複合對象,這樣就會導致客戶調用帶來不必要的 ...
  • 一、引言 在軟體開發中,我們經常想要對一類對象添加不同的功能,例如要給手機添加貼膜,手機掛件,手機外殼等,如果此時利用繼承來實現的話,就需要定義無數的類,如StickerPhone(貼膜是手機類)、AccessoriesPhone(掛件手機類)等,這樣就會導致 ”子類爆炸“問題,為瞭解決這個問題,我 ...
  • 類的介面分為兩部分 一、良好的抽象 類的介面應該展現一致的抽象層次。每一個類應該實現一個ADT,並且僅僅實現這個ADT。 一定要理解類所實現的抽象是什麼。理解對應的ADT。 提供成對的服務,比如Add、Delete。On、Off等。不要盲目創建相反的操作,但是得考慮是否有需要 把不相關的信息轉移到其 ...
  • 獲取【下載地址】 QQ: 313596790 【免費支持更新】三大資料庫 mysql oracle sqlsever 更專業、更強悍、適合不同用戶群體【新錄針對本系統的視頻教程,手把手教開發一個模塊,快速掌握本系統】A 集成代碼生成器(開發利器); 技術:313596790 增刪改查的處理類,ser ...
  • × 目錄 [1]text-align [2]writing-mode [3]dir[4]direction[5]unicode-bidi 前面的話 一般地,正常網頁文本方向都是從上到下,從左到右。實際上,有多種設置文本方向的屬性,前面已經詳細介紹過text-align,HTML全局屬性中有一個"di ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...