0
votes

: styles de premier enfant n'étant pas appliqué dans la composante VUE

problème:

Normalement le premier devrait avoir margin-gauche: 0px et doit aligner sur la gauche avec le D'autres éléments mais cela ne fonctionne pas comme vous pouvez le voir dans la capture d'écran ci-dessous. Toute personne a eu une idée de la réparer correctement?

 Entrez la description de l'image ici

Sidebar.scss Code: xxx

latéralbar.vue code xxx

profil.vue code xxx

user.vue code: xxx


1 commentaires

@Yoms. Nope malheureusement pas. Je ne peux pas voir le style dans le code compilé.


3 Réponses :


2
votes

Utiliser :: v-profond code> pour changer scopé code> CSS.

J'ai répondu à cela déjà mais j'ai une réponse ancienne et plus descriptive disponible qui pourrait être une aide Pour vous comprendre l'utilisation https://stackoverflow.com/a/56698470/7358308 p>

https://vue-loader.vuejs.org/guide/ SCOPED-CSS.HTML # Deep-Selectors P>

Remarque: Don N'utilisez pas / profond / code> car il est obsolète et aussi >>> Combinator ne fonctionnera pas aussi que vous utilisez SASS code> Préprocesseur STRY> P>

::v-deep {
  .user {
    margin-left: -8px;

    &:first-child {
     margin-left: 0;
   }
  }

}


3 commentaires

Ne fonctionne pas malheureusement. Le Marge-gauche: -8px travaille dur. La portée ne doit donc pas être affectée à mon avis. C'est juste bizarre que tout fonctionne, à l'exception du pseudo-élément


Avez-vous essayé d'appliquer un autre style comme fond ou tout type de style , il semble qu'il faut y avoir un exemple de reproductible minimalement reproductible


Yep même problème. arrière-plan: rouge garde la compilation de tous les éléments .user . Si j'essaie d'ajouter arrière-plan: bleu à : premier enfant ça ne fonctionne plus à nouveau.



0
votes

Scoped Style n'est pas partagé entre les composants parents et enfants. Vous avez plusieurs options:

  1. Faire de style Global en supprimant l'attribut Scoped de la section de style du parent.

  2. Style d'importation dans le composant cible (utilisateur).

  3. Utilisez le combinateur profond dans le style scopé.

    >>> .user { ... }

    ou xxx

    ou xxx


1 commentaires

ne fonctionne pas malheureusement. Il est étrange difficile que les styles soient appliqués sur .User . Seuls les styles du pseudo-élément sont ignorés



1
votes

Pas trop sûr s'il s'agit du problème ici, mais notez que : premier enfant ne choisit pas la première occurrence du nom de classe, mais par la balise d'un élément parent. En d'autres termes: vous ne pouvez pas utiliser de nom de classe pour appliquer : premier enfant à. Au lieu de cela, utilisez quelque chose de plus sémantique comme xxx


1 commentaires

Ouais je pense que c'était le problème. Je pensais trop compliqué haha. J'ai changé : premier enfant à : premier de type et cela a fonctionné. Merci :)