私はHTTPコールからHTMLコードのチャンクを取得しています。 HTMLブロックを変数に入れて[innerHTML]でページに挿入しますが、挿入されたHTMLブロックをスタイルすることはできません。誰も私がこれを達成する方法を提案していますか?角2 - innerHTMLスタイリング
スタイルを設定したいHTMLは、変数「calendar」に含まれるブロックです。
私はHTTPコールからHTMLコードのチャンクを取得しています。 HTMLブロックを変数に入れて[innerHTML]でページに挿入しますが、挿入されたHTMLブロックをスタイルすることはできません。誰も私がこれを達成する方法を提案していますか?角2 - innerHTMLスタイリング
スタイルを設定したいHTMLは、変数「calendar」に含まれるブロックです。
更新:: NG-深い
/deep/
::ng-deep
で非推奨と置き換えられました。
::ng-deep
も既に廃止予定ですが、まだ使用できる代替品はありません。
ViewEncapsulation.Native
がすべてのブラウザで適切にサポートされ、シャドーDOM境界のスタイリングをサポートする場合、::ng-deep
はおそらく中止されます。
元
角度は、部品の内外出血のスタイルを防ぐために、シャドウDOM CSSのカプセル化をエミュレートするためにDOMに追加されますHTMLにCSSクラスのすべての種類を追加します。 Angularは、これらの追加されたクラスに一致するように追加するCSSも書き換えます。 [innerHTML]
を使用して追加されたHTMLの場合、これらのクラスは追加されず、書き換えられたCSSは一致しません。
回避策はCSSの
/* :host /deep/ mySelector { */
:host ::ng-deep mySelector {
background-color: blue;
}
index.html
>>>
(および同等物/deep/
でも、/deep/
はSASSでうまくいく)、::shadow
が2.0.0-beta.10で追加されました。これらは、シャドーDOM CSSコンバイナ(非推奨)と似ており、Angular2のデフォルトであるencapsulation: ViewEncapsulation.Emulated
でのみ動作します。彼らはおそらくViewEncapsulation.None
でも動作しますが、それらは必要ないので無視されます。 これらのコンビネータは、コンポーネント間のスタイリングのより高度な機能がサポートされるまで、唯一の中間的な解決策です。
別のアプローチは、あなたのCSSをブロックするすべてのコンポーネントに対して
@Component({
...
encapsulation: ViewEncapsulation.None,
})
を使用することです(あなたはCSSを追加する場所に依存し、HTMLを使用して、スタイルにしたいということです - あなたのすべてののコンポーネントであるかもしれませんアプリケーション)
更新
複数のcss要素を1つだけにグループ化する方法があるかどうかを知っていますか?host >>>タグ?私はまた、外部のCSSファイルで:>>>タグを使用しようとしましたが、私はそれを動作させることができません。これが可能かどうか知っていますか? –
「複数のcss要素をグループ化する」とはどういう意味ですか? 'styleUrls:[...]'を使って外部CSSをコンポーネントに追加すると、外部スタイルと同様に動作するはずです。 –
これはnode-sassやstyleUrlのどちらでも動作しません。スタイルでのみ:[...] – thouliha
スタイルはどこからですか?コンポーネント内または 'index.html'に追加されたスタイルから –
「挿入されたHTMLブロックをスタイルできません」というのはどういう意味ですか?コードの小さなスニペットで何をしたのか教えてください。 – micronyks
Iveはコードスニペットで自分の投稿を更新しました! :) thanks –