📜  Less 中的命名空间和访问器有什么用?

📅  最后修改于: 2022-05-13 01:56:18.050000             🧑  作者: Mango

Less 中的命名空间和访问器有什么用?

LESS(代表 Leaner Style Sheets)是一个向后兼容的 CSS 扩展。 LESS 是一个 CSS 预处理器,可让您自定义、排列和使用网页的样式表。 Less 是一种可以在客户端或服务器端执行的动态样式表语言。 Less 具有跨浏览器兼容性,是一种开源语言。

LESS 编译器是用 JavaScript 编写的。当浏览器加载网页时,编译器将 LESS 代码转换为 CSS。我们可以将它与我们的 LESS 样式表一起包含在我们的网页中。

LESS 中提供了命名空间来将不同的mixin 分类到一个组中,即这些用于将mixin 分组到一个通用名称下。它们主要用于这样的场景,比如如果我们想为不同的目的创建具有相同名称的不同 mixin,这可能会在名称中引起很多冲突,因此通过将它们放在自己的特定命名空间中,可以消除冲突。

示例 1:以下是 LESS 中命名空间和访问器的实现。 HTML 文件将是:

HTML


  

    Namespaces and Accessors in LESS
    

  

    

Namespaces and Accessors in LESS

    

LESS provides customizable,         and reusable stylesheet for website.

     


styles.less
.classA {
    .classB {
        .val(@param) {
            font-size: @param;
            color: blue;
        }
    }
}
  
.myclass {
    .classA > .classB > .val(10px);
}


CSS
.myclass {
    font-size: 10px;
    color: blue;
}


HTML


  

     GFG tutorial on LESS Features
    

  

    

GFG tutorial on LESS Features

    

      Example of using Namespaces in LESS .

     


styles.less
.colour-border {
    border: 1px solid #00ff00;
    background-color: ##8fbc8f;
    border-radius: 5px;
    padding: 20px;
    .rounded-box-inner {
        border: 1px solid #00ff00;
        .rounded-box-inner {
            padding: 20px;
        }
    }
}


CSS
.colour-border {
    border: 1px solid #00ff00;
    background-color: #8fbc8f;
    border-radius: 5px;
    padding: 20px;
}
.colour-border .rounded-box-inner {
    border: 1px solid #00ff00;
}
.colour-border .rounded-box-inner 
.rounded-box-inner {
    padding: 20px;
}


样式.less

.classA {
    .classB {
        .val(@param) {
            font-size: @param;
            color: blue;
        }
    }
}
  
.myclass {
    .classA > .classB > .val(10px);
}

在执行上述命令时;它使用以下代码自动创建 styles.css 文件:

CSS

.myclass {
    font-size: 10px;
    color: blue;
}

输出:

示例 2:

HTML



  

     GFG tutorial on LESS Features
    

  

    

GFG tutorial on LESS Features

    

      Example of using Namespaces in LESS .

     

样式.less

.colour-border {
    border: 1px solid #00ff00;
    background-color: ##8fbc8f;
    border-radius: 5px;
    padding: 20px;
    .rounded-box-inner {
        border: 1px solid #00ff00;
        .rounded-box-inner {
            padding: 20px;
        }
    }
}

编译后的 CSS 文件:

CSS

.colour-border {
    border: 1px solid #00ff00;
    background-color: #8fbc8f;
    border-radius: 5px;
    padding: 20px;
}
.colour-border .rounded-box-inner {
    border: 1px solid #00ff00;
}
.colour-border .rounded-box-inner 
.rounded-box-inner {
    padding: 20px;
}

输出: