less巢狀規則

2021-09-25 07:47:44 字數 1805 閱讀 5408

目錄

巢狀語法

優先順序: 偽類

指令巢狀

html

css

#container 

#container .left,

#container .center,

#container .right

#container .left

#container .center

#container .right

將css的樣式改為使用less來寫的話,是這樣的:

#container 

.left

.center

.right

}

很明顯,使用less來寫的話,**是比較少,並且是比較清晰的,它編譯之後,效果是跟前面的css寫法一樣的。

如果相同的class類名的不同元素,在不同的位置時(乙個是父元素的子元素,另乙個是父元素的兄弟元素),這樣的情況下,

子元素裡面定義的樣式不會被應用到父元素的兄弟元素;

兄弟元素的樣式會被應用到父元素的子元素,但前提是父元素的子元素沒有該屬性的時候才會被應用,如果它自己有該屬性,則它自己的屬性優先順序比較高。

這樣說不知道能不能被理解,用實際**看看吧:

#container 

}.center

效果如下:

container的裡邊的center本身是沒有寫border屬性的,但是它被外面的center汙染到了。它們相同的部分,container裡邊的center會使用它自己的,而且外面的無法使用(即使外層的center沒有該屬性,也不會被裡層的汙染)。

如果要新增hover或者其它偽類,可以這樣寫:

&:hover
如果加上&識別符號,代表繫結到父元素裡,如果不帶&識別符號,則繫結到所有子元素裡。拿上面的例子來說,看看實際寫法:

#container 

.left

.center

.right

// 這樣寫是給container繫結了hover效果

&:hover

// 這樣寫是給container的所有子元素繫結了hover效果

:hover

}

什麼是指令?

如:@media、@keyframe之類的css指令

巢狀方法(@media):

html

less

.container 

@media (min-width: 600px) }}

這裡所寫的less,相當於下面的css:

.container 

@media screen and (max-width: 300px)

}@media screen and (min-width: 600px)

}

如果巢狀裡面有非指令的屬性,會被忽略。

Less的巢狀規則

在使用標準css時,要為多層巢狀的元素定義樣式,要麼使用後代選擇器從外到內的巢狀定義,要麼給這個元素加上類名或 id 來定義。這樣的寫法雖然很好理解,但維護起來很不方便,因為無法清晰了解到樣式之間的關係。在less中,巢狀規則使這個問題迎刃而解。巢狀規則允許在乙個選擇器中巢狀另乙個選擇器,這更容易設...

less 的幾個規則

1.變數的延遲載入 var 0 class one var 1 2.混合就是將一系列屬性從乙個規則集引入到另乙個規則集的方式 變數使用 定義 yanse b,w 10px,c red yanse a,w 10px,c red inner inner2 inner3 3.計算 div 4.繼承繼承被附...

HTML巢狀規則

先說基礎,html標籤有兩類 1 塊級元素 div h1 h6 address blockquote center dir dl dt dd fieldset form hr isindex menu noframes noscript ol p pre table ul 特點 總是在新行上開始,高...