Установите общий фон для всех компонентов в Angular 6

Я пытаюсь получить фон (состоящий из изображения и цвета) для всех компонентов и поместил для него код в styles.css. Он отображается на главной странице AppComponent, но любые другие компоненты, которые визуализируются, появляются поверх него и покрывают фон собственным белым фоном. Итак, сейчас я применяю фон к каждому компоненту и корректирую положение сверху.

Есть ли более простой и эффективный способ сделать это?

Вот часть кода CSS, который я применяю в своих компонентах.

a.component.css

.bg {
   background: rgba(240, 240, 240, 1) url('src/assets/images/background.png');
   background-repeat: no-repeat;
   background-position: 60% -312px;
   background-size: 2874px 818px;
}

b.component.css

.bg {
   background: rgba(240, 240, 240, 1) url('src/assets/images/background.png');
   background-repeat: no-repeat;
   background-position: 60% -482px;
   background-size: 2874px 818px;
}

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

Jacopo Sciampi 15.10.2018 08:52

@JacopoSciampi У меня есть, но каждый компонент перекрывает фон и покрывает его. Кроме того, поскольку есть разные компоненты, расположенные друг над другом и ниже друг друга, мне нужно отрегулировать положение по высоте для каждого из них.

Akash Srivastav 15.10.2018 08:55

Попробуйте @Component({ selector: 'app-root', templateUrl: './app.component.html', styleUrls: ['./app.component.css'], encapsulation: ViewEncapsulation.None }). С ViewEncapsultion.None добавление правил в файл CSS, привязанный к компоненту, эквивалентно добавлению тех же правил в глобальный файл styles.css.

Sarthak Aggarwal 15.10.2018 08:57

@JacopoSciampi Хорошо, я попробовал, и это сработало. Поэтому я должен поместить фоновый класс в каждый компонент html и просто настроить высоту в css компонента, при этом все остальные свойства будут извлечены из styles.css, верно? Кстати, спасибо за ответ.

Akash Srivastav 15.10.2018 08:57

@AkashSrivastav Ага, это поможет!

Jacopo Sciampi 15.10.2018 08:59

@JacopoSciampi Итак, нет ли способа, при котором мне не нужно было бы помещать его в каждый компонент html и регулировать высоту? Есть ли способ заставить их не скрывать bg?

Akash Srivastav 15.10.2018 09:00

Что ж, вы можете динамически назначать bg-position с помощью ngStyle, но поскольку каждый компонент имеет свою собственную позицию, я считаю, что вам нужно вычислить его для каждого компонента через .ts.

Jacopo Sciampi 15.10.2018 09:14
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Angular и React для вашего проекта веб-разработки?
Angular и React для вашего проекта веб-разработки?
Когда дело доходит до веб-разработки, выбор правильного front-end фреймворка имеет решающее значение. Angular и React - два самых популярных...
Эпизод 23/17: Twitter Space о будущем Angular, Tiny Conf
Эпизод 23/17: Twitter Space о будущем Angular, Tiny Conf
Мы провели Twitter Space, обсудив несколько проблем, связанных с последними дополнениями в Angular. Также прошла Angular Tiny Conf с 25 докладами.
Угловой продивер
Угловой продивер
Оригинал этой статьи на турецком языке. ChatGPT используется только для перевода на английский язык.
Мое недавнее углубление в Angular
Мое недавнее углубление в Angular
Недавно я провел некоторое время, изучая фреймворк Angular, и я хотел поделиться своим опытом со всеми вами. Как человек, который любит глубоко...
Освоение Observables и Subjects в Rxjs:
Освоение Observables и Subjects в Rxjs:
Давайте начнем с основ и постепенно перейдем к более продвинутым концепциям в RxJS в Angular
0
7
454
1

Ответы 1

Если вы создаете приложение узла, в этом случае вы можете просто установить фон для своего файла main.handlebars. А другие страницы будут отображать его из основного вида макета.

будет выглядеть примерно так:

<html>
 <head>
  <style>background-color: #color_id</style>
 </head>
 <body>
  {{{body}}}
 </body>
</html>

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