LESS 中转义的用途是什么?


在 LESS 中,“转义”允许我们使用任意字符串作为属性或变量值。有时,我们可能会在 LESS 代码中使用特殊字符或符号,这些字符或符号在编译代码时可能会导致问题。转义是一种技术,它通过将这些特殊字符和符号包含在一个特殊的容器中来帮助防止此类问题。

在本教程中,我们将探讨为什么 LESS 需要转义以及它是如何工作的。

语法

用户可以按照以下语法在 LESS 中使用“转义”。

@property_name: ~"anything";

在上文语法中,我们在需要转义的字符串之前使用了波浪号 (~) 符号。波浪号 (~) 告诉 LESS 将字符串按原样处理,无需对其进行任何更改,只是对字符串内的任何变量进行插值。

示例 1:转义 CSS 属性值中的特殊字符

在下面的示例中,我们使用了 ~ 运算符来转义 @my-bg 中 URL 中的单引号。

在输出中,用户可以看到编译后的 CSS 中正确的 URL。如果不转义,URL 周围的引号会导致编译错误。

@my-bg: ~"url('https://example.com/image.jpg')";
.background {
   background-image: @my-bg;
}

输出

.background {
   background-image: url('https://example.com/image.jpg');
}

示例 2:在媒体查询中使用变量

在下面的示例中,我们定义了一个变量 @viewport-max-width,其值为 600px。我们使用了转义来确保 @viewport-max-width 的值按原样传递到 CSS 代码中,不会被 LESS 处理。

注意:请注意,从 LESS 3.5 开始,在许多使用变量的媒体查询情况下,不需要转义。在这种情况下,我们可以使用 @{} 语法简单地引用变量。

在输出中,用户可以看到以下两个示例的输出相同,这导致媒体查询目标屏幕的最大宽度为 600px。

@viewport-max-width: 600px;
@media screen and (max-width: ~"@{viewport-max-width}") {
   .my-class {
      font-size: 1.2rem;
   }
}
In LESS 3.5+, the above example can be written without the need for escaping as follows: 
@viewport-max-width: 600px; 
@media screen and (max-width: @{viewport-max-width}) { 
   .my-class { 
      font-size: 1.2rem; 
   } 
}

输出

@media screen and (max-width: 600px) {
   .my-class {
      font-size: 1.2rem;
   }
}

示例 3:转义 LESS 变量值中的特殊字符

在下面的示例中,我们使用波浪号和双引号语法 ~"..." 定义了一个变量 @my-string 作为任意字符串。该字符串包含一对双引号,这在 LESS 编译时通常会导致问题。

在输出中,用户可以看到 @my-string 的值输出为 This is my "quoted" string,由于转义,没有任何问题。

@my-string: ~"This is my "quoted" string";
.my-class {
   content: @my-string;
}

输出

.my-class {
   content: This is my "quoted" string;
}

示例 4:将 LESS 函数与转义值一起使用

在下面的示例中,我们定义了一个变量 @my-color,其值为表示 RGBA 颜色的任意字符串。该值使用波浪号后跟双引号进行转义。

然后,我们使用 LESS 函数 darken() 将颜色的深 10% 阴影应用为 .my-class 元素的背景颜色。该函数能够理解转义的字符串值并相应地应用计算。

在输出中,用户可以看到原始颜色 (rgba(255, 0, 0, 0.5)) 已被加深 10% 至新颜色 (rgba(204, 0, 0, 0.5)),并应用为 .my-class 元素的背景颜色。

@my-color: ~"rgba(255, 0, 0, 0.5)";
.my-class {
   background-color: darken(@my-color, 10%);
}

输出

.my-class {
   background-color: rgba(204, 0, 0, 0.5);
}

用户学习了如何在 LESS 中使用转义。基本上,LESS 中的转义是一项重要的技术,它允许开发人员编写更高效且更易维护的 CSS 代码。

总的来说,通过使用转义语法和函数,开发人员可以确保特殊字符和保留关键字被正确编码,从而防止编译错误并确保最终输出正确。

更新于:2023年5月3日

浏览量:506

开启您的职业生涯

通过完成课程获得认证

开始学习
广告