Angular 中某个组件的布局宽度改变

Change Width of Layout in A Certain Component in Angular

是否可以仅在选定的组件中更改布局的宽度?我只想在我的登录组件中更改 <div class="page home-page"> 吗?仅在登录组件中,不在其他组件中。

Angular 2/4 中的所有样式(主要全局样式表除外)都已封装,因此当您包含这样的样式表时:

@Component({
  selector: 'component-name',
  templateUrl: './component.html',
  styleUrls: ['./component.css']
})

component.css 中的所有样式将仅应用于 component.html(如果您不使用 /deep/ 之类的东西)。所以随意改变当前布局的宽度,不会影响其他布局!

指令可以解决您的问题。

src/app/width.directive.ts

import { Directive, ElementRef, Input } from '@angular/core';

@Directive({ selector: '[width]' })
export class widthDirective {

    @Input()
    set width(width: number) {
      this.el.nativeElement.style.width = `${this._width}px`;
    }

    constructor(el: ElementRef) {}
}

然后在你可以使用的任何组件中:

<div class="page home-page" width [width]="500">

如果你想让你的指令在任何地方都可以访问,你可以遵循