【问题标题】:Transform for child element by parent element tailwind通过父元素顺风转换子元素
【发布时间】:2020-05-19 20:12:53
【问题描述】:

如果父元素有类open,我想变换子元素旋转。 css中的示例

ul li.open > a > .sidebar-collapse-icon {
    -webkit-transform: rotate(-180deg);
    -ms-transform: rotate(-180deg);
    transform: rotate(-180deg);
}

我怎样才能在顺风中做到这一点?

【问题讨论】:

标签: css tailwind-css


【解决方案1】:

在 Tailwind 文档中找不到确切的解决方案。所以尝试了这个hack(而不是open,使用group类):

<ul>
  <li class="group">
    <a>
      <span class="sidebar-collapse-icon group-only:-rotate-180"></span>
    </a>
  </li>
</ul>

【讨论】:

    【解决方案2】:

    您应该通过 JavaScript 控制 css。 Tailwind CSS 与问题无关。我和她一起工作并且喜欢这个库。

    例如,如果您使用:

    原版(纯)JavaScript:

    <head>
      <meta charset="UTF-8">
      <meta name="viewport" content="width=device-width, initial-scale=1.0">
      <meta http-equiv="X-UA-Compatible" content="ie=edge">
      <title>Document</title>
    
      <style>
        .container {
          height: 200px;
          width: 200px;
        }
      </style>
    </head>
    <body>
      <div class="container"></div>
    
      <script>
        const el = document.querySelector('.container')
        if (el) {
          el.style.backgroundColor = 'red'
        }
      </script>
    </body>
    </html>
    

    反应(钩子):

    import React, { useState } from 'react'
    
    export default function MyComponent() {
      const [isOpen, setIsOpen] = useState(false)
    
      if (!isOpen) {
        return null
      }
    
      return (<div className="some-tailwind-class"></div>)
    }
    

    Vue if-show 指令:

    <template>
      <div if-show="!isOpen" class="some-tailwind-class"></div>
    </template>
    
    <script>
    export default {
      data() {
        return {
          isOpen: false;
        }
      }
    }
    </script>
    

    Vue v-if 指令:

    <template>
      <div if-show="!isOpen" class="some-tailwind-class"></div>
    </template>
    
    <script>
    export default {
      data() {
        return {
          isOpen: false;
        }
      }
    }
    </script>
    

    【讨论】: