2016-10-26 3 views
25

Можно ли добавить глобальный файл CSS в Angular 2? На данный момент у меня есть много разных компонентов, которые имеют одинаковый стиль кнопок, но каждый из компонентов имеет свой собственный CSS-файл с стилем. Это расстраивает изменения.Angular 2 - Глобальный файл CSS

Я прочитал где-то на переполнение стека, чтобы добавить:

import { ViewEncapsulation } from '@angular/core'; //add this 

@Component({ 
    selector: 'app-root', 
    templateUrl: './app.component.html', 
    styleUrls: ['./app.component.css'], 
    encapsulation: ViewEncapsulation.None   //add this 
}) 

Так я добавил ViewEncapsulation строки в корневой компонент, а затем добавил CSS стиль корневому приложения CSS (app.component.css) и удалены CSS-стиль из отдельных CSS-файлов компонентов, и это не сработало.

Наверняка есть способ добавить глобальный файл CSS? Нужно ли добавлять что-то к отдельным компонентам, чтобы они могли получить доступ к глобальному файлу CSS?

+1

Это правильный путь. Он должен работать. Когда вы говорите, что это не работает, что происходит точно? Все кнопки субкомпонента отличаются? Каков аспект кнопки, если вы добавили кнопку в свой шаблон компонента приложения. Имеет ли он правильный аспект? – chaiyachaiya

+0

Глобальный стиль не будет применяться вообще. – fila

+0

Это прекрасно работает)) – Devsullo

ответ

16

Вы можете просто импортировать css в основной файл html.

+2

Я полностью пропустил, что CLI Angular 2 на самом деле создает и включает файл styles.css в качестве глобального CSS-скрипта в файле index.html. Я просто открыл файл, чтобы увидеть «/ * Вы можете добавить глобальные стили к этому файлу, а также импортировать другие файлы стиля * /». Спасибо axl_80. – fila

+2

Приветствую вас, я рад узнать, что я могу вам помочь. Удачи в вашем проекте;) – Abraham

+10

Пример кода был бы хорошим –

30

С сегодняшнего дня с Angular 4 просто напишите свои глобальные стили в файле src/styles.css. Этот файл будет добавлен в styles.bundle.js при запуске ng build.

Файлы стиля зарегистрированы в Angular-CLI в файле .angular-cli.json. Вы увидите массив с именем styles внутри массива apps с единственным элементом по умолчанию, который равен styles.css (пути относятся к каталогу src). Если вы хотите использовать SCSS, измените расширение этого элемента на scss, а затем измените расширение файла src/styles.css.

Если вы хотите в будущем файлов стилей (для компонентов, например), чтобы быть scss по умолчанию, на тот же файл найти это в конце:

"defaults": { 
    "styleExt": "css", 
    "component": {} 
} 

и изменить значение styleExt к scss.

+1

Это важное дополнение к этому вопросу - поскольку это более актуально для новых версий Angular. Недавно я создал новый проект с новой установкой Angular CLI и (по привычке) вручную включил импорт CSS (в соответствии с выбранным ответом в этом вопросе), что привело к ошибке в консоли браузера. Как только я удалил инструкцию по использованию CSS в HTML, я заметил, что применяется стилизация CSS из styles.css. К сожалению, я не видел этого ответа до начала нового проекта ... – fila

+0

Это должен быть правильный ответ. – Juan

+0

На данный момент это был неправильный ответ. Я обновляю «правильный ответ», чтобы обновить его до Углового? * Технически * вопрос относится к Угловому 2 ... – fila