是否可以使用添加内联样式 css 变量Renderer2
?
我尝试了以下但它不起作用。
import { Component, OnChanges, Output, ViewChild, Renderer2, ElementRef, ViewEncapsulation } from '@angular/core';
@Component({
})
export class CollapsibleComponent implements OnChanges {
@ViewChild('collapsibleContent') collapsibleContent: ElementRef;
constructor(
private renderer: Renderer2
) { }
ngOnChanges() {
this.measureCollapsibleContents()
}
measureCollapsibleContents() {
this.renderer.setStyle(this.collapsibleContent.nativeElement, '--expanded', this.collapsibleContent.nativeElement.firstElementChild.offsetHeight + 'px' )
}
}
'--expanded' 不是适当的 css 属性,因此 angular 不会向我的 div 添加任何样式。
如果我确实添加了适当的 css 属性,它将像下面的代码一样工作。
this.renderer.setStyle(this.collapsibleContent.nativeElement, 'top', this.collapsibleContent.nativeElement.firstElementChild.offsetHeight + 'px' )
我的 div 的输出将是
<div style="top: 160px">...</div>
我想实现以下目标
<div style="--expanded: 160px">...</div>
我也尝试过[ngStyle]
,但是除了样式属性之外,它也不会呈现任何值。
[ngStyle]="{'--expanded': expandedHeight }"
输出到
<div style>...</div>