首页 > 其他分享 >Less 中的嵌套规则与 & 符号的使用

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

时间:2022-11-29 20:01:49浏览次数:29  
标签:符号 Less xkd 嵌套 font 选择器 size

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 中的嵌套规则和 & 符号的使用, & 符号可以表示父选择器。最后,记住使用嵌套的时候不要嵌套太多层,会影响性能。


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

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

标签:符号,Less,xkd,嵌套,font,选择器,size
From: https://blog.51cto.com/u_15809510/5896708

相关文章

  • rfc3442-classless-static-routes 字段含义
    参考文档:https://www.nuomiphp.com/serverfault/zh/60480e758726d95932321906.html#dhcp配置optionrfc3442-classless-static-routescode121=arrayofinteger......
  • C++——多层嵌套模板类的静态成员变量的声明与定义方式
    在C++类的设计中,静态成员变量必须在类中声明,在类外定义,对于模板类亦是如此。如果只是单层级的模板类,其声明方式参考如下代码:template<typenameupid_t>classparent......
  • 应用 Serverless 化,让业务开发心无旁骛
    我们希望让用户做得更少而收获更多,通过Serverless化,用云就像用电一样简单。”张建锋表示,Serverless让云计算从一种资源真正变成一种能力,未来云将全面Serverless化,更加......
  • 处理iframe中嵌套本页面的问题
    在框架中,常常会出现一种状况,当session失效之后再次操作时,会发现登录页面(或者你要操作的页面)突然见就显示在了iframe中,这是很不好的体验。出现的效果大致像这样:......
  • S1 - Lesson 47 - 48
    单词likeIlikefootball.Ilikefootballverymuch.Ilikeplayingfootball.Ilikedriving.Ilikeswimming. wantthinkIwantanewcar.Iwanttodrive.......
  • angular FormArray 中嵌套 FormGroup 问题解决
    官方例子里说了FormArray可以嵌套group或者array,但只给了control的实例,这里记录一下嵌套groupts文件:import { Component } from '@angular/core';import { For......
  • 深度 | 新兴软件研发范式崛起,云计算全面走向 Serverless 化
    11月3日,2022杭州·云栖大会上,阿里云智能总裁张建锋表示,以云为核心的新型计算体系正在形成,软件研发范式正在发生新的变革,Serverless是其中最重要的趋势之一,阿里云将坚定......
  • 解决Visual Studio 调试时加载符号慢的问题
    什么是调试符号编译程序时生成的一组特殊字符,并包含有关变量和函数在生成的二进制文件中的位置以及其他服务信息的信息。该数据集可用于逐步调试程序或检查第三方代码。......
  • 深度 | 新兴软件研发范式崛起,云计算全面走向 Serverless 化
    11月3日,2022杭州·云栖大会上,阿里云智能总裁张建锋表示,以云为核心的新型计算体系正在形成,软件研发范式正在发生新的变革,Serverless是其中最重要的趋势之一,阿里云将坚......
  • S1 - Lesson 45 - 46
    单词 can bossmanager minutehoursecondIuse1hour3minutes4secondstofinishthetask. waitaminute.waitasecond. askCanIaskyouaq......