1. 程式人生 > >less 中的命名引數

less 中的命名引數

下圖是我的 html 結構:頁面上已經引入了一個6.命名引數.css檔案(我是用考拉進行編譯的)   

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<link rel="stylesheet" href="css/6.命名引數.css" />
	</head>
	<body>
		<div class="wrap">
				wrap
			<div class="inner">
				inner1				
			</div>	
		</div>
	</body>
</html>

下面是我的less檔案程式碼(提供複製,主要看下圖)

.juzhong(@s,@c,@w){
    left: 0;
    right: 0;
    top: 0;
    bottom: 0;
    margin: auto;
    border-style:@s ;
    border-color:@c ;
    border-width:@w ;
       
}
.wrap{
   
    position: relative;   
    width: 400px;
    height: 400px;
    background: deeppink; 
    .juzhong(solid,blue,10px);
      
      .inner{
        position: absolute;       
        width: 200px;
        height: 200px;
        background: pink;        
        .juzhong(10px,black,solid);    
            
    }
}

 可以看到我們定義的混合的形參列表順序是:border-style,border-color,border-width

顯然,2的順序和我們定義的混合形參列表1的順序是一樣的

然後我們看看3,順序完全亂的,那我們編譯完會造成什麼呢?看下圖:

從圖中可以明顯看到,因為呼叫混合時我們的實參列表順序是錯誤的,所以到最後編譯完得出來的CSS也是錯誤的!!!

我們如果就想亂寫順序怎麼辦呢?終於到解決辦法了!!!

我們可以通過命名引數 來解決 :我們再呼叫混合時在引數前面加上他自己的引數名(形參名)中間用逗號(,)隔開

如:.juzhong(@c:black,@s:solid,@w:10px)

這樣引數沒有放置值的任何順序,它們可以通過名稱來進行引用