前言
在写vue组件的时候,css使用的是less。有一个样式,老是出不来,后来查了下是本身对于less的用法不了解。下面直接上代码。css
.head{ height: 100px; width: 100px; border: 1px solid gainsboro; background-color: #000000; .content{ background-color: #fff; } &.body{ background-color: #72cc26; } }
这段less编译以后为:vue
.head { height: 100px; width: 100px; border: 1px solid gainsboro; background-color: #000000; } .head .content { background-color: #fff; } .head.body { background-color: #72cc26; }
这里咱们能够看到在类前面添加了&以后,编译以后的css变为且的关系,而没有使用&的css是父子的关系。less
这里须要注意.a.b和.a .b之间的区别,.a.b 是且的关系意思就是2者必须都具有,而.a .b是上下级,父子关系
<!--.a.b--> <div class="a b"></div> <!--.a .b--> <div class="a"> <div class="b"></div> </div>
.head{ height: 100px; width: 100px; border: 1px solid gainsboro; background-color: #000000; .content{ background-color: #fff; } .content &{ background-color: #fff; } }
编译后:code
.head { height: 100px; width: 100px; border: 1px solid gainsboro; background-color: #000000; } .head .content { background-color: #fff; } .content .head { background-color: #fff; }
p, a, ul, li { border-top: 2px dotted #366; & + & { border-top: 0; } }
编译后:编译
p, a, ul, li { border-top: 2px dotted #366; } p + p, p + a, p + ul, p + li, a + p, a + a, a + ul, a + li, ul + p, ul + a, ul + ul, ul + li, li + p, li + a, li + ul, li + li { border-top: 0; }
&会把全部的可能性都排列出来。class