Немедленный выбор ребенка в LESS - PullRequest
106 голосов
/ 13 ноября 2011

Есть ли в любом случае, чтобы LESS применял непосредственный дочерний селектор (>) в своем выводе?

В моем стиле. Я хочу написать что-то вроде:

.panel {
    ...
    > .control {
        ...
    }
}

и LESS генерирует что-то вроде:

.panel > .control { ... }

Ответы [ 4 ]

140 голосов
/ 13 ноября 2011

ОБНОВЛЕНИЕ

На самом деле, код в оригинальном вопросе работает нормально.Вы можете просто придерживаться дочернего селектора >.


Найден ответ.

.panel {
    ...
    >.control {
        ...
    }
}

Обратите внимание на отсутствие пробела между ">" и ".", В противном случае этоне сработает.

75 голосов
/ 13 ноября 2011

Официальный путь:

.panel {
  & > .control {
    ...
  }
}

& всегда относится к текущему селектору.

См. http://lesscss.org/features/#features-overview-feature-nested-rules

12 голосов
/ 13 ноября 2015

Правильный синтаксис будет следующим, в то время как использование & будет здесь избыточным.

.panel{
   > .control{
   }
}

В соответствии с рекомендациями , '&' используется для параметризации предков (но здесь такой необходимости нет). В этот пример меньше , &: hover важен для : hover , иначе это приведет к синтаксической ошибке. Однако здесь нет такого синтаксического требования для использования «&». В противном случае все вложения потребовали бы '&', так как они по существу ссылаются на родителя.

0 голосов
/ 08 февраля 2014

Также, если вы нацеливаетесь на первый дочерний элемент, такой как первый <td> из <tr>, вы можете использовать что-то вроде этого:

tr {
    & > td:first-child {font-weight:bold;}
}

это помогает уменьшить объявления классов, когда онине нужны.

...