一起学习TailWind Css

TailWind Css

Tailwind是一个能让你快速构建响应式布局,现代化页面的css框架,他能够改变目前前端页面编写css的方式,他是完全由你掌握,性能高效的css框架,通过直接使用框架内置的class来快速的调整页面的样式,打包时,框架通过对你的html,script,组件等class的扫码,生成相应的的静态css文件。

直接开始

我们先跳过安装,直接来看效果直接上手来体验一下,点击跳转在线体验

清空左侧编辑栏,我们就可以直接写div了,写完的样式会实时展示在右侧的预览框内。

基础样式

敲击class名会自动提示所有相近类名,下拉列表可以选择你想用的类名:

css 复制代码
<div class="flex justify-center  bg-sky-300 text-6xl m-4 p-4 rounded-md shadow-lg  text-white font-medium  ">
  hello tailwind
</div>

其中:

  • 类名flex代表着display:flex
  • justify-center代表着justify-content:center
  • bg-sky-300代表着background-color: var(--color-sky-300)
  • text-6xl代表着font-size: var(--text-6xl);line-height: var(--tw-leading, var(--text-6xl--line-height));
  • m-4代表着 margin: calc(var(--spacing) * 4) 他的值并不是固定的4px,而是4rem
  • p-4代表着padding: calc(var(--spacing) * 4),m和p搭配l、r、t、b、x、y分别代表着left、right、top、bottom,水平方向,垂直方向,如mx-4代表margin-left和margin-right距离是4rem,py-4就代拜着padding-top和padding-bottom距离是4rem
  • rounded-md代表着border-radius: var(--radius-md);
  • shadow-lg代表着--tw-shadow: 0 10px 15px -3px var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 4px 6px -4px var(--tw-shadow-color, rgb(0 0 0 / 0.1)); box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);shadow让我们的元素看起来更立体,经常用到,在tailwind中简单的shadow-* 立马就展示出效果
  • text-white代表着color: var(--color-white);
  • font-medium代表着--tw-font-weight: var(--font-weight-medium);font-weight: var(--font-weight-medium); 其他所有的类名,我们可以在tialwind官网页面ctrl+K键进行搜索。

动态伪类

包括:hover:focus:active:first:last:odd:even:required:disabled:has:not:before:after等等,对于平常的css来说,要写这些伪类就有些费事了,但是用windtail就会变得方便快捷的多了。

css 复制代码
<div class="flex justify-between  bg-gray-100 w-auto rounded-md m-6 p-6   ">
  <div class=" bg-white  shadow rounded-md p-2 h-full ">
    <span>学习伪类的用法</span>
    <span>hover,focus,active</span>
  </div>
  <div class="h-full p-2 mr-10  ">
    <button class="p-2 text-white rounded-lg  bg-violet-400 hover:bg-violet-600 focus:outline-2 focus:outline-offset-2 focus:outline-violet-500 active:bg-cyan-300">点击确认</button>
  </div>
</div>

来看效果 正常状态bg-violet-400,背景颜色:

hover状态,只需要增加hover:bg-violet-600:

focus状态,只需要增加focus:outline-2 focus:outline-offset-2 focus:outline-violet-500:

active状态,只需要增加active:bg-cyan-300:

这样看来的话确实比直接写css样式要简单了许多。

用before实习,只需要添加before:absolute before:-inset-1 before:block before:-skew-y-3 before:bg-pink-500这些类即可,他们对应的css是(这些伪类具体意义没有深究):

css 复制代码
.before\:absolute {
  &::before {
    content: var(--tw-content);
    position: absolute;
  }
}
.before\:-inset-1 {
  &::before {
    content: var(--tw-content);
    inset: calc(var(--spacing) * -1);
  }
}
.before\:block {
  &::before {
    content: var(--tw-content);
    display: block;
  }
}
.before\:-skew-y-3 {
  &::before {
    content: var(--tw-content);
    --tw-skew-y: skewY(calc(3deg * -1));
    transform: var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,);
  }
}
.before\:bg-pink-500 {
  &::before {
    content: var(--tw-content);
    background-color: var(--color-pink-500);
  }
}

对应的tailwind类名:

css 复制代码
<span class="relative inline-block before:absolute before:-inset-1 before:block before:-skew-y-3 before:bg-pink-500">
    <span class="relative text-white ">独一无二</span>
  </span>

文件选择input框

对应的css代码:

css 复制代码
<input
  type="file"
  class="bg-white rounded-full file:mr-4 file:rounded-full file:border-1  file:bg-violet-50 file:px-4 file:py-2 file:text-sm file:font-semibold file:text-violet-700 hover:file:bg-violet-100 "
/>

选中文字效果,selection:

只需要增加类selection:bg-fuchsia-300 selection:text-white即可。 整体来说稍微对tailwind熟悉一点,就能感觉到确实很快捷,我是个后端开发者,以前开发过html、js、css这些,最近无聊才接触的vue3,刚开始接触tailwind的时候确实有点感觉像是在写inline样式,但是用一两天就立马发现不一样了。所有的伪类class可以查看官网文档哟!

响应式样式

tailwind是手机优先选择,也就是说设计页面样式时首先以小屏幕设备为准,加上他的变化点前缀后,就会在对应的屏幕宽度条件下生效对应的样式

变化点前缀 最小的设备宽度 对应的CSS
sm 40rem (640px) @media (width >= 40rem) { ... }
md 48rem (768px) @media (width >= 48rem) { ... }
lg 64rem (1024px) @media (width >= 64rem) { ... }
xl 80rem (1280px) @media (width >= 80rem) { ... }
2xl 96rem (1536px) @media (width >= 96rem) { ... }

例如元素加上 "text-left sm:text-center md:bg-white lg:bg-blue"类后,元素的文字就会在宽度小于40rem(640px)的设备上靠左展示,大于40rem就会居中展示,大于48rem后就会背景颜色改为白色且居中展示,大于64rem背景色变为蓝色居中展示。 而且你可以通过配置theme来设定变化点的宽度

css 复制代码
@import "tailwindcss";
@theme { 
--breakpoint-xs: 30rem;
--breakpoint-2xl: 100rem;
--breakpoint-3xl: 120rem;
}

这样你就新增加了xs 和 3xl变化点,对应的设备宽度分别为30rem和120rem,修改了2xl的宽度,从默认的96rem修改为了100rem

Dark mode深色模式

你只需要在需要在深色模式时改变样式的元素上增加 dark: 类型即可,例如你的div类名设置的是"bg-white dark:bg-gray-800"这两个类名,他们就代表着元素默认背景色是白色(bg-white),深色模式下元素背景色是深灰色(bg-gray-800),就是这么简单。 如果想实现动态修改主题模式,可以在tailwind的css配置中加入"@custom-variant dark (&:where(.dark, .dark *))" ,这样就代表着任何以 .dark开头的类名都会变成暗色模式,我们可以动态给body或者固定元素来添加或者删除dark类名来实现主题模式在亮色和暗色之间的自由切换了。

css 复制代码
<div >
  <div class="min-h-screen bg-white p-10 text-gray-800 dark:bg-gray-900 dark:text-gray-200">
    <button id="toggle-dark" class="rounded bg-blue-500 px-4 py-2 text-white dark:bg-blue-700"
     onclick="document.body.classList.toggle('dark');">切换 Dark Mode</button>

    <h1 class="mt-6 text-3xl font-bold">Tailwind Dark Mode 示例</h1>

    <p class="mt-2">这是一个支持亮色/暗色模式的 Tailwind 页面。</p>

    <div class="mt-6 w-sm rounded bg-gray-100 p-4 dark:bg-gray-800">这是一个会跟随 mode 变化背景色的容器。</div>
  </div>
</div>

个性化

tailwind中的所有类都支持你的个性化配置,他们不光简单,而且还像api接口一样,支持自定义。 只需要在你的主css文件中,添加@theme来自定义你的类即可,例如我们在theme中添加 "--color-zhuti: #973F29;"这样我们就可以在div元素的类名里使用"bg-zhuti"这个颜色了,试想一下我们是不是可以把整个项目的基础颜色,字体大小都定义出来,在开发的时候用这些自定义的颜色、字体,我们最终整个项目的风格都是可变的了。

vue项目中引入tailwind

首先创建你的项目: npm create vite@latest your-project 然后安装插件: npm install tailwindcss @tailwindcss/postcss postcss 配置vite.config

vite.config.ts 复制代码
import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import tailwindcss from '@tailwindcss/vite'

// https://vite.dev/config/
export default defineConfig({
  plugins: [tailwindcss(),vue()],
})

配置tailwind.config.js,

tailwind.config.js 复制代码
/** @type {import('tailwindcss').Config} */
export default {
  content: [
    "./index.html",
    "./src/**/*.{vue,js,ts,jsx,tsx}",
  ],
  theme: {
    extend: {},
  },
  plugins: [],
}

最后在你的css文件中引入

src/style.css 复制代码
@import "tailwindcss";

这样就可以在vue中使用tailwind了,vscode中一定要安装tailwind的插件,他可以检查你的theme中的语法,给你提示对应的类名,方便快捷。

结束语

tailwind的功能远不止于此,这也是我接触tailwind两周,对其基础部分的了解。想更进一步的可以去看看JavaScript Mastery的视频。 第一次写文章,大部分还是参考官网,可把我这后端开发难受坏了。。。

相关推荐
夏幻灵6 小时前
HTML5里最常用的十大标签
前端·html·html5
Mr Xu_6 小时前
Vue 3 中 watch 的使用详解:监听响应式数据变化的利器
前端·javascript·vue.js
未来龙皇小蓝7 小时前
RBAC前端架构-01:项目初始化
前端·架构
程序员agions7 小时前
2026年,微前端终于“死“了
前端·状态模式
万岳科技系统开发7 小时前
食堂采购系统源码库存扣减算法与并发控制实现详解
java·前端·数据库·算法
程序员猫哥_7 小时前
HTML 生成网页工具推荐:从手写代码到 AI 自动生成网页的进化路径
前端·人工智能·html
龙飞057 小时前
Systemd -systemctl - journalctl 速查表:服务管理 + 日志排障
linux·运维·前端·chrome·systemctl·journalctl
我爱加班、、7 小时前
Websocket能携带token过去后端吗
前端·后端·websocket
AAA阿giao7 小时前
从零拆解一个 React + TypeScript 的 TodoList:模块化、数据流与工程实践
前端·react.js·ui·typescript·前端框架
杨超越luckly7 小时前
HTML应用指南:利用GET请求获取中国500强企业名单,揭秘企业增长、分化与转型的新常态
前端·数据库·html·可视化·中国500强