「PrimeVue ライブラリを使用する場合、Vue3 の :deep() セレクターは無効です」
P粉785522400
2023-08-29 23:45:06
<p>vue3 と PrimeVue ライブラリを使用しています。 <code>:deep()</code> セレクターを使用して PrimeView コンポーネントの CSS フィールドをオーバーライドしようとしても、効果がありません。スコープ外のスタイルを使用する場合にのみ、変更が適用されます。なぜ機能しないのか混乱しています。 </p>
<p><code>:deep()</code> を使用したサンプル コード: </p>
<pre class="brush:js;toolbar:false;"><テンプレート>
<トースト位置='右下'/>
</テンプレート>
<スタイルスコープ>
:deep(.p-トーストメッセージアイコン) {
マージン右: 10px !重要;
}
</スタイル>
</pre>
<p>これは機能しません。 </p>
<p>ただし、スコープなしで <code>style</code> を使用する場合は、次のようになります。 </p>
<pre class="brush:js;toolbar:false;"><style>
.p-トーストメッセージ-アイコン {
マージン右: 10px !重要;
}
</スタイル>
</pre>
<p>それはうまくいきます。 </p>
要素にアタッチされているため、生成されたクラスは効果がありません。:deep
セレクターを通じて生成されたルールは、現在のコンポーネントの子要素に対して有効になりますが、p-toast
はただし、 パス オプション を設定して、アイコンにスタイル ルールを渡すことができます。
リーリー ###または### リーリー サンドボックスの例を参照してください。