Как переписать стили angular-material2?

Я использую Angular2 с компонентами дизайна материалов. И хотел бы перезаписать некоторые стили, но похоже, что это невозможно из-за ViewEncapsulation.

Можно ли отключить ViewEncapsulation(ViewEncapsulation.None) для сторонних компонентов?

1 ответ

Лично я не стал бы касаться фактического стороннего источника (например, изменения инкапсуляции), и причина в том, что их стиль может испортиться.

Но чтобы справиться с этим, я дам вам несколько решений:

1-- Гадкий:

Вы можете переопределить все, что захотите, от компонента (возможно, от вашего компонента верхнего уровня), если его viewEncapsulation - none .

Так что зайдите в ваш app.ts и измените инкапсуляцию на none и делайте что хотите внутри этого:

  inside your app.scss or css

    md-input {

       input { color:red} 

     // or whatever style you want to override , sometimes you'll need !important .
    }

2-- Лучше:

В материале есть несколько файлов variables.scss, которые вы можете уточнить в их источнике, и вы можете легко переопределить их переменные, такие как цвета и прочее.

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

Другие вопросы по тегам