Tailwind教程

🖐🏻 免责声明

本教程仅供学习交流使用,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关,请各读者自觉遵守相关法律法规。

# 快速使用

官网 (opens new window)

# 安装

npm install tailwindcss

# 初始化 Tailwind 配置文件

运行以下命令初始化 Tailwind 的配置文件 tailwind.config.js: npx tailwindcss init

# 空配置

/** @type {import('tailwindcss').Config} */
module.exports = {
  content: ["./src/**/*.{html,js}"],
  theme: {
    extend: {},
  },
  plugins: [],
}

# 引入tailwind样式

在react文件的入口index.js 引入index.css,其中头部引入tailwind的样式

@tailwind base;
@tailwind components;
@tailwind utilities;

# 详细教程

# 预设样式

简单来讲,就是把html标签默认的样式都干掉了。

# 哪些基操

  1. 删除默认边距
  2. 删除标题样式
  3. 删除列表样式
  4. 行内元素转为块级(img,video等)
  5. 图片限制父级宽度
  6. 重置边框样式

# 扩展预设样式

@tailwind base;

@layer base {
  h1 {
    @apply text-2xl;
  }
  h2 {
    @apply text-xl;
  }
  h3 {
    @apply text-lg;
  }
  a {
    @apply text-blue-600 underline;
  }
}

@tailwind components;

@tailwind utilities;

# 如何禁用

module.exports = {
  corePlugins: {
    preflight: false,
  }
}

# 数值换算

4为一个单位,代表1rem,rem又和body的font-size成比例关系,一般默认是16px,那在tailwind中,4就代表16px

# 响应式设计

# 原生css

代码示例

下面代码展示了一个图片在>640px的屏幕上,宽度为100px,在大于1536px的屏幕上宽度为250px

这个其实不太符合人们的使用习惯,起码我更习惯一个范围性的定义,但是那样写没有必要且臃肿,所以你要习惯,脑子里稍微转个弯。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>测试css原生样式</title>
</head>
<style>
    /*大于640px时,图片宽度为100px*/
    @media (min-width: 640px) {
        img {
            width: 100px;
        }
    }
    @media (min-width: 1536px) {
        img {
            width: 250px;
        }
    }
</style>
<body>
<div>
    <span id="sWdith"></span>
    <span id="sHeight"></span>
</div>

<img src="bg.webp" alt="">
</body>
<script type="text/javascript">
    window.onload = function () {
        const screenWidth = window.innerWidth;
        const screenHeight = window.innerHeight;
        // console.log("屏幕宽度:", screenWidth);

        document.getElementById("sWdith").innerText = '宽度:' + screenWidth
        document.getElementById("sHeight").innerText = '高度:' + screenHeight
    }
</script>
</html>

# @media (min-width: 640px)

宽度大于640px时...

# @media (max-width: 1640px)

宽度小于1640px时...

# @media not all and (min-width: 1640px)

not 就是取反,这个代码的意思就是:宽度小于1640px时... 等价于@media (max-width: 1640px)

# tailwind的响应布局

示例讲解,自己看注释

<span>md是768px,lg是1024px,当小于768px时,宽度为64px,小于1024px时宽度为128px,小于1280为192px,小于1536为256px,其余为64px,大于等于1536时为320px</span>
<img ref={imgRef} className="w-16 md:w-32 lg:w-48 xl:w-64 2xl:w-80" src={require("./bg.webp")} />

# min

断点前缀 最小宽度 CSS
sm 640px @media (min-width: 640px) { ... }
md 768px @media (min-width: 768px) { ... }
lg 1024px @media (min-width: 1024px) { ... }
xl 1280px @media (min-width: 1280px) { ... }
2xl 1536px @media (min-width: 1536px) { ... }

# max

断点前缀 最小宽度 CSS
max-sm 640px @media (max-width: 640px) { ... }
max-md 768px @media (max-width: 768px) { ... }
max-lg 1024px @media (max-width: 1024px) { ... }
max-xl 1280px @media (max-width: 1280px) { ... }
max-2xl 1536px @media (max-width: 1536px) { ... }

# 断点范围

用冒号堆叠使用

sm:max-md 就是指定sm-md区间

# 自定义断点

配置

/** @type {import('tailwindcss').Config} */
module.exports = {
  theme: {
    screens: {
      'tablet': '640px',
      // => @media (min-width: 640px) { ... }

      'laptop': '1024px',
      // => @media (min-width: 1024px) { ... }

      'desktop': '1280px',
      // => @media (min-width: 1280px) { ... }
    },
  }
}

使用 tablet:max-laptop

# 任意值

<div class="min-[320px]:text-center max-[600px]:bg-sky-300">
  <!-- ... -->
</div>

# ☕ 请我喝咖啡

如果本文章对您有所帮助,不妨请作者我喝杯咖啡 :)

pay


# ☀️ 广告时间

现承接以下业务,欢迎大家支持:)

  • Web 2.0 & Web 3.0应用定制
  • Web 3.0专项脚本定制与优化
  • 数据爬虫需求快速响应
  • 网站/公众号/小程序一站式开发
  • 毕业设计与科研项目支持
  • 企业管理软件定制:ERP, MES, CRM, 进销存系统等

联系方式:

X:@motuoka

V:ck742931485

wx