【发布时间】:2017-07-23 10:09:54
【问题描述】:
我将创建一个更少的代码,根据元素的类为元素提供不同的background-color。这将用于附件列表,因此类名基于附件扩展名。
我确实支持一些典型的扩展:
.label{
&.label-pdf{
background-color: #c70000;
}
&.label-doc, &.label-docx, &.label-odt{
background-color: #157efb;
}
&.label-xls, &.label-xlsx, &.label-calc{
background-color: #069e00;
}
&.label-ppt, &.label-pptx, &.label-odp{
background-color: #9e3c15;
}
&.label-jpg, &.label-png, &.label-gif, &.label-png, &.label-ttf{
background-color: #95009e;
}
}
但问题在于一些不寻常的扩展名,甚至是像:jpg、jpeg、doc、docx 这样的文件,这就是我想使用 CSS 表达式的原因。在纯 CSS 中我可以使用:
.label.[class^="label-"]{
background-color: rgba(0,37,100,0.4);
}
并将这段代码放在开头,以便其他类可以覆盖这个。
但不幸的是,这个标志^(我想)正在破坏我的 Less 编译。我一直在尝试做这样的事情:
~".label.[class^='label-']{
background-color: rgba(0,37,100,0.4);
}"
与
.label{
&.~"[class^='label-']"{
background-color: rgba(0,37,100,0.4);
}
}
但仍然无法正常工作。那么是否可以使用这个选择器呢?
【问题讨论】:
标签: css-selectors less