Heim  >  Fragen und Antworten  >  Hauptteil

„Der :deep()-Selektor in Vue3 ist ungültig, wenn die PrimeVue-Bibliothek verwendet wird.“

<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>
P粉785522400P粉785522400416 Tage vor544

Antworte allen(1)Ich werde antworten

  • P粉094351878

    P粉0943518782023-08-30 16:40:49

    通过:deep选择器生成的规则会针对当前组件的子元素生效,但是p-toast是附加到元素上的,所以生成的类将没有效果。

    然而,您可以设置传递选项将样式规则传递给图标:

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

    或者

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

    Sandbox中查看示例。

    Antwort
    0
  • StornierenAntwort