Css 使用javascript文字时未应用Angular类
在模板文本中添加类时,它不会更改元素的样式: comp.html 公司Css 使用javascript文字时未应用Angular类,css,angular,typescript,template-literals,Css,Angular,Typescript,Template Literals,在模板文本中添加类时,它不会更改元素的样式: comp.html 公司 公共教程:元素; 构造函数(){} 恩戈尼尼特(){ this.tutorial=document.querySelector(“[data js='tutorial']”); this.tutorial.innerHTML=` 欢迎 `; } 不是红色的注入的html不是组件的一部分,因此组件CSS不会影响它。使用 ::ng-deep .testt { color: red; } 或者将css添加到全局样式表中
公共教程:元素;
构造函数(){}
恩戈尼尼特(){
this.tutorial=document.querySelector(“[data js='tutorial']”);
this.tutorial.innerHTML=`
欢迎
`;
}
不是红色的注入的html不是组件的一部分,因此组件CSS不会影响它。使用
::ng-deep .testt {
color: red;
}
或者将css添加到全局样式表中注入的html不是组件的一部分,因此组件css不会影响它。使用
::ng-deep .testt {
color: red;
}
或者将css添加到全局样式表中默认情况下,组件通过向宿主元素添加包含代理项id的属性,预处理通过样式或样式URL提供的样式规则,并向所有选择器添加新的宿主元素属性,来模拟样式的本机作用域 因此,可以将组件封装设置为“无”
@组件({
选择器:'应用程序根',
templateUrl:“./app.component.html”,
样式URL:['./app.component.scss'],
封装:ViewEncapsulation.None
})
或者在全局样式文件中添加该类,以便该类将影响项目中具有该类的任何元素
style.scss
.testt{
颜色:红色;
}
默认情况下,组件通过向宿主元素添加包含代理id的属性,并预处理通过样式或样式URL提供的样式规则,以及向所有选择器添加新的宿主元素属性,来模拟样式的本机作用域
因此,可以将组件封装设置为“无”
@组件({
选择器:'应用程序根',
templateUrl:“./app.component.html”,
样式URL:['./app.component.scss'],
封装:ViewEncapsulation.None
})
或者在全局样式文件中添加该类,以便该类将影响项目中具有该类的任何元素
style.scss
.testt{
颜色:红色;
}
谢谢。您可以提供如何在angular?中创建全局样式表,或者如果已经自动创建了全局样式表。第一个想法是创建一个样式表并将其嵌入index.html中。有更好或更常见的方法吗?如果在全局样式文件中添加样式,则无需创建样式表并将其嵌入index.html,因为它与自动创建的global.scss
全局样式表的结果相同?如果否,如何创建全局样式表?在根文件夹中创建它是否足以使其成为全局的?或者是否有一个特定的文件夹可以放置所有全局样式文件?您可以创建多个scss文件,然后将这些文件导入全局样式文件中,或者通过angular.json在样式数组中填充url创建新的angular项目时,通常会在src文件夹中创建一个styles.scss文件谢谢。您可以提供如何在angular?中创建全局样式表,或者如果已经自动创建了全局样式表。第一个想法是创建一个样式表并将其嵌入index.html中。有更好或更常见的方法吗?如果在全局样式文件中添加样式,则无需创建样式表并将其嵌入index.html,因为它与自动创建的global.scss
全局样式表的结果相同?如果否,如何创建全局样式表?在根文件夹中创建它是否足以使其成为全局的?或者是否有一个特定的文件夹可以放置所有全局样式文件?您可以创建多个scss文件,然后将这些文件导入全局样式文件中,或者通过angular.json在样式数组中填充url创建新的angular项目时,通常会在src文件夹中创建一个styles.scss文件谢谢。你能解释一下什么是封装:视图封装。无?你可以在这里检查封装的其他选项封装:视图封装。无意味着不要将css仅限于此组件,这样整个站点将受到组件css中任何css的影响:ng deep将限制css仅影响组件的子级,而不是整个站点。@AdrianBrand感谢您的反馈,我仍然认为最好的方法是将样式添加到全局样式文件中,这样他将来就不会有样式问题,这是我在回答中建议的谢谢。你能解释一下什么是封装:视图封装。无?你可以在这里检查封装的其他选项封装:视图封装。无意味着不要将css仅限于此组件,这样整个站点将受到组件css中任何css的影响:ng deep将限制css仅影响组件的子级,而不是整个站点。@AdrianBrand感谢您的反馈,我仍然认为最好的方法是将样式添加到全局样式文件中,这样他在将来就不会有样式问题,这是我在回答中建议的
public tutorial: Element;
constructor() { }
ngOnInit() {
this.tutorial = document.querySelector("[data-js='tutorial']");
this.tutorial.innerHTML = `
<h1 class = "testt">
Welcome
</h1>
`;
}
::ng-deep .testt {
color: red;
}