Less 中的嵌套規則與 & 符號的使用


.xkd{  font-size: 14px;}.xkd p{  line-height: 25px;}.xkd p span{  color: #ccc;}

 

這樣寫雖然也好理解,但是沒有那么直觀,維護起來也不方便。而 Less 中的嵌套規則正好可以解決這樣問題,嵌套規則允許在一個選擇器中嵌套另一個選擇器,這樣可以使得代碼看起來一目了然,后期維護也方便。

嵌套的使用

例如上面的 css 代碼使用 Less 語言來寫:

.xkd{   font-size: 14px;   p{      line-height: 25px;      span{         color: #ccc;      }   }}

 

這樣整體看起來是不是更直觀一些,一層套一層。但是注意喲,一般我們不會嵌套太多層,嵌套的層數越多,性能就越差,建議一般嵌套三層左右。

&符號的使用

在我們使用嵌套規則時,要特別注意 & 符號的使用,& 符號可以表示對父選擇器的引用。在一個內層選擇器的前面,如果沒有 & 符號,則這個內層選擇器會被解析為父選擇器的后代。如果內層選擇器前面有一個 & 符號,則內層選擇器會被解析為父選擇器自身或父選擇器的偽類。

示例:

例如我們看下面這段代碼:

.xkd{    a{        color: #eee;    }}

 

編譯成 css 代碼:

.xkd a {  color: #eee;}

 

可以看到,標簽選擇器 a 前面沒有加 & 符號,所以這個標簽選擇器 a 被解析為 .xkd 選擇器的后代。

示例:

再來看一下內層選擇器前面加 & 符號:

.xkd{   &one{      font-size: 12px;   }   &:hover{       color: #fff;   }}

 

編譯成 css 代碼:

.xkdone {  font-size: 12px;}.xkd:hover {  color: #fff;}

 

上面代碼中,one 前面添加了一個 & 符號,這個符號就表示父選擇器本身,所以解析后為.xkdone。當然 :hover 偽類前面的 & 符號也是同理。

重復引用父選擇器

通過使用 & 符號,可以重復引用父類選擇器。

示例:

例如下面這段 Less 代碼,如果我們希望每個選擇器名的前綴都為 top,可以像下面這樣簡寫:

.xkd{   &-one{       font-size: 14px;   }   &-two{       font-size: 16px;   }   &-three{       font-size: 18px;   }}

 

編譯為 css 代碼:

.xkd-one {  font-size: 14px;}.xkd-two {  font-size: 16px;}.xkd-three {  font-size: 18px;}

 

除此之外,還可以同時使用多個 & 符號,並使用其他運算符連接起來:

.xkd{   &&-one{       font-size: 14px;   }   &,&-two{       font-size: 16px;   }   &, &er{       font-size: 18px;   }}

 

編譯為 css 代碼:

.xkd.xkd-one {  font-size: 14px;}.xkd,.xkd-two {  font-size: 16px;}.xkd,.xkder {  font-size: 18px;}

 

更改選擇器順序

什么是更改選擇器順序呢,就是有些時候可能需要將內層選擇器放在父選擇器之前,此時我們可以將 & 放在當前選擇器后面來完成。

示例:

例如下面這段代碼,我們希望 .xkd 選擇器位於 .nav 選擇器之前,可以在 .xkd 選擇器的后面加一個 & 符號:

.nav{   font-size: 14px;   .xkd &{     color: #fff;   }}

 

編譯為 css 代碼:

.nav {  font-size: 14px;}.xkd .nav {  color: #fff;}

 

可以看到,編譯之后的 css 代碼中 .xkd 選擇器位於 .nav 選擇器前面。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM