如何在 CSS 中对类进行分组 - Tailwind

Hel*_*ere 4 html css sass less tailwind-css

我正在尝试对类进行分组,以便代码更加清晰易读。在 Tailwind 的文档中,它谈到了“@apply”,它可以用于此目标,但我正在使用 CDN,因此这对我不起作用。所以我的问题是,\xc2\xbf有什么形式可以实现我正在寻找的东西吗?也许使用 SASS/SCSS 或 LESS?

\n

这是我想要的一个例子:

\n
<ul class="md:flex md:items-center z-[-1] md:z-auto md:static absolute bg-gray-800 w-full left-0 md:w-auto md:py-0 py-4 md:pr-0 pr-7 md:pl-0 pl-7 md:opacity-100 opacity-0 top-[-400px] transition-all ease-in duration-200">\n  <li class="nav-element">\n    <a href="#" class="text-x1 md:hover:text-yellow-300 duration-500">Home</a>\n  </li>\n  <li class="px-4 py-6 md:py-0 hover:bg-yellow-500 md:hover:bg-transparent text-white duration-500">\n    <a href="#" class="text-x1 md:hover:text-yellow-300 duration-500">About Us</a>\n  </li>\n  <li class="px-4 py-6 md:py-0 hover:bg-yellow-500 md:hover:bg-transparent text-white duration-500">\n    <a href="#" class="text-x1 md:hover:text-yellow-300 duration-500">Services</a>\n  </li>\n  <li class="px-4 py-6 md:py-0 hover:bg-yellow-500 md:hover:bg-transparent text-white duration-500">\n    <a href="#" class="text-x1 md:hover:text-yellow-300 duration-500">Contact Us</a>\n  </li>\n  <button class="md:w-auto w-full bg-transparent text-white font-[Poppins] duration-500 px-6 py-2 hover:bg-white hover:text-gray-800 border border-white border-dotted rounded-lg">\n    Log In\n  </button>\n  <button class="md:w-auto w-full bg-yellow-500 text-white font-[Poppins] duration-500 px-6 py-2 md:mx-4 hover:bg-yellow-600 rounded-lg">\n    Sign In\n  </button>\n</ul>\n
Run Code Online (Sandbox Code Playgroud)\n
\n
<ul class="nav-elemnts">\n  <li class="nav-element">\n    <a href="#" class="nav-link">Home</a>\n  </li>\n  <li class="nav-element">\n    <a href="#" class="nav-link">About Us</a>\n  </li>\n  <li class="nav-element">\n    <a href="#" class="nav-link">Services</a>\n  </li>\n  <li class="nav-element">\n    <a href="#" class="nav-link">Contact Us</a>\n  </li>\n  <button class="button-login">\n    Log In\n  </button>\n  <button class="button-signin">\n    Sign In\n  </button>\n</ul>\n
Run Code Online (Sandbox Code Playgroud)\n

Jak*_*lek 6

Tailwind 鼓励您使用组件。您应该使用一个允许您创建和使用组件的系统,而不是到处复制粘贴类。

由于您的问题只是 HTML + CSS,因此您实际上没有合适的工具。但如果您使用 JS、Python、PHP 等脚本语言,您可以从元素创建组件并重用它们。由于我熟悉 React 框架,我可以展示一个示例:

function NavElement(props) {
  return (
    <li class="px-4 py-6 md:py-0 hover:bg-yellow-500 md:hover:bg-transparent text-white duration-500">
      <a href={props.href} class="text-x1 md:hover:text-yellow-300 duration-500">{props.children}</a>
    </li>
  )
}
Run Code Online (Sandbox Code Playgroud)

然后将其用作

function NavElements() {
  return (
    <ul class="md:flex md:items-center z-[-1] md:z-auto md:static absolute bg-gray-800 w-full left-0 md:w-auto md:py-0 py-4 md:pr-0 pr-7 md:pl-0 pl-7 md:opacity-100 opacity-0 top-[-400px] transition-all ease-in duration-200">
      <NavElement href="/">Home</NavElement>
      <NavElement href="/services">Services</NavElement>
      <NavElement href="/about-us">About us</NavElement>
    </ul>
  )
}
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,通过这种方法,您可以将大量修饰符提取到一个小组件中,您可以多次使用该组件,而无需在代码中进行太多重复。

您可以自由选择任何能够制作组件的工具、语言、系统。这就是 Tailwind 希望您做的事情。

  • 我明白你想告诉我什么,但情况是我想对课程进行分组,然后按照你所说的去做。我的意思是,我想在样式表中有一定数量的类,其中每个类都是 Tailwind 的一组 af 类。所以最后我将使用 Tailwind 来定制我的课程。我不知道你是否明白我在寻找什么,如果你不明白,请告诉我,我会尽力改进这个问题。 (2认同)
  • 这不是你在 Tailwind 中“应该”做的事情。如果你在CSS中对你的类进行分组(即使使用@apply),你基本上会回到正常的CSS - 必须提出类名,管理选择器等。Tailwind就在那里,所以你不必这样做。考虑一下,如果您不喜欢 Tailwind 的基本构建模块之一(使用实用代币),那么 Tailwind 可能不是最适合您个人的工具,这完全没问题,很多人不喜欢它。 (2认同)
  • 不,这不是问题。如果您必须手动维护它们,这可能会成为维护问题,这就是为什么我们创建小型可重用组件,而不是将类复制粘贴到各处,但该列表本身绝对不是问题。要么你“习惯”它,要么你会不喜欢它,所以主观感受在这方面起着很大的作用。 (2认同)