Angular Component CSS 封装是如何工作的?

2024-06-28

我想了解如果我创建两个样式表

Style 1

.heading {
  color: green;
}

Style 2

.heading {
  color: blue;
}

现在如果这两种样式写在两个不同的视图中,渲染它们的时候 在布局上作为局部视图 https://jakeydocs.readthedocs.io/en/latest/mvc/views/partial.html,那么在这种情况下可能会发生冲突 并且一个可以覆盖另一个的风格。

BUT

Using angular https://www.nglesson.com/Livres/ng-book2-angular-5-r67.pdf(参见第16页),不同组件中的这两种样式怎么封装在同一个页面上呢?为什么 CSS 没有被覆盖?

例如

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

@Component({
 selector: 'app-user-item',
 template: '<p class="heading">abc</p>',
 styleUrls: ['./user-item.css']
})
export class UserItemComponent implements OnInit {

  constructor() {}

  ngOnInit() {}

}

用户项目.css

.heading{ color :green}

应用程序用户.component.ts

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

@Component({
 selector: 'app-user',
 template: '<p class="heading">abc</p>',
 styleUrls: ['./user.css']
})
export class UserItemComponent implements OnInit {

  constructor() {}

  ngOnInit() {}

}

user.css

.heading{ color :blue}

在页面上呈现此内容时:

<app-user></app-user>
<app-user-item></app-user-item>

这是结果:


Angular(默认情况下)模拟影子 DOM.

它动态创建一些仅适用于该组件中的元素的 HTML 属性。

例如:

<app-user></app-user>
<app-user-item></app-user-item>

将转变为

<app-user _ngcontent-1></app-user>
<app-user-item _ngcontent-2></app-user-item>

你的 css 将被转换为:

.heading[_ngcontent-1] { color: blue }
.heading[_ngcontent-2] { color: green }

你可以找到更完整的解释here https://blog.thoughtram.io/angular/2015/06/29/shadow-dom-strategies-in-angular2.html和文档here https://angular.io/guide/component-styles

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Angular Component CSS 封装是如何工作的? 的相关文章

  • 为什么这个 fs.readFile 循环没有将其结果推送到我的数组? [复制]

    这个问题在这里已经有答案了 usr bin env node var fs require fs async require async program require commander program version 0 0 1 usa
  • 如何在 Firebase 云函数和 Angular 之间共享 TypeScript 类

    我创建了一个 Angular 项目 在其中初始化 Firebase Cloud Functions 我的文件夹变成这样 project root node modules src app angular components functio
  • CSS水平导航间距

    我正在尝试用 css 创建一个水平导航栏 其中包含 5 个均匀间隔的链接 html 希望保持这样 div ul li a href one html One a li li a href two html Two a li li a hre
  • Array.from 的时间复杂度

    时间复杂度是多少Array from 例如 const set new Set set add car set add cat set add dog console log Array from set time complexity o
  • 如何在Javascript中保存zip文件的二进制数据?

    我从 AJAX 响应中收到以下响应 这是 zip 文件的响应 请让我知道如何在 Javascript 中保存此 filename zip ZIP 里面有 PDF 文件 我的代码是这样的 ajax url baseURLDownload se
  • 链接index.html client.js 和 server.js

    我从 Node js 开始 我的第一个程序已经遇到了问题 下面是我正在使用的代码 索引 html
  • Backbone.View:delegateEvents 未将事件重新绑定到子视图

    我已将这个问题分解为尽可能小的示例 即 它只是为了演示问题 不一定代表现实世界的场景 假设我有一个父视图 此处为 MainView 其中包含一个子视图 此处为 SubView 如果在任何时候我需要重新渲染父视图 从而重新渲染子视图 我就会丢
  • 带搜索框的 D3 图表

    我在 D3 中创建了一个图表 其中节点显示特定个人创建文档的时间 该图表还显示了一个搜索框 该搜索框根据搜索框输入是否与与该文档关联的单词匹配而将节点变成红色 这些单词列在数据集的第 5 列中 请参阅下面的数据集 我的问题 一旦将搜索输入到
  • 使用预先存在的数据库创建 PhoneGap iOS 应用程序

    我最近开始开发一个使用 PhoneGap 版本 2 8 0 作为药物查找器的应用程序 过去 我创建了该工具的 Web 版本 它使用 jQuery Mobile 和 PHP 来访问远程 SQL 数据库 PhoneGap 似乎是一个很有吸引力的
  • 右侧对齐不浮动

    我有一个聊天小部件 我正在向其中添加一些样式 但是 我很难使 用户 聊天气泡与屏幕右侧对齐 当我使用向右浮动和向左浮动 另一侧 时 div 不再正确定位 因为它们似乎只是转到相对 div 的右侧 我希望它也能够附加 div 这将导致溢出 y
  • CSS 文本渐变

    我环顾四周 找不到任何与此相关的信息 如果我有一段文本 有没有办法 也许使用 CSS3 来逐渐改变文本的颜色 因为它下降到页面 而不是渐变的方式 因为这只对单词起作用 而不是对整个文本段落起作用 所以我希望一些文本从白色开始 然后在到达段落
  • 在 *ngFor 中创建局部变量

    是否可以在 ngFor 中创建局部变量 例如 div 您可以将 ng container 与 ngIf 结合使用来实现此目的 div class message list div div
  • 删除移动设备上的 adsense

    我正在研究响应式设计 但在使用 adsense 时遇到了问题 我有一个广告应该显示在桌面设计上 但不能显示在移动设计上 因此 只有在桌面上查看网站时 才应将广告代码放置在 html 中 css 可以使用 display none 但这违反了
  • 如何在JavaFX中获得狭窄的进度条?

    正如标题所说 我需要制作一个细进度条 我用过这个 progressBar setMaxHeight 0 1 progressBar setPrefHeight 0 1 但这行不通 有人有想法吗 你必须搞乱样式才能让它变小 我真的建议看看ca
  • jQuery:array[i].children() 不是函数

    以下代码的灵感来自http ignorethecode net blog 2010 04 20 footnotes http ignorethecode net blog 2010 04 20 footnotes 当您将光标移到脚注符号上时
  • CSS 悬停+背景图片

    我正在使用 HTML CSS 创建一个特殊的 UI 控件来模仿 Windows 7 控制面板按钮 到目前为止 我已经完成了正确的布局 现在我想为其添加一些修饰 如图所示 当您将鼠标悬停在按钮上时 会出现渐变 http m cncfps co
  • React Native:当您的应用程序关闭时是否有回调函数?

    我有一个 setInterval 即使您关闭 而不是退出 应用程序也会继续运行 我想在我的应用程序关闭或设备进入睡眠状态时调用一个函数 以便清除 setInterval AppState 是你的朋友 看看AppState 的文档 https
  • 在特定路线中添加类 - Angular 2

    当我在某条路线上时 我正在尝试添加课程 代码在我的 AppComponent 中 我使用 ngClass Component selector my app template a Some html code 然后我在同一个 app com
  • JQuery 循环遍历动态元素并获取数据值

    我正在尝试使用可折叠面板来完成我的要求 sport on click function var thisId this attr id var thisChildren this sportlist thisChildren each fu
  • 如何使相对div居中?

    我一直在尝试让以下代码工作几个小时 但没有成功 您能帮我将项目 div 居中吗 即使页面放大和缩小时 这是我的 HTML 和 CSS bottom position absolute top 100 left 0 right 0 backg

随机推荐