我有一页,这页被一分为二.页面的一部分是child1,另一部分是child2.

等级制度

Parent
   Child1
   Child2

下面是页面中包含的css

Child1 ->   z-index: 1
Child2 ->   z-index: 2

我想在点击child1中的按钮时为整个页面提供背景.Css如下

.backdrop {
    position: fixed;
    background-color: rgba(16,19,22,.6);
    z-index: 5;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
}

但这只涉及child1组件.我希望它能覆盖整页.

推荐答案

事件emits 器

最好不要反对Angulars样式的封装,只需向父级抛出一个事件,让它处理样式.

在子组件脚本中:

@Output() styleEvent = new 事件emits 器();

onClick() {
  this.styleEvent.emit();
}

子组件模板:

<button (click)="onClick()">Add Style</button>

在父脚本中:

styleOn = false

handleStyleEvent() {
  this.styleOn = !this.styleOn
}

getStyle() {
  return this.styleOn ? 'backdrop' : ''
}

在父模板中:

<div [ngClass]="getStyle()">
  <app-one (styleEvent)="handleStyleEvent()"></app-one>
  <app-two></app-two>
</div>

You can add the styling to your parent stylesheet (or 100 if you want it to be globally available).

这里有一个关于Stackblitz的例子.

Css相关问答推荐

视频嵌入在Bootstrap 5轮播中没有响应扩展

如何防止背景重复图像被截断

我的css是我的react 应用程序没有按预期工作

如何在容器查询体中重新定义:Root的CSS自定义属性值?

Nuxt 3+sass:不能将包含路径与@IMPORT和@USE一起使用

如何使用CSS滚动驱动动画重复时间轴范围

如何解决 Spotify 嵌入代码中的白色背景错误?

滚动弹性盒

将重复的线性渐变锚定到元素的顶部

通过css修改样式shadowroot元素

带有 gatsby-plugin-image 的 bootstrap 卡 ImgOverlay 未按预期调整大小

如何将转换应用于相同的元素但处于不同的状态:悬停

媒体查询以错误的宽度触发

如何更改 HTML 输入标签的字体和字体大小?

将 Fixed div 设置为父容器的 100% 宽度

通过 JavaScript 更改 CSS 伪元素样式

你如何在 SASS 中定义属性 Select 器?

Rails 中正确的 SCSS assets资源 struct

如何复制 iOS 上固定的后台附件

仅使用 css 的换行符(如
)