在Angular2中对嵌套组件应用css规则
Apply css rules on nested component in Angular2
我有一个嵌套组件SearchBar作为我的Header的子组件。我的组件定义:
@Component({
moduleId: module.id,
selector: 'search-form',
templateUrl: 'search-form.component.html',
styleUrls: [ 'search-form.component.css']
})
search-form.component.html在内部使用了以下指令:
<tag-input placeholder="Add tags ..."
[(model)]="tagsArray"
(tagsChanged)="onTagsChange($event)"
(tagsAdded)="onTagsAdded($event)"
(tagRemoved)="onTagRemoved($event)"
[delimiterCode]="[32]"></tag-input>
和search-form.component.html我有以下规则:
.ng2-tag-input-field {
padding: 5px;
border-radius: 6px;
margin-right: 10px;
direction: ltr;
text-align: right;
}
CSS规则对嵌套指令没有影响,除非我把CSS放在Styles.css文件中。为什么它没有像预期的那样工作?
您需要更改组件的viewEncapsulation
。
import { ViewEncapsulation} from '@angular/core';
@Component({
moduleId: module.id,
selector: 'search-form',
templateUrl: 'search-form.component.html',
styleUrls: [ 'search-form.component.css'],
encapsulation: ViewEncapsulation.None
})
Angular 2内置了视图封装,这使我们能够使用Shadow DOM
。有三种视图封装类型:
1) ViewEncapsulation。无 -没有影子DOM。因此,也没有样式封装。
2) ViewEncapsulation。仿真 -没有影子DOM,但样式封装仿真。
3) ViewEncapsulation。原生 -原生阴影DOM的所有优点。
更多信息请参见VIEW ENCAPSULATION IN ANGULAR 2
相关文章:
- 如果文本字段为空,则使用JavaScript应用CSS样式
- 如果30秒未单击,请应用CSS一次,将其删除,然后重新迭代
- 如何通过按键激活按钮应用CSS效果
- Jquery添加一个类之后,如何应用css
- 通过JS添加类时应用CSS转换
- 如何在不链接/jquery的情况下使用方法应用css属性数组
- 如何在页面刷新后使用 jquery 应用 CSS(刷新前构建 CSS)
- AngularJS - 在第一个可见元素上应用 CSS 类(Preferred No JQuery)
- Angular js ng repeat与条件ng类不应用css类
- 点击时在元素上应用css样式,独立于父级
- 如何在react组件上应用css样式
- 使用skel框架构建的响应式网站只有在使用漂亮的URL时才能应用css
- 当使用查询字符串时,我如何应用css
- 选择框在应用 css/javascript 时失去功能
- 使用 setLabel 方法对冻结列的标题应用 CSS
- 如果文件名取自用户,则不应用 CSS 规则
- 对匹配的文本应用 CSS
- 在我的JavaScript中应用CSS
- 如何调试正在应用 css 的 html 代码
- 如何计算应用 CSS 转换矩阵的 DOM 元素的边界矩形大小?不使用 Element.getBoundingClient