在React项目中试用Tailwind

TailwindCSS

TailwindCSS 是一个套 CSS 的工具类,把常用的功能都进行了定义,下面是一个官网的例子,可以看到Tailwind对一元页面素写了很多类,日常开发中只要定义一两个类就可以搞定类似的功能了。这里写了这么多 p-6 max-w-sm mx-auto bg-white rounded-xl shadow-lg flex items-center space-x-4,那么用 tailwind 有什么好处呢,官网给出的好处包括以下几点:

  1. 你不再浪费精力去起类名。不需要再添加像是 sidebar-inner-wrapper 这样的愚蠢类名来实现样式设置,也不需要为某个实际上只是一个弹性容器的东西苦恼于找一个完美的抽象名字。
  2. 你的 CSS停止增长。使用传统方法时,每增加一个新功能,你的 CSS 文件就会变大。使用工具类,一切都是可重用的,所以你很少需要编写新的 CSS。
  3. 做出改变感觉更安全。CSS 是全局的,你永远不知道当你做出改变时会破坏什么。而你的 HTML中的类是局部的,所以你可以更改它们而不用担心其他东西会出问题。
<div class="p-6 max-w-sm mx-auto bg-white rounded-xl shadow-lg flex items-center space-x-4">
  <div class="shrink-0">
    <img class="h-12 w-12" src="/img/logo.svg" alt="ChitChat Logo">
  </div>
  <div>
    <div class="text-xl font-medium text-black">ChitChat</div>
    <p class="text-slate-500">You have a new message!</p>
  </div>
</div>

我觉得这个库用起来门槛不高,就是需要知道那些工具类名是什么意思,例如上面这段代码,p-6 是什么意思,我把主要的一些工具类型列出来了,可以参考一下。

Tailwind CSS 类前缀

Tailwind CSS 使用不同的类前缀来表示各种样式工具。以下是一些常用的类前缀列表:

间距控制

  • Padding (p-): 控制元素的内边距。

    • p- (所有边)
    • px- (左右)
    • py- (上下)
    • pt- (顶部)
    • pr- (右侧)
    • pb- (底部)
    • pl- (左侧)
  • Margin (m-): 控制元素的外边距。

    • m- (所有边)
    • mx- (左右)
    • my- (上下)
    • mt- (顶部)
    • mr- (右侧)
    • mb- (底部)
    • ml- (左侧)

尺寸控制

  • Width (w-): 控制元素的宽度。
  • Min-width (min-w-): 控制元素的最小宽度。
  • Max-width (max-w-): 控制元素的最大宽度。
  • Height (h-): 控制元素的高度。
  • Min-height (min-h-): 控制元素的最小高度。
  • Max-height (max-h-): 控制元素的最大高度。

字体与文本

  • Font Size (text-): 调整字体大小。
  • Font Weight (font-): 设置字体粗细。
  • Text Alignment (text-): 文本对齐。
    • text-left, text-center, text-right, text-justify
  • Text Color (text-): 设置文本颜色。
  • Text Decoration (underline, line-through): 文本装饰。

背景

  • Background Color (bg-): 设置背景颜色。
  • Background Image (bg-): 应用背景图像。

边框

  • Border (border-): 设置边框。
  • Border Radius (rounded-): 控制边角圆润度。
  • Border Color (border-): 设置边框颜色。

布局

  • Display (block, inline-block, inline, flex, grid): 控制元素的显示方式。
  • Position (relative, absolute, fixed, sticky): 元素定位。
  • Overflow (overflow-): 控制内容溢出。
  • Z-index (z-): 控制元素的层叠顺序。

弹性盒模型

  • Flex Direction (flex-): 设置 flex 容器的主轴方向。
  • Flex Wrap (flex-): 设置 flex 容器的换行方式。
  • Align Items (items-): 控制交叉轴上的对齐方式。
  • Justify Content (justify-): 控制主轴上的对齐方式。

网格布局

  • Grid Template Columns (grid-cols-): 定义网格列的数量和大小。
  • Grid Column (col-): 控制元素在网格列中的位置和跨度。
  • Grid Gap (gap-): 设置网格线之间的间隙。

动效

  • Transition (transition-): 应用过渡效果。
  • Transform (scale-, rotate-, translate-): 使用变换效果。
  • Animation (animate-): 应用动画效果。

其他

  • Opacity (opacity-): 控制透明度。
  • Visibility (visible, invisible): 控制元素的可见性。

Tailwind CSS 配置

Tailwind 可以自定义主题,例如,padding 的1 个单位是多少,可以根据公司的 UI 规范进行定义。

  • colors: 定义颜色调色板。
  • spacing: 设置自定义间距值(填充、边距、间隙)。
  • screens: 配置响应式断点。
  • fontSize: 设置字体大小比例。
  • fontWeight: 自定义字体粗细选项。
  • borderWidth: 设置边框宽度大小。
  • borderRadius: 自定义边框圆角大小。
  • height/width: 定义特定的高度和宽度比例。
  • minHeight/minWidth/maxHeight/maxWidth: 设置最小和最大尺寸。

在React项目安装 Tailwind

创建项目

npx create-react-app my-tail-project
cd my-tail-project

初始化TailwindCSS

以下命令会生成tailwind.config.js

npm install -D tailwindcss
npx tailwindcss init

修改配置文件

将React 源文件名称,加入到 content 配置项中。


tailwind.config.js

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

在index.css中加入 tailwind 相关配置

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

启动项目

npm run start

修改 App.js 进行测试

export default function App() {
  return (
    <h1 className="text-3xl font-bold underline">
      Hello world!
    </h1>
  )
}

vscode 中添加插件

有个这个插件,写代码就有智能提示了。
在这里插入图片描述

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/564070.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

线程池的核心参数有哪些???

线程池的核心参数包括以下七个&#xff1a; corePoolSize&#xff1a; 这是线程池中的核心线程数&#xff0c;即池中会保留的最少线程数。当提交任务时&#xff0c;如果当前线程数小于核心线程数&#xff0c;线程池会创建新的线程来执行任务。如果当前线程数等于或大于核心线程…

#天空星按键点灯(不中断与中断方式)

&#xff08;1&#xff09;非中断按键点灯 &#xff0c;弹起阻塞&#xff08;天空星的用户按键为PA0&#xff0c;按下高电平&#xff0c;不按下低电平&#xff0c;含有硬件消抖&#xff09; /** 立创开发板软硬件资料与相关扩展板软硬件资料官网全部开源* 开发板官网&#xff1…

MySQL修改数据表的结构

创建数据库 -- create database 创建的数据库名; create database test; 这里创建了一个名为 test 的数据库 选择需要使用的数据库 -- use 数据库名; use test; 这里使用 test 数据库 创建数据表 -- create table 表名(字段名1 数据类型(长度) 约束,字段名2 数据类型(长…

辽宁梵宁教育设计培训:赋能大学生,新技能学习再升级

辽宁梵宁教育设计培训&#xff1a;赋能大学生&#xff0c;新技能学习再升级 在当今这个日新月异、信息爆炸的时代&#xff0c;大学生们面临着前所未有的挑战与机遇。为了帮助他们更好地适应社会的快速变化&#xff0c;提升个人的综合素质和竞争力&#xff0c;辽宁梵宁教育设计…

【Node.js】01 —— fs模块全解析

&#x1f525;【Node.js】 fs模块全解析 &#x1f4e2; 引言 在Node.js开发中&#xff0c;fs模块犹如一把万能钥匙&#xff0c;解锁着整个文件系统的操作。从读取文件、写入文件、检查状态到目录管理&#xff0c;无所不能。接下来&#xff0c;我们将逐一揭开fs模块中最常用的那…

高级数据结构—树状数组

引入问题&#xff1a; 给出一个长度为n的数组&#xff0c;完成以下两种操作&#xff1a; 1. 将第i个数加上k 2. 输出区间[i,j]内每个数的和 朴素算法&#xff1a; 单点修改&#xff1a;O( 1 ) 区间查询&#xff1a;O( n ) 使用树状数组&#xff1a; 单点修改&#xff1a…

文档分享怎么用二维码?扫码获得文档的制作方法

现在日常工作和生活中&#xff0c;经常会看到可以用于展示文件的二维码图片&#xff0c;使用这种方式可以向其他人传递一些资料、通知、数据等情况。比如常见的内容有企业介绍、产品内容、使用说明、活动流程等类型的内容&#xff0c;那么这些不同类型的文件该如何制作二维码呢…

医学图像三维重建与可视化系统 医学图像分割 区域增长

医学图像的三维重建与可视化&#xff0c;这是一个非常有趣且具有挑战性的课题&#xff01;在这样的项目中&#xff0c;可以探索不同的医学图像技术&#xff0c;比如MRI、CT扫描等&#xff0c;然后利用这些图像数据进行三维重建&#xff0c;并将其可视化以供医生或研究人员使用。…

el-select多选非空校验

一、首先是前端版本&#xff08;不建立在版本上的bug修改就是耍流氓&#xff01;&#xff09;&#xff1a; 二、原来页面是下拉单选&#xff0c;新需求要改成下拉多选&#xff0c;改成多选后就发现非空校验失效了。 三、el-select多选&#xff0c;绑定v-model的就是一个数组了…

Unity导出package

C#代码导出后为一个dll&#xff0c;原有的不同平台的库不变。 以下操作均在build PC 平台下操作。 1.在要导出的文件夹下建assembly definition (Any platform) 2.将项目文件夹下的\Library\ScriptAssemblies中的相应assembly definition的dll复制到要导出的文件夹下 3.在uni…

【ES】springboot集成ES

1. 去Spring官方文档确认版本兼容性 这一版的文档里没有给出springboot的版本对应&#xff0c;但我在一个博主的文章里看到的es8.0以前的官方文档中就有给出来&#xff0c;所以还需要再去寻找spring framework和springboot的对应关系&#xff1f;&#xff1f;&#xff1f; 还…

17-软件脉冲宽度调制(SW_PWM)

ESP32-S3的软件脉冲宽度调制&#xff08;SW_PWM&#xff09; 引言 ESP32-S3 LED 控制器LEDC 主要用于控制 LED&#xff0c;也可产生PWM信号用于其他设备的控制。该控制器有 8 路通道&#xff0c;可以产生独立的波形&#xff0c;驱动 RGB LED 等设备。LED PWM 控制器可在无需C…

227基于matlab的作业调度问题

基于matlab的作业调度问题。采用遗传算法&#xff0c;解决作业调度问题。一共三个作业&#xff0c;每个作业有不同的时间长度和紧急程度&#xff0c;超过时间会有惩罚措施。通过遗传算法计算出最好的作业安排&#xff0c;使得惩罚最小&#xff0c;获益最大。最终结果通过GUI用甘…

JavaScript 数据类型 对象概述

对象代表两个人&#xff0c;一个是你和你的对象&#xff0c;对于程序来说也是这个样子&#xff0c;一个键&#xff0c;一个值组成。 什么是对象?对象(object)是JavaScript语言的核心概念&#xff0c;也是最重要的数据类型简单说&#xff0c;对象就是一组“键值对”(key-value…

DC学习笔记

视频 数字逻辑综合工具实践 DC 01_哔哩哔哩_bilibili 一、DC工作模式&#xff08;此小节为搬运内容&#xff09; 原链接&#xff1a;Design_Compiler User Guide 随手笔记&#xff08;9&#xff09;Using Floorplan Information - 知乎 DC拥有四种工作模式&#xff1a; 工…

SQL优化——全自动SQL审核

文章目录 1、抓出外键没创建索引的表2、抓出需要收集直方图的列3、抓出必须创建索引的列4、抓出SELECT * 的SQL5、抓出有标量子查询的SQL6、抓出带有自定义函数的SQL7、抓出表被多次反复调用SQL8、抓出走了FILTER的SQL9、抓出返回行数较多的嵌套循环SQL10、抓出NL被驱动表走了全…

vue3的getCurrentInstance获取当前组件实例

vue3的setup中没有this时需要使用getCurrentInstance()来获取。 在 Vue 3 中&#xff0c;getCurrentInstance 方法可以在组合式 API&#xff08;Composition API&#xff09;中获取当前组件实例。这个方法返回一个包含了组件实例的对象&#xff0c;你可以用它来访问组件的 pro…

【刷题】代码随想录算法训练营第二十天|654、最大二叉树,617、合并二叉树,700、二叉搜索树中的搜索,98、验证二叉搜索树

目录 654、最大二叉树617、合并二叉树700、二叉搜索树中的搜索98、验证二叉搜索树 654、最大二叉树 讲解&#xff1a;https://programmercarl.com/0654.%E6%9C%80%E5%A4%A7%E4%BA%8C%E5%8F%89%E6%A0%91.html 最大二叉树的规则&#xff1a; 二叉树的根是数组中的最大元素。左子…

电商数据采集API接口系列|请求示例测试方式丨商品详情,详情图,sku价格等

电商数据采集API接口系列是用于从电商平台收集各种商品信息的工具&#xff0c;包括商品详情、详情图、SKU价格等。以下是一般情况下使用电商API接口进行数据采集的步骤和测试方式&#xff1a; 1.请求方式&#xff1a;HTTP POST GET &#xff08;复制薇&#xff1a;Anzexi58 获…

VS安装教程

文章目录 VS安装步骤 VS安装步骤 &#xff08;1&#xff09; 下载VS2022社区版&#xff08;根据情况选择自己需要的版本下载&#xff09;&#xff0c;下载的方式&#xff0c;可以通过微软官方下载。https://visualstudio.microsoft.com/zh-hans/downloads/?cidlearn-onpage-d…