淺談css的先行編譯---less語言,淺談css---less

來源:互聯網
上載者:User

淺談css的先行編譯---less語言,淺談css---less

正如各位所知道的一樣,css是一門標記性語言,文法相對簡單,對使用者的要求也比較低 。不過可樂不知道友友們有沒有發現,在使用css的時候需要書寫大量看似沒有邏輯的代碼,不方便維護及擴充,不利於複用,尤其對於一些缺乏css編寫經驗的猿猿來講,寫出組織良好且易於維護的 CSS 代碼是相當困難的一件事情。這個時候呢,可樂悄悄地告訴你們,咱們的程式員蜀黍是無所不能的,針對這個調皮的css,專門開發了less語言。那麼,就由可樂來細細為你們介紹這一個新朋友吧~~~

一、less簡介:

1、less語言是在css的文法基礎上,引入了變數,Mixin(混入),運算,以及函數等功能,可以讓我們用更少的代碼做更多的事情哦!

二、.less引入(兩種方式):

1、用戶端使用.less檔案:先要從http://lesscss.org下載 less.js 檔案,然後在我們需要引入 LESS 源檔案的 HTML 中加入如下代碼:

<link rel="stylesheet/less" type="text/css" href="styles.less">
 

注意,此處的rel屬性值是“stylesheet/less”哦。

還有一點就是:less源檔案一定要在less.js引入之前引入,才能保證less源檔案正確編譯解析:

<script src="../less.min.js"></script>

2、在伺服器端使用:主要是藉助於LESS的編譯器,將less源檔案編譯產生最終的css檔案(推薦);

LESS 在伺服器端的使用主要是藉助於 LESS 的編譯器,將 LESS 源檔案編譯產生最終的 CSS 檔案,目前常用的方式是利用 node 的包管理器 (npm) 安裝 LESS,安裝成功後就可以在 node 環境中對 LESS 源檔案進行編譯。

在項目開發初期,我們無論採用用戶端還是伺服器端的用法,我們都需要想辦法將我們要用到的 CSS 或 LESS 檔案引入到我們的 HTML 頁面或是橋接檔案中,LESS 提供了一個我們很熟悉的功能— Importing。我們可以通過這個關鍵字引入我們需要的 .less 或 .css 檔案。 如:

@import “variables.less”;

.less 檔案也可以省略尾碼名,像這樣:

@import “variables”;

引入 CSS 同 LESS 檔案一樣,只是 .css 尾碼名不能省略。

三、.less文法簡介:1、變數:一次定義,重複使用:
@color:#505253;.bg-color{    background-color:@color;}.border-color{    border:1px solid @color;}

如上所示: @color 就是可樂剛剛定義的變數,在 .bg-color 和 .border-color 當中都可以使用它

 

2、混入--Mixins:申明一個類,然後在其它類中調用當前這個類
.roundeCorers(@radius:5px){    -moz-border-radius:@radius;    -webkit-border-radius:@radius;    border-radius:@radius;}#header{    .roundeCorers;}#footer{    .roundeCorers(10px);}

可樂注釋一下:其中 @radius 是參數,不穿參數時,預設值為 5px ,如 #header 中的用法。

3.繼承

有一個類用了一組樣式,又寫了一個類也想用這個樣式,可繼承上個類的樣式,如:

基礎css樣式:

.base-style {    font-size: 12px;    color: red;}

第一種繼承寫法:

.content{    .base-style();    background-color: white;}

第二種繼承寫法:

.content{    &:extend(.base-style);    background-color: white;}

兩寫法不同,編譯後產生的CSS樣式也不一樣

第一種:

.base-style{    font-size: 12px;    color: red;}.content {    font-size: 12px;    color: red;    background-color: white;}

第二種:

.base-style,.content{    font-size: 12px;    color: red;}.content {    background-color: white;}
4、嵌套規則:

html:

<div id="header">    <h1><a href="">www.xdpie.com</a></h1>    <p>自遊自駕</p></div>

LESS:

#header {    display: inline;    float: left;    h1 {    font-size: 26px;    font-weight: bold;    a {        text-decoration: none;        color: #f36;        &:hover {            text-decoration: underline;            color: #63f;            }        }    }    p {        font-size: 12px;    }}
5、功能和操作:

可樂給大家一個網址,供大家參考:

http://less.bootcss.com/functions/

6、邏輯控制:

LESS是用mixin通過guard的方式支援簡單圖瓦人分支控制,
比如我們要實現一個控制 ::placeholder 樣式的 mixin,當傳入顏色時只設定顏色,當傳入聲明塊時輸出對應的樣式規則,其他情況輸出一個預設的 color

.mixin(@val) when (iscolor(@val)) {    color: @val;}.mixin(@val) when (isruleset(@val)) {    @val();}.mixin(@val) when (default()) {    color: #666;}

可樂提示一下哈:default() in guards acts as else

好啦,對less的主要用法呢,可樂就講這麼多,最後再給一些友情提示,希望對各位博友們有協助哦~~~

先行編譯CSS有哪些:

Sass(Scss),Less,Stylus

Sass官網:http://sass-lang.com/   http://www.w3cplus.com/sassguide/

Less官網:http://lesscss.org/      中文:http://less.bootcss.com/

Stylus文檔:http://learnboost.github.io/stylus/

LESS和SCSS對比:https://css-tricks.com/sass-vs-less/

 

LESS和SCSS分別有哪些項目和書籍可作為參考:

1、Bootstrap 用了LESS

2、sass與compass實戰一書 主要講解了Sass用法

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.