ホームページ  >  に質問  >  本文

vuejs と tailwind を使用すると、条件付きクラス変更に基づく CSS 変換が機能しない

<p><strong>tailwind</strong> <code>transition</code> クラスを使用してサイドバーを展開しようとしています<strong><code><router-link>< ;/ code> サブメニュー</strong> コンポーネント。 </p> <pre class="brush:php;toolbar:false;">// テンプレート
<div class="flex items-center"> <FontAwesomeIcon :icon="リンク.アイコン" class="サイドバーリンクアイコン" /> {{ リンク.ラベル }} </div> <FontAwesomeIcon :icon="link.open ? ['fas', 'chevron-up'] : ['fas', 'chevron-down']" class="サイドバードロップダウンリンクアイコン" /> </div> // これは面白い行です... <div :class="`${link.open ? `h-[${link.sublinks.length * 45}px]` : 'h-0'} サイドバードロップダウンメニュー`"> <ルーターリンク v-for=「(サブリンク, インデックス) in link.sublinks」 :key="index" class="サイドバーリンク mt-1" :to="サブリンク.ルート" > <FontAwesomeIcon :icon="サブリンク.アイコン" class="サイドバー-リンク-アイコン pl-3" /> {{ サブリンク.ラベル }} </ルーターリンク> </div></pre> <p>期待される動作は、<code>link.open</code> が <code>true</code> になると、<strong>興味深い行< <div> で定義された <code> ;</code>tag/strong> は 300 ミリ秒の遷移で展開 (または表示) され、その <code>height</code> の値は <code>link.sublinks.length</code> に基づいて調整されています。値の定義。すべて <code>sidebar-dropdown-menu</code> CSS クラスを適用します。私が言いたいのは: </p> <pre class="brush:php;toolbar:false;">.sidebar-dropdown-menu { @apply w-full overflow-hiddentransition-[height] period-[300ms] }</pre> <p><code>link.sublinks.length</code> が <code>3</code> に等しい場合、適用されるカスタム クラスは <code>h-[135px]</ になります。 code> と <code> <strong>面白い行</strong> の <div></code> タグが表示されますが、<code>p-0</code> クラスは期待どおりに動作しますが、変換は機能しません。 Google Chrome Dev Tools では、<code>height: 135px</code> が無効な CSS ルールとして表示されます。 </p> <p>最後に、<code>h-[${link.sublinks.length * 45}px]</code> を定数値に置き換えるとします (例: <code>h-[200px]< /code>) すべてが期待どおりに機能します。 </p> <p><code>h-auto</code> が高さのカスタム クラスをオーバーライドしているのではないかと思われます。 </p> <p>私はラテン系なので、英語はあまり上手ではありません。 </p> <p>よろしくお願いします。 </p>
P粉872182023P粉872182023415日前434

全員に返信(1)返信します

  • P粉211273535

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

    うまくいきましたが、見つけた解決策が気に入りません:

    リーリー

    Tailwind クラスを使用して高さ属性を定義することは避けてください。今のところはこれだけです。

    返事
    0
  • キャンセル返事