css - 为 Angular2 中的组件加载多个样式表

标签 css twitter-bootstrap angular webpack styles

我正在构建一个 angular2 应用程序。当我尝试为同一组件加载多个样式表时,我遇到了多个问题。这是我正在做的代码:

import { Component } from '@angular/core';

@Component({
selector: 'my-tag',
templateUrl: 'my-tag.component.html',
styleUrls: [
    './style1.css',
    './style2.css'
    ]
})
export class MyTagComponent{}

现在这是我的问题:

当我尝试像这样从其他目录包含 css 文件时:

styleUrls: [
    './style1.css',
    '../public/style2.css'
]

我得到了错误

Uncaught Error :预期的“样式”是一个字符串数组。

在浏览器控制台中。

然后我将第二个样式表 style2.css 包含在组件的目录中并编写了第一个片段。现在正在加载样式,但它正在全局加载。第二个样式表具有与 Bootstrap 冲突的类名,而不是 Bootstrap 的样式,第二个样式表的样式正在全局应用,即其他组件的模板正在从第二个样式表设置样式。

styleUrls 中列出的 url 是否应该仅应用于组件而不会对其他组件造成损害?

谁能告诉我如何在不全局应用的情况下为特定组件加载多个 css 文件。

我也尝试了以下变通方法,但该样式已应用于我制作的所有组件。

styles: [
      require('./style1.css').toString(),
      require('../public/style2.css').toString()
 ]

附言我正在使用 webpack 作为我元素的模块打包器。

webpack.config(节选)

 {
    test: /\.css$/,
    exclude: helpers.root('src', 'app'),
    loader: ExtractTextPlugin.extract('style', 'css?sourceMap')
  },
  {
    test: /\.css$/,
    include: helpers.root('src', 'app'),
    loader: 'raw'
  }

最佳答案

我见过这种方法:

@Component({
    selector: 'app',
    templateUrl: './app.component.html',
    styleUrls: ['./app.component.css']
})
export class AppComponent {
}

其中 app.component.css 有多个导入,因此:

@import url('/assets/plugins/bootstrap-datepicker/css/bootstrap-datepicker.css');
@import url('/assets/plugins/bootstrap-datepicker/css/bootstrap-datepicker3.css');
@import url('/assets/plugins/ionRangeSlider/css/ion.rangeSlider.css');
@import url('/assets/plugins/ionRangeSlider/css/ion.rangeSlider.skinNice.css');

希望对您有所帮助。

关于css - 为 Angular2 中的组件加载多个样式表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40763056/

相关文章:

javascript - jQuery - 根据屏幕宽度将像素添加到高度

twitter-bootstrap - 如何使用 typeahead 示例?

html - Bootstrap - 在主容器外放置横幅。

javascript - 无法获取数组的副本返回类型'必须具有返回迭代器的 '[Symbol.iterator]()' 方法

javascript - 使用 jQuery 在淡出( fiddle )之后为 DIV 的重新定位设置动画?

twitter-bootstrap - 使 flexbox 在 IE11 中工作

javascript - throw import 语句中需要 Angular TS1003 标识符,我的错误源于从 'rxjs' 导入 throw

html - 单击鼠标时将文本与光标一起拖动

javascript - CSS 网格 minmax(0,25%) 不会将宽度设置为 0

css - Grails Bootstrap 插件找不到 Bootstrap 资源