Less 中的嵌套规则与 & 符号的使用

今天这篇文章主要学习 Less 中的嵌套,嵌套应该很容易理解,html 语言中就支持标签的嵌套。我们在使用 css 时,如果想要为多层嵌套的元素设置样式,要么给元素加上一个类选择器或ID选择器,要么使用后代选择器。例如:

.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 选择器前面。

总结

今天这篇文章内容主要是希望我们学习并掌握 Less 中的嵌套规则和 & 符号的使用, & 符号可以表示父选择器。最后,记住使用嵌套的时候不要嵌套太多层,会影响性能。

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值