当前位置: 首页 > 知识库问答 >
问题:

视图封装更改 css 样式的特异性(权重)

郎聪
2023-03-14

我发现了这种封装。“无”使css样式显示暗绿色背景颜色,并且使用角度默认视图封装(viewenculation.Emulated),浏览器显示浅绿色背景颜色。

组件代码

import { Component, OnInit } from '@angular/core';
import {ToastrService} from "ngx-toastr";
//import {ViewEncapsulation} from "@angular/cli/lib/config/schema";


@Component({
  selector: 'app-toastr',
  templateUrl: './toastr.component.html',
  styleUrls: ['./toastr.component.css'],
  //encapsulation: ViewEncapsulation.None
})

代码

<div>
  <div class="myspan">
    something
  </div>
</div>

和风格

div div{
background-color: aqua;
}

.myspan {
  background-color: darkgreen;
}

我希望收到一个答案,为什么它的工作方式不同

共有1个答案

仉梓
2023-03-14

ViewEncapsulation.Emulated:我们在组件上定义的任何样式都不会泄漏到应用程序的其余部分。但是,该组件仍然继承了全局样式,例如twitter bootstrap。

视图封装。原生:我们在组件上设置的样式不会泄漏到组件范围之外。组件还与我们为应用程序定义的全局样式隔离。

ViewEncapsulation.None:我们没有封装任何东西,我们在组件中定义的样式已经泄漏出来并开始影响其他组件。

 类似资料:
  • 问题内容: CSS如何确定何时将一种样式应用于另一种样式? 我已经遍历了W3CSS3选择器文档几次,这帮助我了解了如何在jQuery中更好地使用CSS选择器,但是并没有真正帮助我理解何时将一个CSS规则应用于另一个CSS规则。 我有以下HTML: 我有以下CSS: 鉴于以上所述,链接1和链接2的样式将由CSS 确定。为什么与Link 2 关联的样式没有优先级? 显然,我可以这样解决: 但是,由于缺

  • 问题内容: 由于某些原因,我无法使用以下命令更改元素的样式: 我敢肯定,因为它返回一个DOM元素。另外,这可行: (我发现的所有内容都与ngStyle有关,但我不认为这是我想要的?) 我应该使用其他东西吗? 如果是这样:什么?为什么不起作用? 问题答案: 根据 文档 : 注意:Angular中的所有元素引用始终使用jQuery或jqLit​​e进行包装; 它们永远不是原始的DOM引用。 因此,该属

  • 目标:我试图在一个片段中应用两个不同的主题。一个用于片段的整体xml,另一个用于片段xml中的特定视图。 原因/问题:这是因为似乎不可能使用MaterialComponents将浮动操作按钮的整个背景更改为向量,但它确实适用于appCompat。 最初,我试图使用style="..."更改xml中的主题,如下所示,但它似乎正在恢复到清单中声明的主题AppTheme1。我知道这一点,因为我通过切换在

  • HTML CSS 上面的svg加载并且是本机的但是当我使用上面的尝试将它更改为黑色时,它没有改变,这是我第一次使用svg并且我不确定它为什么不工作。

  • 我有选择。我有一些商品。 我需要改变它的风格 这里是这个选择的html 我需要更改选项的样式,所以我在css中写了这个。 但它不起作用 如果我这样写 一切都很好 以下是截图 我的问题在哪里?

  • 问题内容: 有没有一种方法可以使用javascript更改CSS类的属性? 我想在用户调用函数changeCSS()后将display:block更改为display:none,将所有元素都更改为无。 看起来很简单,但我找不到解决方法… 问题答案: 关键是为其他类定义额外的规则,并将这些类添加到元素中,而不是重写给定样式规则的规则。 JS CSS 或使用真正有效的方法(但可能还需要一些特定的样式规