大家一起学习less 3:命名空间
这其实是“嵌套规则”的升级版。
我们先看官网例子吧:
//LESS
//这里是命名空间的定义,里面包含一个button方法
#bundle {
.button () {
display: block;
border: 1px solid black;
background-color: grey;
&:hover { background-color: white }
}
}
//这里是具体调用,通过XXX > YYY方式进行调用,本人觉得用 -〉更可靠,起码长得不像亲子选择器
#header a {
color: orange;
#bundle > .button;
}
/* 生成的 CSS */
#header a {
color: orange;
display: block;
border: 1px solid black;
background-color: grey;
}
#header a:hover {
background-color: #ffffff;
}
上面的命名空间定义,不要以为只有ID选择器才可以,任何合法选择器也行,如
//LESS
//模块名改为类了
.bundle {
.button () {
display: block;
border: 1px solid black;
background-color: grey;
&:hover { background-color: white }
}
}
#header a {
color: orange;
.bundle > .button;
}
/* 生成的 CSS */
#header a {
color: orange;
display: block;
border: 1px solid black;
background-color: grey;
}
#header a:hover {
background-color: #ffffff;
}
我是强烈建议,对于这些命名空间(其他叫模块更恰切些),只应该包含方法
//LESS
//这里应该只包含方法,否则里面的合法语句会生成出来
#bundle {
.button () {
display: block;
border: 1px solid black;
background-color: grey;
&:hover { background-color: white }
}
.red{ color: red; }
}
//这里是具体调用,通过XXX > YYY方式进行调用,本人觉得用 -〉更可靠,起码长得不像亲子选择器
#header a {
color: orange;
#bundle > .button;
}
/* 生成的 CSS */
#bundle .red {
color: red;
}
#header a {
color: orange;
display: block;
border: 1px solid black;
background-color: grey;
}
#header a:hover {
background-color: #ffffff;
}
具体自己可以到这个网站玩玩!
机器瞎学/数据掩埋/模式混淆/人工智障/深度遗忘/神经掉线/计算机幻觉/专注单身二十五年
浙公网安备 33010602011771号