Less语言特性 - 命名空间和访问器

2021-06-19  本文已影响0人  张中华

它用于将mixins分组在通用名称下。 使用命名空间可以避免名称冲突,并从外部封装mixin组。
less是css的预编译语言,类似于用函数编程的方式去定义css。所以自然会涉及到调用的问题,我们在写.net/java时,需要调用外部对象方法时,其实在头部就是先引用了该对象方法的命名空间,在这个地方,命名空间的主要目的就是划分模块,自然每个模块是互不干扰的,避免了不同命名空间下的重名冲突等。也正因如此,增加了代码的可读性。

例如下面的例子,先做了定义, 最外层是headerClass, 内部有两个leftClass和rightClass:

.headerClass {
    .leftClass {
        float: left;
    }
    .rightClass {
        float: right;
    }
}

定义好了层次结构之后便可以直接调用了,例如:

.container .left {
    .headerClass > .leftClass;
}

如此一来,便有了一定的复用功能,且因为有了命名空间不会造成代码使用的混乱。

示例

index.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link rel="stylesheet/less" type="text/css" href="./index.less" />
    <script src="../../less.min.js" ></script>
    <title>Document</title>
</head>
<body>
    <div class="container">
        <div class="header">
            <div class="left">左侧内容</div>
            <div class="right">右侧内容</div>
        </div>
    </div>
</body>
</html>

index.less

.headerClass {
    .leftClass {
        float: left;
    }
    .rightClass {
        float: right;
    }
}

.container .left {
    .headerClass > .leftClass;
}

.container .right {
    .headerClass > .rightClass;
}
上一篇 下一篇

猜你喜欢

热点阅读