Angular 2にグローバルCSSファイルを追加することはできますか?現時点では、同じボタンスタイリングを持つ多くの異なるコンポーネントがありますが、各コンポーネントには、スタイリングを含む独自のCSSファイルがあります。これは変更にイライラさせられます。
Stack Overflowのどこかを読んで、以下を追加します。
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(app.component.css)にCSSスタイルを追加し、個々のコンポーネントCSSファイルからCSSスタイルを削除しましたが、機能しませんでした。
グローバルなCSSファイルを追加する方法はありますか?グローバルCSSファイルにアクセスするために、個々のコンポーネントに何かを追加する必要がありますか?
メインのhtmlファイルにcssをインポートするだけです。
src/styles.css
ファイルにグローバルスタイルを記述するだけです。 styles.bundle.js
を実行すると、そのファイルはng build
に追加されます。
さらにスタイルファイルを追加する場合は、.angular-cli.json
(またはAngular 6+の場合はangular.json
)ファイルで追加できます。そのファイルには、デフォルトでstyles.css
(またはAngular 6のsrc/styles.css
)という単一の項目を持つstyles
という配列があります。 .scss
ファイルを含めることもできます。
SCSSを使用する場合は、src/styles.css
ファイルの拡張子を.scss
に変更し、.angular-cli.json
(または6+ではangular.json
)ファイルに変更を反映します。まあ、styles
配列のエントリを編集することにより。
コンポーネントを作成するとき、Angularで.scss
の代わりに.css
スタイルファイルを作成する必要があります。方法は次のとおりです。
Angular 7から開始して、ng new appname
を使用してアプリを作成すると、使用するスタイルシート形式が求められるので、SCSS( source =)。ここで、Angularを手動で構成してSCSSを使用する必要がなくなりました。
これをangular.json
ファイルの最後に追加します( source ):
"schematics": {
"@schematics/angular:component": {
"styleext": "scss"
}
}
.angular-cli.json
ファイルの終わりまでにこれを見つけ、styleExt
の値をscss
に変更します。
"defaults": {
"styleExt": "css",
"component": {}
}