构建 Tailwind CSS 切换/开关组件
我最近一直在使用 Tailwind CSS,虽然我很喜欢使用实用类的新方式,但我不得不说,我怀念像 Bootstrap 或 Bulma 那样拥有一套基础组件可以使用的感觉。
这就是为什么我在 DEV 社区开设了一个新系列,讲解如何使用 Tailwind CSS 的实用类构建常用的 Web 组件。
上次我向大家展示了如何构建文件上传组件,今天我想向大家展示如何构建切换/开关元素。
Tailwind CSS 切换/开关组件
构建切换组件的第一步是设置基本的HTML代码:
<label for="toggle-example">
<input type="checkbox" id="toggle-example">
<div></div>
<span>Toggle me</span>
</label>
如您所见,我们将所有元素都包裹在一个label标签内,这样点击标签上的任何位置都会切换复选框的状态。我们还添加了一个空div标签,稍后将用作背景。
现在让我们添加设置元素样式所需的实用类:
<label for="toggle-example" class="flex items-center cursor-pointer relative mb-4">
<input type="checkbox" id="toggle-example" class="sr-only">
<div class="toggle-bg bg-gray-200 border-2 border-gray-200 h-6 w-11 rounded-full"></div>
<span class="ml-3 text-gray-900 text-sm font-medium">Toggle me</span>
</label>
切换元素尚未完成,因为我们需要添加一些伪类,这些伪类将作为从左到右移动的点。
最简单的办法是从 NPM 安装 Flowbite 包,并将其作为插件添加到你的 Tailwind CSS 项目中。这样,Flowbite 的这个组件和其他组件就能正常工作了。
或者,您也可以直接在 CSS 中添加以下样式:
.toggle-bg:after {
content: '';
@apply absolute top-0.5 left-0.5 bg-white border border-gray-300 rounded-full h-5 w-5 transition shadow-sm;
}
input:checked + .toggle-bg:after {
transform: translateX(100%);
@apply border-white;
}
input:checked + .toggle-bg {
@apply bg-blue-600 border-blue-600;
}
最终结果应如下所示:
您还可以将切换组件默认设置为选中状态:
<label for="toggle-example-checked" class="flex items-center cursor-pointer relative">
<input type="checkbox" id="toggle-example-checked" class="sr-only" checked>
<div class="toggle-bg bg-gray-200 border-2 border-gray-200 h-6 w-11 rounded-full"></div>
<span class="ml-3 text-gray-900 text-sm font-medium">Toggle me (checked)</span>
</label>
我希望这篇教程能帮助你更好地学习 Tailwind CSS,并拓展你可以使用的组件种类。在结束之前,我想向你展示一个 Tailwind CSS 组件库,这个切换组件就属于这个组件库,你可以使用它来更快地构建网站。
Flowbite - Tailwind CSS 组件库
正如我之前所说,这个Tailwind CSS 切换组件是名为 Flowbite 的大型开源组件库的一部分。
Flowbite基本上是一组 UI 组件,例如按钮、警报、徽章、下拉菜单、导航栏,这些组件是使用 Tailwind CSS 的实用类构建的,但它也包括交互式元素,例如工具提示和日期选择器,可以帮助您使用 Tailwind CSS 更快地构建网站。
你可以通过 NPM 安装 Flowbite,然后将其作为插件引入到你的 Tailwind CSS 项目中,或者直接使用 CDN 来试用,从而快速上手。
文章来源:https://dev.to/themesberg/building-a-tailwind-css-toggleswitch-component-4pc3


