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

时间:2018-03-16 13:39:48

标签: html css angular custom-element

我正在开发一个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元素。

  • Firefox(59)正确继承了opacity,但似乎忽略了max-height
  • Chrome(64)不会继承opacity,也会完全忽略max-height

我做了 plunk demonstrating the issue

关于自定义元素如何继承CSS属性,或者仅仅是浏览器错误,是否存在一些问题?

2 个答案:

答案 0 :(得分:4)

opacitymax-height都不是继承的属性。我认为这只是因为你的自定义foo组件默认是内联的,所以甚至不允许应用max-height。

添加

foo { display: block; }

foo { display: inline-block; }

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

答案 1 :(得分:0)

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

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