少& +&没有扩大

时间:2013-11-06 19:12:28

标签: css less

According to the docs如果我这样做:

.child, .sibling {
    .parent & {
        color: black;
    }
    & + & {
        color: red;
    }
}

我应该得到这样的规则:

.parent .child,
.parent .sibling {
    color: black;
}
.child + .child,
.child + .sibling,
.sibling + .child,
.sibling + .sibling {
    color: red;
}

所以我正在做类似的事情:

table {
  width: 100%;
  td, th {
    text-align: right;
    & + & {
      text-align: left;
    }
  }
}

但它不起作用。关于为什么没有的任何想法?

DEMO

1 个答案:

答案 0 :(得分:2)

使用http://winless.org/online-less-compiler这对我来说非常好,这是输出:

table {
  width: 100%;
}
table td,
table th {
  text-align: right;
}
table td + table td,
table td + table th,
table th + table td,
table th + table th {
  text-align: left;
}

我认为问题是您正在使用功能& + &错误,因为它产生了table td + table td,转换为th有一个祖先table,其前一个兄弟是具有祖先td的{​​{1}}。

我认为您应该使用table

来表示table td + th, ...
+ th, + td

产地:

table {
  width: 100%;
  td, th {
    text-align: right;
    + th, + td {
      text-align: left;
    }
  }
}

只是为了澄清,它没有按你的想法工作的原因是因为table { width: 100%; } table td, table th { text-align: right; } table td + th, table th + th, table td + td, table th + td { text-align: left; } 代表当前选择器,包含在“当前”之前的所有内容。