2017-04-18 4 views
0

次のスニペットでは、margin-leftのCSSプロパティ.circleにアクセスできないようです。これを紹介するPLUNKrを作成しました。Cantのアクセスエレメントmargin-left

left-marginが必要なモバイルでプロパティバインディングの計算を調整する必要があるため、このプロパティにアクセスしようとしています。

これは私が持っているものの内訳です:私はmarginので、あなたのコード

<div class="circle" [ngStyle]="{'width': calcCircleWidth()}"></div> 

.circle { 
    margin: 40px 20px; 
} 

に基づいてvar html: HTMLElement

html \\ <div class="circle" _ngcontent-iai-1="" style="width: 50%;"> 
html.style \\ CSS2Properties { width: "50%" } 
html.style.marginLeft \\ (nothing) 
+0

何か狂った私のplunkrに起こった - 今それを修正する。 – Zze

+0

Plunkrが修正されました。 – Zze

+0

Plunkerは約2.0.0-beta.0です。それは一歳以上です。 Plunkerの 'new'ボタンを使って最近のAngularバージョンのPlunkerテンプレートを取得してください。 –

答えて

0

の性質をログインしたときに

<div class="circle" [ngStyle]="{'width': calcCircleWidth()}"></div> 

.circle { 
    margin: 40px 20px; 
} 

private calcCircleWidth(): string { 
    var html: HTMLElement = (<HTMLElement>document.querySelector('.circle:first-child')) 
    ... 
} 

これが結果ですNOT a要素のスタイル属性には、DOM要素のstyleメンバからアクセスできません。アカウントにスタイル属性とCSSを取る計算スタイルを取得するための適切な方法はgetComputedStyleを使用することです

より。ドキュメント:https://developer.mozilla.org/en/docs/Web/API/Window/getComputedStyle