"Le sélecteur :deep() dans Vue3 n'est pas valide lors de l'utilisation de la bibliothèque PrimeVue"
P粉785522400
P粉785522400 2023-08-29 23:45:06
0
1
595
<p>J'utilise la bibliothèque vue3 et PrimeVue. Lorsque j'essaie de remplacer le champ CSS du composant PrimeView à l'aide du sélecteur <code>:deep()</code> Cela n'applique mes modifications que lorsque j'utilise des styles sans portée. Je ne comprends pas pourquoi cela ne fonctionne pas. </p> <p>Exemple de code avec <code>:deep()</code>: </p> <pre class="brush:js;toolbar:false;"><template> <Position du toast='buttom-right'/> </modèle> <portée du style> :deep(.p-toast-message-icône) { marge droite : 10px !important ; } </style> ≪/pré> <p>Cela ne fonctionne pas. </p> <p>Mais lorsque vous utilisez <code>style</code> sans portée, comme ceci : </p> <pre class="brush:js;toolbar:false;"><style> .p-toast-message-icône { marge droite : 10px !important ; } </style> ≪/pré> <p>Ça marche. </p>
P粉785522400
P粉785522400

répondre à tous(1)
P粉094351878

via :deep选择器生成的规则会针对当前组件的子元素生效,但是p-toast est attaché à l'élément

, donc la classe générée n'aura aucun effet.

Cependant, vous pouvez définir des options de passage pour transmettre les règles de style à l'icône :

<Toast
    :pt="{
        icon: { style: 'marginRight: 10px !important;' }
    }"
/>

ou

<Toast
    :pt="{
        icon: { class: 'mr-2' }
    }"
/>

Voir des exemples dans Sandbox.

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal