一般情况
Less 提供了使用嵌套(nesting)代替层叠或与层叠结合使用的能力。假设我们有以下 CSS 代码:
#header {
color: black;
}
#header .navigation {
font-size: 12px;
}
#header .logo {
width: 300px;
}
用 Less 语言我们可以这样书写代码:
#header {
color: black;
.navigation {
font-size: 12px;
}
.logo {
width: 300px;
}
}
用 Less 书写的代码更加简洁,并且模仿了 HTML 的组织结构。
使用伪类/伪元素选择器的情况
以上是一般选择器的场合,如果你希望使用 伪类/伪元素 选择器,则需要使用 &符号
// less嵌套
.header {
// 1. less嵌套 子元素的选择器和样式 直接写到父元素选择器中
a {
color: red;
// 2.如果使用伪类/伪元素/交集选择器,则需要使用 &符号 来代指父级(这里的父级就是a)
// :hover {} 这样直接写是不对的 最后会编译成 a :hover {},会把:hover当作a的一个孩子
// 正确写法:
&:hover {
color: blue;
}
}
}
其实 & 符号就代表父元素本身,也就是自身所处的大括号的所有者。