Less學習筆記7:巢狀規則
阿新 • • 發佈:2018-12-07
巢狀規則
現有一個列表如下:
<ul class="list"> <li> <a href="#">這裡是一個進行測試的文字</a> <span>2018-11-21</span> </li> <li> <a href="#">這裡是一個進行測試的文字</a> <span>2018-11-21</span> </li> <li> <a href="#">這裡是一個進行測試的文字</a> <span>2018-11-21</span> </li> <li> <a href="#">這裡是一個進行測試的文字</a> <span>2018-11-21</span> </li> <li> <a href="#">這裡是一個進行測試的文字</a> <span>2018-11-21</span> </li> <li> <a href="#">這裡是一個進行測試的文字</a> <span>2018-11-21</span> </li> </ul>
在正常情況下:
.list{} //是一個樣式
.list li{} //是一個樣式
.list a{} //是一個樣式
.list span{} //是一個樣式
如果用巢狀來寫:
.list{ width: 600px; margin: 30px auto; padding: 0; list-style: none; li{ height: 30px; line-height: 30px; background-color: #ccc; margin-bottom: 5px; } a{ float: left; } span{ float: right; } }
此時想要a標籤左浮動,這個時候是將其放在li中呢?還是和li平級放在list中呢?
1.將a標籤的樣式放在li中,通過編譯生成的CSS為:
.list li a {}
2.將a標籤放在與li平級的list中,通過編譯生成的CSS為:
.list a{}
第一種方式相比較第二種,CSS的匹配次數多。儘量的讓其少去巢狀。
所以將a放在了與li平級
最後編譯生成的CSS為:
.list{ width: 600px; margin: 30px auto; padding: 0; list-style: none; } .list li{ height: 30px; line-height: 30px; background-color: #ccc; margin-bottom: 5px; } .list a{ float: left; } .list span{ float: right; }
要給a的hover加樣式:
在正常情況下:
.list a{}
.list a:hover{}
用巢狀的方式來寫:
.list{
width: 600px;
margin: 30px auto;
padding: 0;
list-style: none;
li{
height: 30px;
line-height: 30px;
background-color: #ccc;
margin-bottom: 5px;
}
a{
float: left;
&:hover{
color:red;
};
}
span{
float: right;
}
}
& 這個符號代表上一層的選擇器