- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想制作一个组件并在另一个组件中多次使用它,由于该组件的模板和逻辑始终相同且样式不同,所以我决定创建单个组件而不是创建多个组件,只需动态定义样式文件。
有一个名为“在运行时延迟加载 CSS”的常用方法,我将包含一个链接,但问题是该方法的 css 文件是全局添加的,并且由于所有 css 文件都具有与最后一个文件同名的类。 DOM 添加了影响所有组件(即该方法中没有使用封装),所以该方法无效。
https://egghead.io/lessons/angular-lazy-load-css-at-runtime-with-the-angular-cli
最后我在下面放了一张图片,清楚地显示了我想要做什么。
player.component.ts:
@Component({
selector: 'app-player',
templateUrl: './player.component.html',
styleUrls: ['./player-' + number + '.css']
})
export class PlayerComponent implements OnInit {
@Input() number: number;
constructor() {}
ngOnInit(): void {}
}
player.component.html:
<p class="title">player works!</p>
player-1.css:
.title {
color: red;
}
player-2.css:
.title {
color: orange;
}
game.component.html:
<div>
<app-player [number]="1"></app-player>
<app-player [number]="2"></app-player>
<app-player [number]="3"></app-player>
</div>
如何做到这一点?任何解决方案都值得赞赏。
谢谢。
最佳答案
如果您只想动态更改颜色、字体大小等,您应该重新考虑使用全局主题。
如果存在重大布局差异,您有多种选择:
上述解决方案的好处是您还可以为子组件将使代码/指令更具可读性。您将拥有 darkListComponent、lightListComponent 等,而不是使用数字 1、2、3。
使用 ngClass:
<div [ngClass]="'my-component-style-' + number"></div>
styleUrls: ['theme1.scss','theme2.scss']
) my-component-style-1,my-component-style-2 {
...same styling
},
my-component-style-2 {
color: orange;
}
选项 2 更接近您的选择,您只需更新模板和样式表让它发挥作用。
关于javascript - 在 Angular 9 中创建具有动态 styleUrls 的组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60882070/
我在新项目中使用的是最新版本的angualar 5.0。我是这个框架的新手,希望 Angular 开发人员能提供一些帮助。 我想在运行时使用类级别变量动态设置 styleUrls 属性。在我的例子中,
正在开发一个 angular2 应用程序,希望能够为公共(public)内容和管理内容加载不同的样式。然而,Angular 似乎忽略了从外部源加载的样式 @Component({styleUrls:[
我正在做一个 angular 2 元素,并试图包含一个设置主题。我创建了 3 个 component.scss 文件 red.component.scss、yellow.component.scss
我无法在组件中同时使用 styleUrls + styles(看起来最后声明的那个被使用)。解决这个问题的最佳方法是什么? 我想使用 ./board.component.css 来声明基本样式,但想添
我正在使用 stenciljs 构建一个 web 组件,我希望能够基于名为 theme 的属性加载 css 主题文件。 @Component({ tag: 'pm-header', style
我有这个不加载样式的组件。不过模板加载正确。 // client/imports/navbar/navbar.ts import {Component} from "@angular/core"; @
我正在使用 Angular 4.1.3 和 Rails 5.1 我想在我的组件中使用 styleUrls,但出现错误。 这里有错误。 zone.js?4c9b:643 Unhandled Promis
我正在使用 nativescript-angular 1.2.0 和 tns-core-modules 2.5.0。 这是我的 login.component.ts: @Component({ m
我想知道是否可以在我的 Angular 2 组件中添加 .scss 文件? 假设我有以下内容: @View({ template: ` Click me!
我的 AngularJS 2应用程序有几个样式文件,我将它们与 gulp 任务连接起来。这一切都很好,因为它们最终会出现在我发送到生产环境中的浏览器的大文件中。我的问题是关于 Angular 2 @C
是否可以将样式表的 url 动态注入(inject)到组件中? 类似于: styleUrls: [ 'stylesheet1.css', this.additionalUrls ] 或(一厢情
我想在 styleUrls 中使用多 CSS @Component({ selector: 'app-root', templateUrl: './app.component.html',
有谁知道如何解决在组件上找不到 .scss 的 404 文件: 这是我的 .ts 文件 我想这就是你如何连接你的造型 .scss 和 .ts 在同一个 calendar/目录中 @Component(
在 Angular 2 中,我们可以对模板和样式使用内联或 url 方法。使用 url 有利于模块化、可读性,并且 IDE 还提供代码帮助。使用 url 会导致浏览器发出额外的请求,这可能会导致性能下
有没有办法给例如着色。不使用 styleUrl 的地标?我想要做的是直接在地标内设置地标样式,而不是必须声明样式 ID 并在地标中引用该 ID。 我想象的是这样的: Paths E
当我在 Angularjs2 中的 index.html 文件中使用样式链接时,界面工作正常: 但是,当我删除该行并将样式直接包含在组件的“styleUrls”部分中时,如下所示,它不起作用:
我正在使用 Typescrypt 开发我的第一个 Angular2 应用程序。这是组件的示例: home.component.ts import {Component} from '@angular/
我有组件 src/app/admin/create-company/create-company.component.ts和 css 文件 src/app/shared/layouts/admin/a
我将 Angular 2 与 SystemJS 结合使用,并尝试向组件添加样式表。 由于我使用的是 SystemJS I can't use relative path截至目前,我对组件的模板 url
我想制作一个组件并在另一个组件中多次使用它,由于该组件的模板和逻辑始终相同且样式不同,所以我决定创建单个组件而不是创建多个组件,只需动态定义样式文件。 有一个名为“在运行时延迟加载 CSS”的常用方法
我是一名优秀的程序员,十分优秀!