recherche

Maison  >  Questions et réponses  >  le corps du texte

La transformation CSS basée sur des changements de classe conditionnels ne fonctionne pas lors de l'utilisation de vuejs et tailwind

<p>我正在尝试使用 <strong>vent arrière</strong> <code>transition</code> 类来展开侧边栏 <strong>Vuejs 内的 <code><router-link></code> 子菜单</strong> 组件。</p> <pre class="brush:php;toolbar:false;">// modèle <div :class="`${index === 0 ? 'mt-2' : ''} lien-barre latérale lien-dropdown-barre latérale`" @click="link.open = !link.open" > <div class="flex items-center"> <FontAwesomeIcône :icon="link.icon" class="sidebar-link-icon" /> {{ lien.étiquette }} </div> <FontAwesomeIcône :icon="link.open ? ['fas', 'chevron-up'] : ['fas', 'chevron-down']" class="sidebar-dropdown-link-icon" /> </div> // C'est la ligne drôle... <div :class="`${link.open ? `h-[${link.sublinks.length * 45}px]` : 'h-0'} menu déroulant de la barre latérale`"> <lien-routeur v-for="(sous-lien, index) dans link.sublinks" :key="index" class="sidebar-link mt-1" :to="sublink.route" > <FontAwesomeIcône :icon="sublink.icon" class="sidebar-link-icon pl-3" /> {{ sublink.label }} </lien-routeur> </div></pré> <p>Le comportement attendu est que lorsque <code>link.open</code> devient <code>true</code>, le <code> ;</code>tag/strong> se développe (ou s'affiche) avec une transition de 300 millisecondes, sa valeur <code>height</code> a été ajustée en fonction de <code>link.sublinks.length</code> Les définitions de valeurs, qui appliquent toutes la classe CSS <code> Ce que je veux dire, c'est : </p> <pre class="brush:php;toolbar:false;">.sidebar-dropdown-menu { @apply w-full overflow-hidden transition-[height] durée-[300ms] }</pre> <p>Si <code>link.sublinks.length</code> est égal à <code>3</code>, la classe personnalisée appliquée sera <code>h-[135px]</code> ; et la balise <div></code> dans <code> <strong>drôle de ligne</strong> apparaît, mais bien que la classe <code>p-0</code> la conversion ne fonctionne pas. Google Chrome Dev Tools me montre <code>height: 135px</code> comme règle CSS désactivée. </p> <p>Enfin, si je remplace <code>h-[${link.sublinks.length * 45}px]</code> par une valeur constante (par exemple <code>h-[200px]< /code>), tout fonctionne comme prévu. </p> <p>Je soupçonne que <code>h-auto</code> remplace ma classe personnalisée de hauteur. </p> <p>Je suis latin, donc mon anglais n'est pas très bon. </p> <p>Merci d'avance. </p>
P粉872182023P粉872182023460 Il y a quelques jours468

répondre à tous(1)je répondrai

  • P粉211273535

    P粉2112735352023-08-31 00:35:38

    Je l'ai fait fonctionner, mais je n'aime pas la solution que j'ai trouvée :

    <div
        :style="`${link.open ? `height: ${link.sublinks.length * 45}px` : 'height: 0px'}`"
        class="sidebar-dropdown-menu"
    >

    Évitez simplement d'utiliser la classe Tailwind pour définir l'attribut height, c'est tout pour l'instant.

    répondre
    0
  • Annulerrépondre