@zlodiak

Как понять инкапсуляцию стилей?

Помогите пожалуйста написать учебный пример чтобы было видно действие и выгода инкапсуляции стилей. Мой вариант тут. Здесь проблема в том, что непонятно какое действие осуществляет метааргумент encapsulation: ViewEncapsulation.None,

Есть корневой элемент и есть вложенный элемент. В каждом из них я отключил инкапсуляцию, но в результате к обоим применяются стили из первого. Где логика?

Нельзя ли более наглядно показать выгоду от использования ViewEncapsulation для случая вложенных элементов?
  • Вопрос задан
  • 402 просмотра
Решения вопроса 1
0xD34F
@0xD34F
Помогите пожалуйста написать учебный пример чтобы было видно действие и выгода инкапсуляции стилей. Мой вариант тут.

"Помогите"? Да вы и сами справились. Только зачем-то сами же всё и поломали.

непонятно какое действие осуществляет метааргумент encapsulation: ViewEncapsulation.None

Это отключение инкапсуляции стилей компонента.

Есть корневой элемент и есть вложенный элемент. В каждом из них я отключил инкапсуляцию, но в результате к обоим применяются стили из первого. Где логика?

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

А ещё лучше - прекратите вдобавок отключать инкапсуляцию, и тогда элементы из разных компонентов будут стилизованы каждый по-своему, несмотря на то, что имя класса - одно и то же. Собственно, в этом и состоит, как вы там выразились? - "выгода инкапсуляции" - вы можете в каждом из компонентов определять собственные правила стилей, не беспокоясь о том, что они будут пересекаться со стилями других компонентов.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы