Jump to content
  • 0

[LESS] Разные правила для блоков с разными родителей


Shurikkan
 Share

Question

Всем привет.

Есть верстка:

<div class="sharing-new position-left">
    <div class="sharing-new-title">Заголовок 1</div>
</div>

<div class="sharing-new position-bottom">
    <div class="sharing-new-title">Заголовок 2</div>
</div>

Для блока sharing-new-title с модификатором родителя position-left нужно применить один стиль, а для него же, но с модификатором position-bottom - другой.

Пытался сделать по аналогии с вариантом https://jsfiddle.net/3qsfcep7/, но так НЕ работает:

.sharing-new {

    &.position-left {
        
        &-title & {
            color: red;
        }
    }
    
    &.position-bottom {
        
        &-title & {
            color: red;
        }
    }
}

ВОПРОС:

Как записать правила максимально коротко, по возможности используя амперсант, чтобы не быть привязанным к названию родительского класса.

Edited by Shurikkan
Link to comment
Share on other sites

3 answers to this question

Recommended Posts

  • 0
37 минут назад, AlexZaw сказал:

Насколько я знаю less, самый короткий вариант будет такой:


.sharing-new.position {
  &-left {
    .sharing-new-title {
      color: red;
    }
  }
  &-bottom {
    .sharing-new-title {
      color: green;
    }
  }
}

 

Ну это вообще не гибкий вариант получается. Мешать в одном селекторе класс и модификатор - плохой тон 🙂 

Link to comment
Share on other sites

  • 0
1 час назад, Shurikkan сказал:

Мешать в одном селекторе класс и модификатор - плохой тон

Начнем с того что вы изначально смешали блок с модификатором :)

Ну нет возможности выбрать родителя родителя, хоть убейся. Либо так, либо делать дополнительную обертку или переименовывать классы. Выбирайте.

еще вариант:

.sharing-new {
  &.position-left {
  }
  &.position-left &-title {
    color: red;
  }
  &.position-bottom {
  }
  &.position-bottom &-title {
    color: green;
  }
}

 

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy