发布于 2026-01-06 0 阅读
0

构建 Tailwind CSS 下拉组件 DEV 的全球展示挑战赛,由 Mux 呈现:展示你的项目!

构建 Tailwind CSS 下拉组件

由 Mux 主办的 DEV 全球展示挑战赛:展示你的项目!

Tailwind CSS 是一个实用性优先的框架,我今年的大部分项目都使用它,我找不到任何理由再回到 Bootstrap 或 Foundation 等其他框架。

Tailwind CSS 下拉菜单

尽管如此,我发现了一个相当大的缺点,因为 Tailwind CSS 没有提供一套基础组件,无法让你更快地构建网站。

这就是为什么我在 DEV 社区开始了一系列教程,讲解如何使用 Tailwind CSS 和原生 JavaScript 的实用类来构建最常用的 Web 组件。

之前我向大家展示了如何构建Tailwind CSS 卡片组件,今天我将展示一些更高级的内容:如何构建 Tailwind CSS 下拉元素。

我们开始吧。

Tailwind CSS 下拉菜单

首先,我们需要构建HTML代码。让我们创建一个按钮,并使用Flowbite库中这个Tailwind CSS按钮的样式。



<button class="text-white bg-blue-700 hover:bg-blue-800 focus:ring-4 focus:ring-blue-300 font-medium rounded-lg text-sm px-4 py-2.5 text-center inline-flex items-center" type="button">Dropdown button <svg class="w-4 h-4 ml-2" fill="none" stroke="currentColor" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M19 9l-7 7-7-7"></path></svg></button>


Enter fullscreen mode Exit fullscreen mode

现在我们来设置菜单本身的 HTML 代码。



<button class="text-white bg-blue-700 hover:bg-blue-800 focus:ring-4 focus:ring-blue-300 font-medium rounded-lg text-sm px-4 py-2.5 text-center inline-flex items-center" type="button" data-dropdown-toggle="dropdown">Dropdown button <svg class="w-4 h-4 ml-2" fill="none" stroke="currentColor" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M19 9l-7 7-7-7"></path></svg></button>

<!-- Dropdown menu -->
<div class="hidden bg-white text-base z-50 list-none divide-y divide-gray-100 rounded shadow my-4">
    <div class="px-4 py-3">
      <span class="block text-sm">Bonnie Green</span>
      <span class="block text-sm font-medium text-gray-900 truncate">name@flowbite.com</span>
    </div>
    <ul class="py-1" aria-labelledby="dropdown">
      <li>
        <a href="#" class="text-sm hover:bg-gray-100 text-gray-700 block px-4 py-2">Dashboard</a>
      </li>
      <li>
        <a href="#" class="text-sm hover:bg-gray-100 text-gray-700 block px-4 py-2">Settings</a>
      </li>
      <li>
        <a href="#" class="text-sm hover:bg-gray-100 text-gray-700 block px-4 py-2">Earnings</a>
      </li>
      <li>
        <a href="#" class="text-sm hover:bg-gray-100 text-gray-700 block px-4 py-2">Sign out</a>
      </li>
    </ul>
</div>


Enter fullscreen mode Exit fullscreen mode

如您所见,我们已经将样式应用到菜单,并且我们使用hidden类来默认隐藏它,因为我们只想在单击按钮时显示它。

如果我们通过 CDN 或 NPM 将 Flowbite 库的 JavaScript 添加到我们的项目中,我们就可以使用数据属性将按钮与下拉菜单连接起来。

在标签结束之前添加以下 JavaScript 代码<body>



<script src="https://unpkg.com/@themesberg/flowbite@latest/dist/flowbite.bundle.js"></script>


Enter fullscreen mode Exit fullscreen mode

太好了!现在让我们data-dropdown-toggle="dropdown"给按钮添加属性,其中dropdown是下拉菜单元素的 id。

我们还需要id="dropdown"向下拉菜单元素中添加内容。




<button class="text-white bg-blue-700 hover:bg-blue-800 focus:ring-4 focus:ring-blue-300 font-medium rounded-lg text-sm px-4 py-2.5 text-center inline-flex items-center" type="button" data-dropdown-toggle="dropdown">Dropdown button <svg class="w-4 h-4 ml-2" fill="none" stroke="currentColor" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M19 9l-7 7-7-7"></path></svg></button>

<!-- Dropdown menu -->
<div class="hidden bg-white text-base z-50 list-none divide-y divide-gray-100 rounded shadow my-4" id="dropdown">
    <div class="px-4 py-3">
      <span class="block text-sm">Bonnie Green</span>
      <span class="block text-sm font-medium text-gray-900 truncate">name@flowbite.com</span>
    </div>
    <ul class="py-1" aria-labelledby="dropdown">
      <li>
        <a href="#" class="text-sm hover:bg-gray-100 text-gray-700 block px-4 py-2">Dashboard</a>
      </li>
      <li>
        <a href="#" class="text-sm hover:bg-gray-100 text-gray-700 block px-4 py-2">Settings</a>
      </li>
      <li>
        <a href="#" class="text-sm hover:bg-gray-100 text-gray-700 block px-4 py-2">Earnings</a>
      </li>
      <li>
        <a href="#" class="text-sm hover:bg-gray-100 text-gray-700 block px-4 py-2">Sign out</a>
      </li>
    </ul>
</div>


Enter fullscreen mode Exit fullscreen mode

最终结果应如下所示:

Tailwind CSS 下拉元素

点击按钮即可打开下拉菜单,点击按钮外部即可关闭下拉菜单。您可以在网站的任何位置使用此元素。

Flowbite - Tailwind CSS 组件库

这个Tailwind CSS 下拉组件是名为 Flowbite 的大型开源组件库的一部分。

Tailwind CSS 组件

想了解如何开始使用Tailwind CSS 组件库,请按照在线文档中的快速入门指南进行操作。

文章来源:https://dev.to/themesberg/building-a-tailwind-css-dropdown-component-ban