html – LessCss:带amp;keyword的多个类选择器
说 – 拥有一张带有大量“多个”css规则的.less工作表来管理图标.
.icon { display:inline-block; position:relative; text-indent:-9999em;} .icon-l.legend { width:24px; height:24px;} .icon-white.legend{ background:url(@icon_legend_white) no-repeat;} .icon-l.arrow_left{background-position: -128px -32px;} 并应用这样的规则: <i class="icon icon-l icon-color legend arrow_left"></i> 当我有权访问标记时,这可以正常工作,但是我很难将这些规则应用于给定元素: 这是我期望的工作: #something{ .icon; .icon-l.legend; .icon-white.legend; .icon-l.arrow_left; } 这只会引发错误. 我“被引导相信”那个“&”操作符可以应用如下规则: #something{ .icon; .icon-l{&.legend{}}; .icon-white{&.legend{}}; .icon-l{&.arrow_left{}}; } 这不会引发任何错误,但只会应用.icon的规则. 有人有解决方案吗? UPDATE 仅供参考 – SublimeText2 plugin – 工作得相当好,并且很好地集成到工作流程中(需要’构建’文件) – 但是无法呈现这样的多个类 SimpLess – 是一个很好的独立我喜欢很多,除了我不断编译错误堆栈的错误 – 没有明确引用错误位置 WinLess – 设法完成我的所有编译需求,以及成功编译这样的多个类.此外 – 它的错误报告非常具体.让它成为赢家. 解决方法似乎是编译器问题如果你采取你最初的想法: .icon { display:inline-block; position:relative; text-indent:-9999em;} .icon-l.legend { width:24px; height:24px;} .icon-white.legend{ background:url(@icon_legend_white) no-repeat;} .icon-l.arrow_left{background-position: -128px -32px;} 同 #something{ .icon; .icon-l.legend; .icon-white.legend; .icon-l.arrow_left; } 然后假设您为变量@icon_legend_white赋值,则the online winless compiler将其编译为以下(变量设置为“somepath”): #something { display: inline-block; position: relative; text-indent: -9999em; width: 24px; height: 24px; background: url("somepath") no-repeat; background-position: -128px -32px; } 因此,如果您的编译器抛出错误,那么它们的编译方式之间显然存在一些差异.然后解决方案是切换编译器,或调试您正在使用的编译器. 更新 进一步尝试使用winless编译器表明,只有当项目由类或id定义时才会起作用(这是可以理解的,因为这对于mixins来说是有效的),但它确实有一个错误,它会混合通过简单的mixin调用任一个的.icon-l.legend和.icon-l .legend中的一个或两个.因此,如果调用mixin,则忽略第二组(使其成为子选择器)之间的“空格”.这对编译器来说当然是错误的. Another online compiler似乎没有遭受该错误,但仍然根据您的原始尝试编译. (编辑:通辽站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |