Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/38.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Css 使用javascript文字时未应用Angular类_Css_Angular_Typescript_Template Literals - Fatal编程技术网

Css 使用javascript文字时未应用Angular类

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添加到全局样式表中

在模板文本中添加类时,它不会更改元素的样式:

comp.html

公司

公共教程:元素;
构造函数(){}
恩戈尼尼特(){
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;
}