Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Вложенные селекторы и изменение блока контекстом #1603

Open
ghost opened this issue Feb 16, 2020 · 3 comments

Comments

@ghost
Copy link

ghost commented Feb 16, 2020

Пример разметки:

.product
   .rate.product__rate
        .rate__stars

Пример css-правила:

.product__rate .rate__stars { /*...*/ }

Я правильно понимаю, стилевое правило выше противоречит рекомендациям, описанных во Вложенные селекторы?
Какие есть варианты модификации .rate__stars кроме использования модификатора на этом элементе или его родителе?

Читая документацию, обратил внимание на следующий пункт:
Изменение блока производится при помощи размещения одного блока в составе другого. Правила родительского блока применяются каскадом к вложенным блокам.
Изменение блока контекстом

Эта рекомендация относится исключительно к правилам, наследуемых по каскаду от родителя? Вложенный селектор в примере сбил с толку, невольно появились параллели с примером .product__rate .rate__stars.

@ghost ghost changed the title Вложенные селекторы и изменения блока контекстом Вложенные селекторы и изменение блока контекстом Feb 16, 2020
@Realetive
Copy link

Без контекста правильный совет дать сложно, но предположу, что блок .rate используется с разным оформлением, т. е. логично ввести модификатор:

.product
   .rate.rate_view_product.product__rate
        .rate__stars
.rate_view_product .rate__stars {}

В противном случае (если rate везде одинаковый), стили для rate__stars пишутся в самом .rate__stars.

@ghost
Copy link
Author

ghost commented Feb 16, 2020

предположу, что блок .rate используется с разным оформлением

Да, спасибо.

По вопросу, связанным с Изменение блока контекстом - можете привести пример использования на практике или собственное объяснение "что имеется в виду"? Вроде с виду все просто, а мозг почему-то завис в непонимании.

@Realetive
Copy link

Да. Например, у нас есть какой-то блок, на разметку которого мы не можем влиять CSS-классами — WYSIWIG-редактор, который заполняют менеджеры в админке (или markdown-разметка). Тут каскад — единственный «дешёвый» способ «достучаться» до оформления вложенных блоков.

@ghost ghost closed this as completed Feb 16, 2020
@ghost ghost reopened this Feb 16, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant