1. 程式人生 > >學會如何使用LESS(三)----條件表示式、迴圈、合併屬性和引入

學會如何使用LESS(三)----條件表示式、迴圈、合併屬性和引入

條件表示式

條件表示式其實就是我們在less中使用比較運算子或者表示式的判斷來輸入我們的值,根據不同的條件來輸出不同的值。

一、帶條件的混合

比較運算子有以下幾種:

>,>=,=,=<,<,true
.mixin( @a )when( lightness(@a)>=50% ){
    background-color: black;
}
.mixin( @a )when( lightness(@a)<50% ){
    background-color: white;
}

.class1{
    .mixin( #aaa );
}
.class2
{ .mixin( #333 ); }

編譯後的css:

.class {
  background-color: black;
}

二、型別檢查函式
型別檢查函式也就是所得的值通過函式去判斷是那個型別的值。
如下是一些函式
Iscolor(是否為顏色值) Isnumber(是否為數字) isstring(是否為字元) iskeyword(是否為關鍵字) isurl(是否為url)

.minix( @a )when(iscolor(@a)){
    background: black;
    color:@a;
}
.minix( @a )when(isnumber(@a)
)
{
background: white; number: @a; } .minix( @a )when(isstring(@a)){ background: orange; string: @a; } .minix( @a )when(iskeyword(@a)){ background: yellow; keyword: @a; } .minix( @a )when(isurl(@a)){ background: blue; url:@a }

編譯後的css:

.class1 {
  background: black;
  color
: #333333
; }
.class2 { background: white; number: 123; } .class3 { background: orange; string: "hello less!"; } .class4 { background: orange; string: "www.baidu.com"; }

三、單位檢查函式
檢查一個值除了數字是否是一個特定的單位。

.minix( @a )when(ispixel(@a)){
    background: yellow;
    pixel: @a;
}
.minix( @a )when(ispercentage(@a)){
    background: blue;
    percentage:@a
}

.class1{
    .minix(230px);
}
.class2{
    .minix(83%);
}

編譯後的css:

.class1 {
  background: yellow;
  pixel: 230px;
}
.class2 {
  background: blue;
  percentage: 83%;
}

迴圈

在less中,混合可以呼叫它自身,這樣,當一個混合遞迴呼叫自己,再結合Guard表示式和模式匹配這兩個特性,就可以寫出個迴圈結構。

.loop( @count )when( @count > 0 ){
    [email protected]{count}{
        padding: ( 10px * @count );
    }
    .loop((@count - 1));
}

div{
    .loop(5);
}

編譯後的css:

div h5 {
  padding: 50px;
}
div h4 {
  padding: 40px;
}
div h3 {
  padding: 30px;
}
div h2 {
  padding: 20px;
}
div h1 {
  padding: 10px;
}

合併屬性

在需要合併的屬性的:前加上+就可以完成合並,合併以,分割屬性;
一、在需要合併的屬性的;(分號)的前面加上+就可以完成合並,合併以,分割屬性

.minix(){
    box-shadow+: inset 0 0 10px #555; 
}
.myclass{
    .minix;
    box-shadow+: inset 0 0 20px #222;
}

編譯後的css:

.myclass {
  box-shadow: inset 0 0 10px #555, inset 0 0 20px #222;
}

二、“+_”空格分割所合併的屬性值

.a(){
    background+_: #333; 
}
.aclass{
    .a;
    background+_: url("sss.jod");
}

編譯後的css:

.aclass {
  background: #333 url("sss.jod");
}

三、如果兩種方式混用,則根據最新的判斷以什麼方式進行分割屬性值

.b(){
    background+_: #333; 
}
.bclass{
    .a;
    background+: url("sss.jod");
}

.c(){
    background+: #333; 
}
.cclass{
    .a;
    background+_: url("sss.jod");
}

編譯後的css:

.bclass {
  background: #333, url("sss.jod");
}
.cclass {
  background: #333 url("sss.jod");
}

引入

你可以引入一個或多個less檔案,然後這個檔案中的所有變數都可以在當前的less專案中使用!
注意:引入css檔案會被原樣輸出到編譯的檔案中
一些常用的引入

@import (reference) "main.less";  //引用LESS檔案,但是不輸出
@import (inline) "main.less";  //引用LESS檔案,但是不進行操作
@import (once) "main.less";  //引用LESS檔案,但是不進行操作
@import (less) "index.css";  //無論是什麼格式的檔案,都把他作為LESS檔案操作
@import (css) "main.less";  //無論是什麼格式的檔案,都把他作為CSS檔案操作

相關推薦

學會如何使用LESS----條件表示式迴圈合併屬性引入

條件表示式 條件表示式其實就是我們在less中使用比較運算子或者表示式的判斷來輸入我們的值,根據不同的條件來輸出不同的值。 一、帶條件的混合 比較運算子有以下幾種: >,>=,=,=<,<,true .mixin( @a )wh

Python——條件判斷與迴圈,鍵值儲存

條件判斷計算機能處理很多自動化任務的原因就是可以做條件判斷在python中實現輸入年齡,列印不同內容a=5 if a>=18: print('your age is',a) print('成人') else: print('your age is

3 lambda表示式型別檢查型別推斷以及區域性變數

     1.型別檢查      當我們在之前第一次提到lambda表示式的時候,說它可以為函式式介面生成一個例項。然而,Lambda表示式本身並不包含它在實現哪個函式式介面的資訊。為了全面瞭解Lambda表示式,你

學習使用vue.js條件迴圈 v-if v-for

<——— 在這之前,你肯定會注意到上面箭頭所指的位置,那麼你一定會看見,文章外面的大拇指圖示,動動你的手指,就能點一下它,表示你很喜歡這篇文章。 如果你不願意多花時間去自學vue.js 官網的API,那麼你可以在跟著下面的例子學習最實用、最容易上手

Python 基礎——流程控制之break continue else

sim 流程 tin rime con python 基礎 完整 .py gpo break break 語句和 C 中的類似,用於跳出最近的一級 for 或 while 循環。 循環可以有一個 else 子句;它在循環叠代完整個列表(對於 for )或執行條件為 fals

大數據入門第二十二天——spark自定義分區排序與查找

get buffer arr clas ron arm scala mut all 一、自定義分區   1.概述     默認的是Hash的分區策略,這點和Hadoop是類似的,具體的分區介紹,參見:https://blog.csdn.net/high2011/arti

網絡編程——通信循環鏈接循環粘包問題

res font 優化算法 exce erro recv data name 機制 通信循環、鏈接循環、粘包問題 一、通信循環 服務端和客戶端可以進行連續的信息交流 from socket import * ser_socket = socket(AF_INET, S

Django框架—— orm增刪改查Django生命周期

task 添加數據 方式 mysq 增刪改查 數據表 映射 周期 mysqld orm增刪改查、Django生命周期 一、orm介紹 1、什麽是orm ORM即Object Relational Mapping,全稱對象關系映射。 2、使用orm的優缺點 優點: 不用寫S

【Hibernate】Hibernate表操作多對多配置

1.2 Hibernate的一對多關聯對映 1.2.1 資料庫表與表之間的關係 1.2.1.1 一對多關係 什麼樣關係屬於一對多?   一個部門對應多個員工,一個員工只能屬於某一個部門。 一個客戶對應多個聯絡人,一個聯絡人只能屬於某一個客戶。 一對多的建表原

Linux Shell命令 條件語句 函式

命令執行的判斷依據: ; , &&, || 1、無條件繼續執行:分號; 在某些時候,我們希望一次執行多個命令,也就是說,執行完一條命令後,無條件的執行下一條命令。我們可以在指令與指令中間利用分號 (;) 來隔開,這樣一來,分號前的指令執行完後, 就會立刻接著執行後面的指令了。

【C語言實現串列埠通訊知識點整理】串列埠開啟設定資料成功後進行資料讀寫

int OpenDev(char *Dev) { int fd = open(Dev,O_RDWR | O_NOCTTY | O_NONBLOCK); if(-1 == fd) { perror("Can't Open Serial Port"); return -1;

MySQL效能管理及架構設計:SQL查詢優化分庫分表 - 完結篇

一、SQL查詢優化(重要) 1.1 獲取有效能問題SQL的三種方式 通過使用者反饋獲取存在效能問題的SQL; 通過慢查日誌獲取存在效能問題的SQL; 實時獲取存在效能問題的SQL; 1.1.2 慢查日誌分析工具 相關配置引數: slow

REST處理HTTP狀態碼異常響應頭

REST(三)處理HTTP狀態碼、異常和響應頭 之前的內容只是討論了正確的處理結果,而沒有討論當沒有找到資源時的處理或者發生異常時的處理。當發生資源找不到或者處理邏輯發生異常時,需要考慮的時返回給客戶端HTTP抓鬼你太嗎和錯誤訊息的問題。為了簡化這些開發,Spring提供了實體封裝類

java 反射 列印Class的構造屬性方法

package com.reflect; import java.lang.reflect.Constructor; import java.lang.reflect.Field; import java.lang.reflect.Method; import java.lang.reflec

【selenium3+JAVA】介面自動化測試教程——瀏覽器的全屏最大化設定大小位置

1、瀏覽器全屏 使用程式碼如下: ChromeDriver chrome = new ChromeDriver(); chrome.manage().window().fullscreen(); 如上程式碼會把瀏覽器全屏,效果嘛就是除了網站的內容部分,其他全部

Spring CloudHystrix的服務熔斷服務降級

雪崩效應 在微服務架構中通常會有多個服務層呼叫,基礎服務的故障可能會導致級聯故障,進而造成整個系統不可用的情況,這種現象被稱為服務雪崩效應。服務雪崩效應是一種因“服務提供者”的不可用導致“服務消費者”的不可用,並將不可用逐漸放大的過程。 如果下圖所示:A作為服務提供者,B

微信小程式學習筆記----初識小程式程式碼輪播圖實現

從這一節開始我們就開始接觸小程式前臺程式碼了,其實前臺邏輯還是比較簡單的,學習難度比學習一個前端框架難不了多少,記得以前一開始學前端框架的時候,流程就是:熟悉一下--檢視元件--找到要用的--複製貼上,其實對於大部分人來說,小程式前臺也是一樣。 首先,我們可以先看下小程式的

樹莓派入門- 基本設定:時區密碼apt-get源上傳下載

樹莓派基本設定 更改時區 修改root、pi密碼 更換apt為阿里雲源 使用lrzsz,上傳下載檔案 更改時區 輸入命令 sudo dpkg-reconfigure tzdata 上下箭頭移動游標,

Python自動化運維開發----基礎條件語句迴圈語句

1.python中的條件和迴圈有哪些? python中的迴圈和其他程式語言一樣,條件有if,迴圈有while、for 2.條件語句 條件語句的格式(1)有一個條件 if  條件:     執行語句1 else:   &

GoLand數據類型變量常量

%d 編譯器 需要 多變量 派生 進制 多個 推斷 字符串 Infi-chu: http://www.cnblogs.com/Infi-chu/ 一、數據類型 數據類型的出現是為了把數據分成所需內存大小不同的數據,編程的時候需要用大數據的時候才需要申請大內存,就可以充分利用