Кой селектор съответства в набор от правила за стилус?

Има ли все пак да вземете името на класа, който съвпада в набор от правила за стилус?

Това, което се опитвам да направя, е да изсуша това правило (и много го харесват):

.button
  &:hover
    button-hover-color-scheme(teal)
    &.adwords
      button-hover-color-scheme(adwords)
    &.bingads
      button-hover-color-scheme(bingads)
    &.facebook
      button-hover-color-scheme(facebook)
    &.linkedin
      button-hover-color-scheme(linkedin)
    &.twitter
      button-hover-color-scheme(twitter)

Бих искал да изглежда така:

.button
  &:hover
    button-hover-color-scheme(teal)
    &.adwords
    &.bingads
    &.facebook
    &.linkedin
    &.twitter
      button-hover-color-scheme(matched-selector)

където matched-selector ще бъде това, което от adwords, bingads, facebook, linkedin, or twitter действително съответства на правилото.

Благодаря!

Редактиране:

Има функцията selector(), но тя ми дава цялата селектор не само последното парче за съвпадение. Това е почти това, от което се нуждая, но чувствам, че трябва да има по-прост начин за позоваване на съвпадащ селектор.


person spinlock    schedule 15.04.2015    source източник


Отговори (2)


Не можете да получите съвпадащия селектор, защото този селектор ще бъде дефиниран само във времето за изпълнение на браузъра. В този момент няма да има код на Stylus, защото браузърът ще използва CSS, който е компилиран от Stylus.

person Panya    schedule 16.04.2015
comment
Благодаря. Това има много смисъл и ми помага да мисля за това по правилния начин. Може би мога да опитам интерполация, за да получа това, което искам. - person spinlock; 16.04.2015
comment
Да, единственият начин да се избегне това дублиране е интерполация + цикли. - person Panya; 16.04.2015

Благодарение на отговора на Panya започнах да се опитвам да използвам интерполация, за да реша това и стигнах до:

.button
  &:hover
    for network in 'google' 'bing' 'facebook' 'linkedin' 'twitter'
      &.{network}
        button-hover-color-scheme(lookup(network))

Номерът беше да преминете през списък от низове, да използвате скоби за селектора и търсене, за да конвертирате низа обратно в променлива.

person spinlock    schedule 17.04.2015