我试图减少学习以减少重复 css 的痛苦。让我感到困惑的一件事是 less 中命名空间的语法。据我了解,less 与 css 兼容,因此
#myelement-id{}
是一个 id 选择器。另一方面,less 通过指定来支持命名空间
#namespace{}
那么,当我读取一个 less 文件时,我如何知道哪个“#”用于 id 选择器,哪个用于命名空间?
谢谢你的帮助。
没有区别。A #id
or.class
可以用作命名空间调用以访问其其他类或 mixin。为了让它与众不同,你需要把它变成一个mixin。因此,其中任何一个都是有效的:
#namespace {
.test {
prop: 1;
}
}
#namespace() {
.test {
prop: 1;
}
}
第一个将产生 css 输出作为id
选择器,第二个不会。但是任何一个都可以访问嵌套值,因此它们中的任何一个都可以在选择器块中.test
通过以下方式访问类:
.class {
#namespace > .test;
}
但是输出会有所不同,因为第一个是:
#namespace .test {
prop: 1;
}
.class {
prop: 1;
}
第二个只是:
.class {
prop: 1;
}