„Der :deep()-Selektor in Vue3 ist ungültig, wenn die PrimeVue-Bibliothek verwendet wird.'
P粉785522400
2023-08-29 23:45:06
<p>Ich verwende vue3 und die PrimeVue-Bibliothek. Wenn ich versuche, das CSS-Feld der PrimeView-Komponente mit dem Selektor <code>:deep()</code> zu überschreiben, hat dies keine Auswirkung. Meine Änderungen werden nur angewendet, wenn ich Stile ohne Bereichseinschränkung verwende. Ich bin verwirrt, warum es nicht funktioniert. </p>
<p>Beispielcode mit <code>:deep()</code>: </p>
<pre class="brush:js;toolbar:false;"><template>
<Toast position='buttom-right'/>
</template>
<Stilbereich>
:deep(.p-toast-message-icon) {
Rand rechts: 10px !important;
}
</style>
</pre>
<p>Das funktioniert nicht. </p>
<p>Aber bei Verwendung von <code>style</code> ohne Gültigkeitsbereich: </p>
<pre class="brush:js;toolbar:false;"><style>
.p-toast-message-icon {
Rand rechts: 10px !important;
}
</style>
</pre>
<p>Das funktioniert. </p>
通过
元素上的,所以生成的类将没有效果。:deep
选择器生成的规则会针对当前组件的子元素生效,但是p-toast
是附加到然而,您可以设置传递选项将样式规则传递给图标:
或者
在Sandbox中查看示例。