CSS 自定义元素的属性未继承给子元素

CSS properties of custom element not inherited to children

我正在处理一个 Angular 5 项目并注意到一些 CSS 属性没有从自定义元素正确继承。例如,考虑一个自定义组件 foo:

@Component({
  selector: 'foo',
  template: `
    <form>inside form</form>
    <div>inside form</div>
    outside
  `,
})
export class FooComponent { }

现在,我想改变它的 opacitymax-height:

foo {
  opacity: 0.5;
  max-height: 0;
  overflow: hidden;
}

但是,浏览器似乎无法正确继承这些属性,直至 formdiv 元素。

我做了一个plunk demonstrating the issue.

自定义元素继承 CSS 属性的方式有什么不同,还是只是浏览器错误?

opacitymax-height 都不是继承属性。我认为这仅仅是因为您的自定义 foo 组件默认情况下是内联的,因此甚至不允许应用 max-height。

添加

foo { display: block; }

foo { display: inline-block; }

并检查您得到的结果...

尝试分别添加标签以在必要的标签中应用 css。 Ej:

    foo.opacity-test form {
       opacity: 0.5;
    }