Sass與Compass——回顧

来源:http://www.cnblogs.com/nmxs/archive/2017/02/12/6391487.html
-Advertisement-
Play Games

compass 是sass的一個工具庫 compass在sass 的基礎上封裝了一系列有用的模塊,用來補充和豐富sass的工能, 安裝: compass是用 ruby語言開發的,所以安裝它之前必須安裝ruby。 命令: gem install compass 項目初始化: 要創建一個你的Compas ...


compass 是sass的一個工具庫
  compass在sass 的基礎上封裝了一系列有用的模塊,用來補充和豐富sass的工能,

  安裝:
    compass是用 ruby語言開發的,所以安裝它之前必須安裝ruby。
  命令:

    gem install compass
  項目初始化:
    要創建一個你的Compass 項目,如果項目的名字叫 myproject
      compass create myproject
    會在當前的目錄下生成這個目錄,裡面有config.rb文件,還有兩個子目錄sass 和 stylesheets 前者存放sass 源文件,後者放編譯後的
css文件。

  編譯:
    我在開發的時候寫出來的是文件尾碼名為scss的文件。只有編譯成css文件,才能用到網站上。
      compass 的編譯命令為
        compass compile
    該命令在項目根目錄下運行,將會sass 子目錄中的scss 文件編譯成css文件,保存在stylesheets子目錄中。
      預設編譯出來的css 文件帶有大量的註釋,生產環境需要壓縮後的css文件
        compass compile --output-style compressed
    如果重新編譯未修改過的文件
        compass compile --force
    除了使用命令參數,還可以在配置文件config.rb 中指定編譯模式。

      output_style = :expanded
        :expanded 表示編譯後保留原格式, 其他值還包括: nested,
        :compact和compressed 進入生產階段後,就要改為:compressed模式。
          output_style = :compressed
    也可以通過指定environment的值(:production或者:development),智能判斷編譯模式。

      environment = :development
        output_style = (environment == :production) ? :compressed : :expanded

    在命令行模式下,除了一次性編譯命令,compass還有自動編譯命令

      compass watch
        只要scss文件發生變化,就會被自動編譯成css文件。

compass 的模塊

    compass採用模塊結構,不同模塊提供不同的功能,內置5個模塊。
    reset css3 layout typography unilities

  reset模塊

    在編寫自己的樣式之前,有必要重置瀏覽器的預設樣式。
      寫法是:
        @import "compass/reset"
    上面的@import命令,用來指定載入模塊,這裡就是載入reset模塊。編譯後,會生成相應的css reset代碼。

  CSS3模塊
    該模塊提供24 中css3命令。如:
      圓角(border-radius) 的寫法,
        @import "compass/css3";
            .rounded {
                @include border-radius(5px);
            }
    上面的@include命令,表示調用某個mixin(類似於C語言的巨集),5px是參數,這裡用來指定圓角的半徑。

    編譯後的代碼為:
      .rounded {
        -moz-border-radius: 5px;
        -webkit-border-radius: 5px;
        -o-border-radius: 5px;
        -ms-border-radius: 5px;
        -khtml-border-radius: 5px;
        border-radius: 5px;
      }

    如果只需要左上角為圓角,寫法為
    @include border-corner-radius(top, left, 5px);

  layout模塊
    該模塊提供佈局功能,
    比如,指定頁面的footer部分出現在瀏覽器的最低端。
      @import "compass/layout";
        #footer {
          @include sticky-footer(54px);
        }
    指定子元素占滿父元素的空間:

      @import "compass/layout";
        #stretch-full {
          @include stretch;
        }
  typography模塊
    該模塊提供板式功能
      比如,指定鏈接顏色的mixin為:
        link-colors($normal, $hover, $active, $visited, $focus);
      使用時寫成:
        @import "compass/typography";
          a {
            @include link-colors(#00c, #0cc, #c0c, #ccc, #cc0);
        }

  utilities模塊

    該模塊提供某些不屬於其他模塊的功能。
    比如,清除浮動:

      import "compass/utilities/";
        .clearfix {
          @include clearfix;
       }
    比如表格:
      @import "compass/utilities";
        table {
          @include table-scaffolding;
        }

    編譯後
       table th {
        text-align: center;
        font-weight: bold;
        }
      table td,
      table th {
        padding: 2px;
      }
      table td.numeric,
      table th.numeric {
        text-align: right;
      }

    Helper函數
      除了模塊外,compass還提供了一系列函數。
      有一些有用的函數,image-width() 和image-height() 返回圖片的寬和高
      再比如,inline-image()可以將圖片轉為data協議的數據。

        @import "compass";
        .icon { background-image: inline-image("icon.png");}

        編譯後得到
          .icon { background-image: url('data:image/png;base64,iBROR...QmCC');}
            函數與mixin的主要區別是,不需要使用@include命令,可以直接調用。


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

-Advertisement-
Play Games
更多相關文章
  • 首先本次需求是在MVC5中進行的,通過收費的融雲服務來驗證手機號碼,而且本次的項目也是前後臺分離,所以添加了WEBAPI2,那麼先添加WEBAPI的介面 然後添加一個UserController介面文檔 ...
  • 前面的文章介紹瞭如何進行許可權控制,即訪問控制器或者方法的時候,要求當前用戶必須具備特定的許可權,但是如何在程式中進行許可權的分配呢?下麵就介紹下如何利用Microsoft.AspNetCore.Identity.EntityFrameworkCore框架進行許可權分配。 在介紹分配方法之前,我們必須理解權 ...
  • 在asp.net core mvc中提供了許可權驗證框架,前面的文章中已經介紹瞭如何進行許可權控制配置,許可權配置好後,許可權驗證邏輯自動就會執行,但是在某些情況下,我們可能需要在代碼里或者視圖中通過手工方式判斷許可權,我們現在就來介紹下具體的操作方法。 如果在控制器方法里想要判斷當前用戶是否具有某個許可權,可 ...
  • 在進行業務軟體開發的時候,都會涉及到許可權控制的問題,asp.net core mvc提供了相關特性。 在具體介紹使用方法前,我們需要先瞭解幾個概念: 1,claim:英文翻譯過來是聲明的意思,一個claim包含Type,Value兩項信息。我把claim理解成一個許可權的定義,比如Type=會員,Va ...
  • 有這麼一種應用場景: 你是做前端或APP開發的,需要調用服務端提供的介面,介面只能在公司內網訪問;在公司外就無法調試代碼了。 想在公司外訪問怎麼辦呢? 如果在公司的時候將所有介面的響應內容都保存起來,就可以脫離服務端在本地模擬出來一個服務端環境,從而就可以不受網路環境的限制愉快的調試代碼了。 ...
  • 利用周末的時間讀了潘加宇的《軟體方法(上)》,希望梳理清楚UML的知識脈絡; 利潤=需求-設計 利潤=需求-設計 利潤=需求-設計 利潤=需求-設計 缺乏清晰、共用的願景往往是項目失敗的主要原因。 願景回答這樣一個問題:在老大看來,引進這個系統的目的是什麼? 尋找老大: 要點:老大是買方。典型錯誤: ...
  • //判斷右表是否為空併為映射表進行賦值標誌var query=from q in product join m in favProduct on q.Name equals m.Name into t from x in t.DefalultEmpty() select new { Name=q.N ...
  • 只要將數據放入model中, 也能取到值,原因是model臨時放入session域中,當從定向到另一個url時,底層把數據拼接在url地址後面(重定向一定是get請求方式),同時將session域中的這條數據清除,重定向到conttoller時,取值方式只有request.getParameter( ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...